VIM には次のキーマップがあります。
map <F5> :silent !tmux send-keys -t 0:0 C-m "python %" C-m<cr>
F5を押すと、vimはtmuxセッション0、ウィンドウ0で現在のPythonスクリプトを実行します。ただし、ウィンドウ0が現在スクロールしている場合(つまり、Shift-PgUpまたはマウススクロール)、tmuxはコマンドを実行しますが、新しい出力をスクロールしません。
スクロールモードから抜け出すためにtmuxウィンドウにキーをどのように送信しますか? (出力時にスクロールしたい)
ノート:通常、Escキーを押してスクロールモードを終了するのにEscキーを使用する方法を知りませんtmux send-keys
。転送しようとしましたが、C-[
成功しませんでした。
答え1
ANSI-C引用符(およびその詳細)を使用して、リテラルエスケープ(および改行文字)を送信できます。ここ)、たとえば、次のアドレスにエスケープを送信します0:0
。
tmux send-keys -t 0:0 $'\e'
マッピングについて私が正しく理解したと仮定すると、次のことができます。
map <F5> :silent !tmux send-keys -t 0:0 $'\e'"python"$'\n'<CR>
エスケープ文字は常に送信されるため、シェルがエスケープ文字を受け取る問題を解決するには、追加の改行文字を送信できます。
map <F5> :silent !tmux send-keys -t 0:0 $'\e'$'\n'"python"$'\n'<CR>