ZSH Bindkey がコマンドを実行し、Enter キーを押します。

ZSH Bindkey がコマンドを実行し、Enter キーを押します。

コマンドを実行するキーバインディングがあったらと思います。現在の状態で端末をクリックするとCtrl + fコマンドが表示され、Enterキーを押す必要があります。私はおそらくキーバインディングが私のためにこれを行うことを望んでいました。私は現在

bindkey -s ^f "tmux-sessionizer\n"

停止してEnterキーを押すことはできませんか?それとも私ができることはありますか?

ベストアンサー1

空のプロンプトでCtrl + Fを押すと(少なくともデフォルト設定では)、公開されたコードが実行されます(少なくともデフォルト設定では)tmux-sessionizer。実際にextended_glob参照する必要がある非常に便利なオプションセットがあるかもしれません^。例bindkey '^f' 'tmux-sessionizer\n')。ただし、空でないプロンプトでこのキーを押すと、一般的に役に立つ操作は実行されず、一部の悪い操作が発生する可能性があります。外部コマンドを実行するより良い方法は、シェル入力を使用するのではなく、直接実行することです。そのために:

  1. 定義する機能これがあなたが望むものです。
  2. 関数の終わりに、行編集者に話す到着プロンプトを再表示
  3. 次のように関数を登録します。ラインエディタウィジェット
  4. キーバインディングエディタウィジェットに。
function run-tmux-sessionizer { tmux-sessionizer; zle redisplay; }
zle -N run-tmux-sessionizer
bindkey '^f' run-tmux-sessionizer

おすすめ記事