カーソルキーが面白いです。

カーソルキーが面白いです。

UbuntuとArchはzshシェルをデフォルトのシェルとして使用します。

私の次の行を使用して、zshシェルで履歴を自動補完するショートカット(上矢印)を設定しました.zshrc

bindkey "^[[A" history-beginning-search-backward

ただし、Ubuntuで.zshrc起動および/または再起動すると、ショートカットは機能しません(入力を開始しても最後のコマンドのみが取得されます)。一方、Archではうまく動作します(最後のコマンドのみを取得します)what)I type)で始まります。

この問題を解決する方法を知っている人はいますか?

ベストアンサー1

ほとんどのxtermに似た端末では、Up(ほとんどのナビゲーションキーと同様に)端末が入力したかどうかに応じて送信または送信します␛[A␛OAキーボード転送モードかどうか。そして、terminfosmkxエントリは、rmkx端末をこのモードに切り替えるか終了するために使用することができます。

kcuu1(キーカーソル上へ1)terminfoエントリは、次の場合に送信されるUpシーケンスを記述します。キーボード転送モード、すなわち␛OA

Debian とその派生物には、/etc/zsh/zshrc次のことを行うファイルがあります。

function zle-line-init () {
   emulate -L zsh
   printf > /dev/tty '%s' ${terminfo[smkx]}
}

これにより、zleがアクティブになると端末がこのモードに切り替わります。つまり、terminfoデータベースを使用してキーストロークに送信される文字の順序を理解することができます。

この文書も$key連想配列の定義ウィジェットにマッピングするのに役立つterminfoエントリに基づいています。したがって、これらのシステムでは次のことができます。

(($+key[Up])) && bindkey $key[Up] history-beginning-search-backward

端末があるシステムで実行されているジョブの場合キーボード転送パターンとハッシュがほとんどまたはまったくないパターンの場合は、$key次のようにできます。

bindkey $terminfo[kcuu1] history-beginning-search-backward
bindkey ${terminfo[kcuu1]/O/[} history-beginning-search-backward

また見なさい:

おすすめ記事