
私はGNOME Terminal 2.7.3とzsh 4.3.9(x86_64-unknown-linux-gnu)を使用しています。
Home
そしてEnd
動作しません。押しても何も起こらず、何も表示されません。しかし、(シェル出力の先頭までスクロール)を押すと機能し、shift + Home
他のGUIプログラムでも機能します。私はグーグルをして次のことを試しました。変更を維持してください。:(
885 bindkey "\e[1~" beginning-of-line
886 bindkey "\e[H" beginning-of-line
887 bindkey "\e1~" beginning-of-line
888 bindkey "\eH" beginning-of-line
889 bindkey "\e[0H" beginning-of-line
PS:最後のタブでキーを押すと、画面に印刷がCtrl + pagedown
表示されます。;5~
これはどのような手がかりを提供しますか?
答え1
ファンクションキーとカーソルキーによって送信されるエスケープシーケンスは、エスケープ文字と印刷可能文字で構成されます。Ctrl+を押してVからを押しますHome。文字通りエスケープシーケンスが挿入されます。その後、bindkey
ディレクティブを~/.zshrc
。
ディレクティブは次のようになります(O
代わりに0
)。
bindkey '\e[OH' beginning-of-line
bindkey '\e[OF' end-of-line
答え2
とforと各シーケンスを取得するには、を押してCTRL-v
放してから、またはHome
キーを押す必要があることがわかりました。ファイルに次の行を追加することで問題が解決しました。End
^[[H
^[[F
Home
End
.zshrc
bindkey '^[[H' beginning-of-line
bindkey '^[[F' end-of-line
答え3
次の行を追加して/etc/zshrc
実行しますsource /etc/zshrc
(次から取得)。ここ)
bindkey '\e[1~' beginning-of-line # Linux console
bindkey '\e[H' beginning-of-line # xterm
bindkey '\eOH' beginning-of-line # gnome-terminal
bindkey '\e[2~' overwrite-mode # Linux console, xterm, gnome-terminal
bindkey '\e[3~' delete-char # Linux console, xterm, gnome-terminal
bindkey '\e[4~' end-of-line # Linux console
bindkey '\e[F' end-of-line # xterm
bindkey '\eOF' end-of-line # gnome-terminal
答え4
この答えは私の問題を非常によく説明して解決します。
https://stackoverflow.com/a/686458/5472892
簡単に言うと:PuTTY 端末の種類を既定値xterm
からlinux
。
たぶん誰かがこれを使うことができます。