zsh で `Ctrl+W` と `Ctrl+Alt+H` を bash と同じように動作させる

zsh で `Ctrl+W` と `Ctrl+Alt+H` を bash と同じように動作させる

Bashの動作は次のとおりです。

  • Ctrl+W次のスペースまでカーソルの後ろの単語を削除します。
  • Ctrl++などの次の区切り文字までカーソルの後の単語を削除しますAltH.,-/

+ とzsh++ のように動作します。CtrlWCtrlAltHbash

私はで同じ動作をしたいと思いますbash

ベストアンサー1

に含まれている内容に関係なく、$WORDCHARSこれは必要な操作を実行し、削除された単語を次に使用できるようにしますyank

# Create a new widget.
zle -N backward-kill-space-word
backward-kill-space-word() {
  # Inform the line editor that this widget will kill text.
  zle -f kill

  # Set $WORDCHARS for this command only. 
  WORDCHARS='*?_-.[]~=/&;!#$%^(){}<>' zle .backward-kill-word
}

# See comments above.
zle -N backward-kill-bash-word
backward-kill-bash-word() {
  zle -f kill
  WORDCHARS='' zle .backward-kill-word
}

# Bind the widgets to keys.
bindkey   '^W' backward-kill-space-word
bindkey '^[^H' backward-kill-bash-word

代わりに、私は以下を投稿しました。プラグイン名は次のとおりです。zsh-edit、これらのキーバインディングのより複雑なバージョンが提供されます。

おすすめ記事