Bashで前/次の単語ショートカットを変更するには?

Bashで前/次の単語ショートカットを変更するには?

bashの前/次の単語ショートカット(現在のalt-bとalt-f)でCtrl-LeftとCtrl-Rightをどのように設定しますか?

答え1

正解は使用する端末によって異なります。

Gnome Terminalまたは最新バージョンのxtermの場合、~/.inputrcに次のように入力します。

"\e[1;5C": forward-word
"\e[1;5D": backward-word

PuTTYの場合は、~/.inputrcに次のように入力します。

"\eOC": forward-word
"\eOD": backward-word

rxvtの場合、~/.inputrcに次のように入力します。

"\eOc": forward-word
"\eOd": backward-word

おそらく、これらすべてを〜/.inputrcに入れることができます。

すべての場合にこれを ~/.bashrc (または ~/.zshrc) に入れる必要があります。

export INPUTRC=~/.inputrc

これがうまくいかない場合、または他の端末がある場合は、端末に移動してCtrl++をV Ctrl入力してください->。その後、代わりにまたは"\e[1;5C"その"\eOC"上に使用してください。Ctrl+を繰り返します<-

以下を使用してキーボードエスケープシーケンスを作成する必要があります。入力構文、例えば

  • \C制御を意味する
  • \e^[エスケープを示します(上でCtrl + Vを押して入力したときに表示されます)。

答え2

ZSHを使用している場合は、次の参照が提供されているため、他のアプローチを取る必要があります。ArchLinux用ZSHガイド:

Zshはbash#のようにreadline#を使用しませんが、独自のより強力なzleを使用します。

/etc/inputrc または ~/.inputrc を読みません。

そのガイドを読んだ後にこれを行う方法に関する一般的なアイデアを得るには、ZSHの最新のソースが必要だと考えて、次のことを見つけました。ああ、zshファイルです。これは私が望む動作を説明し、必要な関連部分を〜/ .zshrcにコピーします。

bindkey -e #Use emacs mode, it's more sane for beginners
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
# Also, If you want to copy paste this into your zshrc,
# I'm pretty sure you would have to add this at the top : 
# setopt interactive_comments

関連情報