コマンドを実行するキーバインディングがあったらと思います。現在の状態で端末をクリックするとCtrl + f
コマンドが表示され、Enterキーを押す必要があります。私はおそらくキーバインディングが私のためにこれを行うことを望んでいました。私は現在
bindkey -s ^f "tmux-sessionizer\n"
停止してEnterキーを押すことはできませんか?それとも私ができることはありますか?
答え1
空のプロンプトでCtrl + Fを押すと(少なくともデフォルト設定では)、公開されたコードが実行されます(少なくともデフォルト設定では)tmux-sessionizer
。実際にextended_glob
参照する必要がある非常に便利なオプションセットがあるかもしれません^
。例bindkey '^f' 'tmux-sessionizer\n'
)。ただし、空でないプロンプトでこのキーを押すと、一般的に役に立つ操作は実行されず、一部の悪い操作が発生する可能性があります。外部コマンドを実行するより良い方法は、シェル入力を使用するのではなく、直接実行することです。そのために:
- 定義する機能これがあなたが望むものです。
- 関数の終わりに、行編集者に話す到着プロンプトを再表示。
- 次のように関数を登録します。ラインエディタウィジェット。
- キーバインディングエディタウィジェットに。
function run-tmux-sessionizer { tmux-sessionizer; zle redisplay; }
zle -N run-tmux-sessionizer
bindkey '^f' run-tmux-sessionizer
答え2
これはできません扱いにくい一人でコマンドbindkey
。しかし、もしあなたがzsh-edit
入れる、以下を使用できます。
bind '^F' 'tmux-sessionizer'