我使用tmux终端多路复用器,我有这个简单的布局:
我有一个用于代码编辑的Vim窗格和一个用于构建和搜索代码和其他东西的终端。
你可能知道当我在Vim窗格时,我可以按 Ctrl + B Z 来缩放Vim窗格并按下它再次缩放回原始布局。
现在我想知道是否可以在Vim的Normal模式下绑定 Esc 来发送 Ctrl + B Z 缩放Vim窗格?
按 Esc 的其他IDE会隐藏除代码编辑器以外的所有内容吗?
答案 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>