web-dev-qa-db-ja.com

zsh:ALT + BACKSPACEを英数字以外の文字で停止させる

デフォルトではzshで、 CTRL+w そして ALT+Backspace まったく同じ効果があるようです。

どうすれば維持できますか CTRL+w そのまま、そして変化する ALT+Backspace 英数字以外の文字で停止するようにします。

つまり、カーソルが次のコマンドの最後にある場合:echo /aaa/bbb/ccc、を押します CTRL+w を押しながらechoを残す必要があります ALT+Backspaceecho /aaa/bbb/を残す必要があります。

4
400 the Cat

実際、これはzshバインディングにリストされていませんが、bindkeyyouに対して表示する場合は、にバインドすることで構成できます。定義する関数。

私の答えから作業

私はリストの誰か(Oliver Kiddle)によって提供されたこのビットを使用します。詳細については、
 10月8日月曜日のアーカイブを確認してください:
 
 tcsh-backward-delete-Word(){
 local WORDCHARS = "$ {WORDCHARS:s#/#} "
 zle back-delete-Word 
} 
 
 control-Wにバインドしています:
 bindkey '^ W'tcsh-backward-delete-Word 
 
しかし、それは明らかに変更できます。
 
それがあなたが探しているものだと思います、いいえ?
 [。 ]そのままにしておきたいので、この機能が好きです。

つまり、$WORDCHARSを独自の関数のローカル変数として使用し、必要に応じて単語を定義し、それを任意のキーにバインドできます。

関数を定義するときは、キーマップとして追加することを忘れないでください。

zle -N tcsh-backward-delete-Word
7
Thomas Dickey