私のもの.inputrc
:
"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
"\eOc": forward-word
"\eOd": backward-word
"\e[1;5C": forward-word
"\e[1;5D": backward-word
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
.zprezto/modules/editor/init.zsh
また、ディレクティブを定義するものには触れませんでした。bindkey
ただし、ボタンを押すかCtrlLeft端末CtrlRight(URxvt)が点滅しても何も起こりません。一方、XTermでは動作します。これはURxvtの問題のようです。
答え1
ファイル~/.inputrc
はbashファイルであり、zsh
私が知っている限り、そのようなファイルではありません。制御する動作は次のとおりですreadline
。zsh
zle
。次のコマンドを使用して動作を変更できます。bindkey
注文する。
Ctrl Leftしたがって、往復するには、Right次の行をあなたの行に追加します~/.zshrc
(同等のより良い場所があるかもしれませんが、~/.inputrc
私はそれを知らずに~/.zshrc
動作します):
bindkey "\eOc" forward-word
bindkey "\eOd" backward-word
bindkey "\e[1;5C" forward-word
bindkey "\e[1;5D" backward-word
bindkey "\e[5C" forward-word
bindkey "\e[5D" backward-word
bindkey "\e\e[C" forward-word
bindkey "\e\e[D" backward-word
答え2
表示されるキーバインディングは、xterm(およびxtermの動作を複製するプログラム)用です。 urxvt
はい、サブアイテムにrxvt
使用されます。その他キーバインディング。デフォルトでcontrolleftは、rxvt / urxvt sendの場合はescapeOdこれを確認できます。
cat -v
そしてキーの組み合わせを入力してください。^[Od
他のカーソルキーにも同じ問題が適用されます。
urxvt
利用可能なリソース設定keysym.sym
(で紹介した機能の拡張)を提供します。rxvt
できるより密接に一致するように、これらのエンドポイントで送信されたキーを変更するために使用されますxterm
。これは次のリソース設定になります。
URxvt.keysym.Control-0xff51: \033[1;5D
ここで(マンページに示すように)Control
は修飾子で、左0xff51
カーソルキーのコードです。を使用できますxev
。
すべてのキーを取得するには、各キー(および修飾子)のリソースを追加する必要があります。
追加資料: