首页 > 代码库 > vim水平摆放所有窗口的三个方法

vim水平摆放所有窗口的三个方法

Method1: map <F7> <ESC>:windo exe "normal \<foobar<C-W>C-W>K"<CR>
Method2: map <F8> <ESC>:windo wincmd K<CR>
Method3: map <F9> <ESC>:call HorizontAll()<cr>

function! HorizontAll()
    windo exe "normal \<c-w>K"
endfunction



小结:
1  map {rhs} 的字串中,ctrl-w会被转意成insert mode下的一个删除命令,该命令删除当前位置的前一个单词,方法1中的foobar就是为了中和掉这个转意。
第一种方法,也是我最开始想到方法,因为ctrl-w的转意,导致映射死活不生效,让我第一次对Vim大为恼怒。隔了一晚上后,才想到中间加一个单词进行中和,早上过来一试果然生效。
2   当为第一种方法的“高明”做法而沾沾自喜的时,才发现还有两种更优雅,更灵活的方法,而第一种方法是如此地丑陋,不禁感叹,想象力有限!受益于伟大祖国的应试教育?不知道。
3   第1与第3方法是我自己睡了一晚后想出来的,第2种方法是翻文档的时候碰见wincmd想起来的,也算半个原创,这也说明创新源于持续不断的努力。

vim水平摆放所有窗口的三个方法