我在 Tmux 中并排使用 Vim 和 Bash。我已将 Vim 配置为在文件之间切换时自动保存文件,但我真的很喜欢它在切换到 Bash 窗格时自动保存。
当窗格失去焦点时,有没有办法让 Tmux 向 Vim 发送某种代码?
这可能最好使用vim的客户端-服务器模型来完成。有一些关于在:help remote.txt.
首先,您需要一个vim使用该+clientserver选项编译的客户端。如果您的发行版没有以这种方式打包,请获取源代码(通过apt-get source、abs、 等)并添加该选项。
完成后,您需要重新绑定密钥,tmux以便在更改窗口时它还会向活动窗口发送类似以下内容:
vim --servername foo --remote-send '<C-\><C-N>:w<CR>'
Run Code Online (Sandbox Code Playgroud)
类似以下的内容应该可以工作(未测试):
bind-key 0 run-shell "vim --servername foo --remote-send '<C-\><C-N>:w<CR>'" \; select-window -t :0
Run Code Online (Sandbox Code Playgroud)