Chr*_*sen 13
您可能可以使用 Vim:!命令运行tmux send-keys将 Control-R †发送到您的另一个窗格。由于send-keys可以将击键发送到任何窗格(不仅仅是活动窗格),您甚至不需要来回切换活动窗格。
这是一个 Vim 映射(你可以把它放在你的.vimrc或者只是将它粘贴到:提示中来尝试):
:map <Leader>rl :w<Bar>execute 'silent !tmux send-keys -t bottom C-r'<Bar>redraw!<C-M>
Run Code Online (Sandbox Code Playgroud)
这将\rl键序列(<Leader>默认为\,但可以自定义)映射到以下 Vim 命令序列(以 分隔<Bar>;参见:help map_bar):
execute在这里使用是为了不将下一个 Vim 命令 ( redraw) 作为:!shell 命令的一部分。silent前缀命令来避免“按 ENTER 继续”提示。如果您想要提示或想要查看命令的输出(例如tmux命令不起作用,并且您想要查看它是否给出错误消息),则slient:!silent.†我手头没有lynx,但根据我搜索“lynx reload”(即用户指南的“重新加载文件并刷新显示”),Control-R 似乎是重新加载键。
‡此外bottom,还有其他指定目标窗格的方法(在tmux手册页中搜索“target-pane” ):
.+1, .-1: 下一个,此窗口中的上一个窗格top、bottom、left、right和top/bottom与left/ 的组合rightbottom-left)%42( tmux 1.5+):%来自目标窗格的 TMUX_PANE 环境变量的 - 前缀窗格编号
如果您的 Lynx 窗格并不总是与您的 Vim 实例在同一个tmux窗口中,那么最后一种形式可能会很方便。在启动 Lynx 之前,将 TMUX_PANE 的值保存到一个临时文件中,然后读取该文件以形成目标窗格参数:
# before running Lynx (anytime really, but "before" is usually scriptable)
echo "$TMUX_PANE" > /tmp/my-lynx-pane
# in the Vim :! command in the mapping:
tmux send-keys -t "$(cat /tmp/my-lynx-pane)" C-r
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
3336 次 |
| 最近记录: |