我在 VIM 中有一个键映射,如下所示:
map <F5> :silent !tmux send-keys -t 0:0 C-m "python %" C-m<cr>
Run Code Online (Sandbox Code Playgroud)
当我按 F5 时,vim 在 tmux session 0,window 0 中运行我当前的 Python 脚本。但是,如果 window 0 当前处于滚动状态(即 Shift-PgUp 或鼠标滚动),tmux 将运行命令但不会继续滚动新输出。
如何将密钥发送到 tmux 窗口,使其脱离滚动模式?(我希望它在输出时滚动)
注意:我通常按 Esc 退出滚动模式,但我不知道如何使用tmux send-keys
. 我尝试发送,C-[
但没有奏效。
您可以使用 ANSI-C 引用发送文字转义(和换行符)(这里有更多相关内容),例如将转义发送到0:0
:
tmux send-keys -t 0:0 $'\e'
Run Code Online (Sandbox Code Playgroud)
对于您的映射,假设我理解正确,您可以执行以下操作:
map <F5> :silent !tmux send-keys -t 0:0 $'\e'"python"$'\n'<CR>
Run Code Online (Sandbox Code Playgroud)
请注意,转义符始终会被发送,因此为了解决 shell 接收转义符的问题,您可以发送额外的换行符:
map <F5> :silent !tmux send-keys -t 0:0 $'\e'$'\n'"python"$'\n'<CR>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4050 次 |
最近记录: |