zsh で特定の文字が完了した後にスペースを保持します。

zsh で特定の文字が完了した後にスペースを保持します。

Zshには、ほとんどの場合、うまく機能するいくつかの完成関連の自動化機能があります。を押すと、Tabスペース(または中,かっこ内などの他の適切な文字)が自動的に挿入されます。

&1つの状況を除いて、この機能を維持したいと思います。を入力または|押した後にスペースを削除したくありませんTab。私はスペースを削除することを好み、;角かっこ列挙型を押すときにカンマが自動的に挿入されるのを確実に抑制したいと思います。Tab }

デフォルトでは、この機能は「古い」(compctl)と「新しい」()完成システムcompaddの両方で機能します。私は新しいシステムにのみ興味があります。

挿入を完了する自動サフィックスの自動抑制を調整するには?

ベストアンサー1

この機能は次のように調整できます。ZLE_REMOVE_SUFFIX_CHARSそしてZLE_SPACE_SUFFIX_CHARSシェルパラメータ。

  • この変数が設定されている場合は、ZLE_REMOVE_SUFFIX_CHARS入力時にオートコンプリートサフィックスが削除される文字セットを含める必要があります。設定されていない場合、ZLE_REMOVE_SUFFIX_CHARSデフォルトの動作は次のとおりです。

    ZLE_REMOVE_SUFFIX_CHARS=$' \t\n;&|'
    
  • suffices に設定された文字はZLE_SPACE_SUFFIX_CHARSスペースで置き換えられます。またそれより優先する。ZLE_SPACE_SUFFIX_CHARS


したがって、必要な動作を得るために設定するだけで十分です。

ZLE_SPACE_SUFFIX_CHARS=$'|&'

,入力すると、自動的に挿入された中括弧の列挙が常に削除されるようです}

zshparam(1)一部の完成システムはこの動作を無視できると言われていますが、「new」compsys(あなたが呼ぶように)ではうまくcompadd動作するようです。

おすすめ記事