ホスティングプロバイダーサーバーの1つにログインし、ALT +左とALT +右がGNU Screen。
どのような種類のキーバインディングを構成する必要があり、iTerm2で実行されているローカルOS X zshに対してこの動作をどこで取得するのですか?
私はここで解決策を見つけました: https://coderwall.com/p/h6yfda 。リンクがダウンした場合に備えて、その最も重要な部分をコピーします。
キーワードbackward-Word
とforward-Word
を探しています。したがって、キーバインディングが機能していないシェルを使用している場合は、bindkey -L | grep backward-Word
を試して、それらが構成されているかどうかを確認してください。これについての詳細は zshzle(1) にあります。
次のように入力して、手動でキーバインドを設定できます。
bindkey 'Ctrl+vAlt+Right'フォワードワード
bindkey 'Ctrl+vAlt+Left'後方-単語
キーバインドにも問題がありましたが、ほとんどの場合、Option/Altキーが予期したMeta/Escapeとは異なるものを送信することが問題でした。
ITermについて話すことはできませんが、これらは、Oh-my-zshでZSH5.0.7を実行しているFedora19のGNOMEターミナルでこの問題を解決するために使用したキーバインディングです。
bindkey "\e[1;3C" forward-Word
bindkey "\e[1;3D" backward-Word
ここで、\e
==エスケープキーシーケンス( セクション4.1.1 に記載されています)
および[
== O
(大文字のO;セクション 4.2.1 で説明されているように)、場合によっては。例: tmux
の下では、この置換は私にとって必要ですが、tmux
がない場合は、置換を行わないようにする必要があり、[
== [
シーケンスのキーコードは、cat
を使用して目的のシーケンスを押すと取得できます。たとえば、<Alt+Right>
を押した結果は、次のように解釈する必要があります。
$ cat
^[[1;3C
^[
== \e
==エスケープキーシーケンス
[
== [
tmux
OR [
== O
(大文字o)ありtmux
1;3
==これについてはわかりませんが、論理的には<Alt>
C
==右矢印キー
次に、このシーケンスは、最初の引数として、永続性のために~/.zshrc
ファイルのbindkey
に与えられ、bound、つまり、引数1のキーストロークは、上記の例の最初の行がforward-Word
であるウィジェットに対して、特定のエディターコマンド(またはzsh用語ではウィジェット)を実行します。
~/.zshrc
は、次の2つのコマンドを追加した後で再ソースする必要があります。
$ source ~/.zshrc
私のシステムの厄介な点の1つは、この特定の組み合わせにより、コマンドが発行されるたびにターミナルエミュレーターがビープ音を鳴らすことです。これは、を無効にすることで解決しました。
'Edit'->'Profile Preferences'->'Terminal Bell'
チェックボックス。
ITerm2のコマンドラインナビゲーションをより直感的にすることに関して私にとって最も効果的だったのは(私はコマンドラインで育ったことのない若い大人ですが、テキストエディタとIDEで多くの時間を過ごしました)でした。に:
Natural Text Editing
オプションを選択します。これにより、すべてのオプションを個別に変更しなくても、エディターのキーがより標準的な配置にデフォルト設定されます。
zkbd
を使用してキーバインディングを構成することをお勧めします。私はそれを使用し、 Alt+Left / Alt+Right iTerm2で正常に動作します。 zkbdの詳細については、zshcontrib(1)
を参照してください。