假设我在vim中有一些任意的分割布局。
____________________
| one | two |
| | |
| |______|
| | three|
| | |
|___________|______|
有没有办法交换一个和两个,并保持相同的布局?在这个例子中很简单,但我正在寻找一个解决方案,将有助于更复杂的布局。
更新:
我想我应该说清楚点。我前面的例子是对实际用例的简化。有一个实际的例子:
我怎么能交换任何两个分割,保持相同的布局?
更新!3年多后……
我把sgriffin的解决方案放在一个Vim插件中,你可以轻松安装!用你最喜欢的插件管理器安装它,并尝试一下:WindowSwap.vim
从这个开始:
____________________
| one | two |
| | |
| |______|
| | three|
| | |
|___________|______|
将“three”设置为活动窗口,然后发出命令ctrl+w j,这将移动当前窗口以填充屏幕底部,留给你:
____________________
| one | two |
| | |
|___________|______|
| three |
| |
|__________________|
现在将'one'或'two'作为活动窗口,然后发出命令ctrl+w r。这将'旋转'当前行中的窗口,留下你:
____________________
| two | one |
| | |
|___________|______|
| three |
| |
|__________________|
现在将“two”设置为活动窗口,并发出ctrl+w h命令,这将移动当前窗口以填充屏幕左侧,留下:
____________________
| two | one |
| | |
| |______|
| | three|
| | |
|___________|______|
如你所见,这个动作有点乱。它有3个窗口,有点像“瓷砖游戏”谜题。如果你有4个或更多的窗口,我不建议你尝试这个方法——你最好关闭它们,然后在需要的位置重新打开它们。
我做了一个视频演示如何在Vim中使用分割窗口。