星期三, 五月 09, 2007

vim split window

可以在同一个 vim 中同时打开几个窗口来编辑,这样比较直观:
sh$ vim -O main.py module.py
这样会使用垂直分割,水平风格使用 -o。如果使用 -O3 则会同时打开3个窗口。在一个打开的窗口中,可以使用 CTRL-WV 来复制一个垂直窗口,然后在新的窗口中就可以编辑新的文件,否则两边会同时变化。

窗口之间可以使用 CTRL-TAB 来进行切换(Windows gvim),Linux 下,使用 CTRL-W,> 也是可以的。

如果使用 :sp newfile 来获得水平分割,可以使用 CTRL-W,j 下移,CTRL-W,k 上移(和编辑移动命令一样)。CTRL-W,_(need SHIFT) 来最小化其它窗口,默认情况下最小化高度是 1(一行),可以使用 :set wmh=0 设置高度为 0,这样就只显示文件名。这样就可以在 ~/.vimrc 中定义几个 map:
sh$ vi ~/.vimrc
set wmh=0
map "<"C-J">" "<"C-W">"j"<"C-W">"_
map "<"C-K">" "<"C-W">"k"<"C-W">"_
,这样直接按 CTRL-J 就会切换到下一个窗口,并最小化其他窗口!

垂直分割则可以采用这样的方法:
sh$ vi ~/.vimrc
set wmw=0
nmap "<"C-H">" "<"C-W">"h"<"C-W">""<"bar">"
nmap "<"C-L">" "<"C-W">"l"<"C-W">""<"bar">"
然后使用 :vsp newfile (:vs 也可)来使用垂直分割窗口打开一个新文件。但如果要切换回去,比如 CTRL-L 之后,只能用 CTRL-W,H 来切换,所以设置 wmw=16 比较好一点,这样至少可以看到文件名。

Switch between splits very fast (for multi-file editing)
Vim documentation: vim_faq
Vim documentation: windows

这样 ~/.vimrc 为:
set number
set tabstop=4
au BufNewFile,BufRead *.t2t set ft=txt2tags
" colorscheme pablo
" colorscheme desert
set wmh=0
" winminheight
" set wh=999
" winheight
map "<"C-J">" "<"C-W">"j"<"C-W">"_
map "<"C-K">" "<"C-W">"k"<"C-W">"_
set wmw=16
" winwidth
nmap "<"C-H">" "<"C-W">"h"<"C-W">""<"bar">"
nmap "<"C-L">" "<"C-W">"l"<"C-W">""<"bar">"

没有评论: