Vim 在2个tmux布局之间切换
我经常在tmux会话中运行Vim,以便在相邻窗格中运行测试。在一个更小的显示器上,我要么牺牲比我想要的更多的Vim屏幕空间,要么使测试窗格太小,无法读取完整的结果(如果一切都通过了,这很好,但当出现故障时,我需要查看详细信息) 然后,我的工作流程变成:Vim 在2个tmux布局之间切换,vim,tmux,Vim,Tmux,我经常在tmux会话中运行Vim,以便在相邻窗格中运行测试。在一个更小的显示器上,我要么牺牲比我想要的更多的Vim屏幕空间,要么使测试窗格太小,无法读取完整的结果(如果一切都通过了,这很好,但当出现故障时,我需要查看详细信息) 然后,我的工作流程变成: Vim内的触发测试 切换到测试窗格(最后一个窗格) 缩放窗格以占据整个窗口(调整窗格大小-Z) 阅读结果 恢复原始布局(调整窗格大小-Z) 切换回Vim窗格(最后一个窗格) 我想添加一个键绑定,当我在Vim窗格中缩放测试窗格时可以使用它(隐藏
- Vim内的触发测试
- 切换到测试窗格(
)最后一个窗格
- 缩放窗格以占据整个窗口(
)调整窗格大小-Z
- 阅读结果
- 恢复原始布局(
)调整窗格大小-Z
- 切换回Vim窗格(
)最后一个窗格
-F
和window\u zoomed\u标志
格式变量,而不是依赖于每个窗口的环境变量:
bind Space if-shell -F '#{window_zoomed_flag}' \
'last-pane' \
'select-pane -t :.+; resize-pane -Z'
在tmux.conf中,创建一个键绑定,该键绑定:
请注意,分号命令分隔符上的反斜杠转义是必需的。在tmux.conf中,创建一个键绑定,该键绑定:
bind Space if-shell -F '#{window_zoomed_flag}' \
'last-pane' \
'select-pane -t :.+; resize-pane -Z'
bind key run-shell "tmux setenv zoomed $(tmux display -p '#{window_zoomed_flag}')"\; \
last-pane\; \
run-shell "test $(tmux display -p '#{zoomed}') -ne 0 || tmux resize-pane -Z"