如何绑定密钥以在Vim Normal模式下执行tmux命令?

时间:2015-08-29 06:31:35

标签: vim tmux

我使用tmux终端多路复用器,我有这个简单的布局:

enter image description here

我有一个用于代码编辑的Vim窗格和一个用于构建和搜索代码和其他东西的终端。

你可能知道当我在Vim窗格时,我可以按 Ctrl + B Z 来缩放Vim窗格并按下它再次缩放回原始布局。

现在我想知道是否可以在Vim的Normal模式下绑定 Esc 来发送 Ctrl + B Z 缩放Vim窗格?

Esc 的其他IDE会隐藏除代码编辑器以外的所有内容吗?

1 个答案:

答案 0 :(得分:1)

您可以使用vim中的:!<cmd><cmd>传递给shell,因此:

:!tmux resize-pane -Z

将设置vim窗格的缩放状态 然后你只需要重新映射Esc

:nnoremap <Esc> :!tmux resize-pane -Z<CR><Esc> 

然而,每当您按Esc(因此实际显示其他窗格的一半时间)时,这将缩小缩放状态。

我猜你希望vim保持最大化,所以(this post用于识别窗格是否缩放):

:nnoremap <Esc> :silent! exec "!if \\! tmux list-panes -F '\\#F' \\| grep -q Z; then tmux resize-pane -Z; fi"<CR>:redraw!<CR><Esc>