vim支持窗口分割和标签页,合适地使用这两种特性可以使文字编辑工作更愉快。
1. 窗口分割
vim支持窗口的水平分割和垂直分割。以下是常用的操作指令或快捷键。
命令 | 说明 |
vim -o <files> | 打开多个文件,并将它们放在水平分割的窗口中 |
vim -O <files> | 打开多个文件,并将它们放在垂直分割的窗口中 |
:sp[lit] [file] | 不加file参数时,新建一个水平窗口,放置当前文件的副本; 新窗口将位于当前窗口的上面,光标停在新窗口中。 |
:vsp[lit] [file] | 不加file参数时,新建一个垂直窗口,放置当前文件的副本; 新窗口将位于当前窗口的左边,光标停在新窗口中。 |
:qa[ll] | 关闭所有窗口并退出 |
:wa[ll] | 保存所有窗口中的内容 |
:on[ly] <Ctrl>+w+o | 关闭当前窗口之外的其他所有窗口 |
:clo[se] <Ctrl>+w+c | 关闭当前窗口 |
<Ctrl>+w+h | 将光标移动到当前窗口左边的窗口 |
<Ctrl>+w+j | ..............................下........... |
<Ctrl>+w+k | ..............................上........... |
<Ctrl>+w+l | ..............................右........... (l是字母L的小写) |
<Ctrl>+w+t | 将光标移动到第一个窗口 |
<Ctrl>+w+b | 将光标移动到最后一个窗口 |
<Ctrl>+w+H | 将当前窗口移动到最左边 |
<Ctrl>+w+J | ...........................下... |
<Ctrl>+w+K | ...........................上... |
<Ctrl>+w+L | ...........................右... |
<Ctrl>+w+R | 将当前窗口列表向前滚动一个位置(如果有3个垂直窗口,一开始从左到右依次是 当只有两个窗口时,交换这两个窗口的位置。 |
<Ctrl>+w++ | 增加当前窗口的高度(默认是一行) |
<Ctrl>+w+- | 减小.................... |
<Ctrl>+w+> | 增加当前窗口的宽度(默认是一列) |
<Ctrl>+w+< | 减小.................... |
<Ctrl>+w+= | 使所有窗口的宽度/高度相同(既有水平窗口,又有垂直窗口的情况没试过会怎么样) |
:res[ize] <N> :res[ize] +<N> :res[ize] -<N> | 调整当前窗口的高度:为N行,增加N行,减小N行 |
:vert[ical] res[ize] <N> :vert[ical] res[ize] +<N> :vert[ical] res[ize] -<N> | 调整当前窗口的宽度:为N列,增加N列,减小N列 |
另外vim提供了quickfix窗口,在执行vimgrep之类的命令后,结果会显示在quickfix窗口,运行:cw命令即可呼出此窗口。与quickfix的指令有
命令 | 说明 |
:cw | 如果有信息列表,则打开quickfix窗口;否则什么也不做 |
:cl | 列出所有信息 |
:cc | 显示详细信息 |
:cp | 跳到上一项 |
:cn | ......下一项 |
:copen | 打开quickfix窗口,可添加窗口高度参数,单位为行 |
:cclose | 关闭quickfix窗口 |
:cold[er] | 到前一个旧列表 |
:cnew | 到后一个新列表 |
2. 标签页
分割窗口有时候会显得vim界面比较杂乱,这时候,标签页是另一个选择。以下是常用的操作指令或快捷键。
命令 | 说明 |
vim -p <files> | 打开多个文件,并将它们放在标签中 |
:tabe[dit] <file> | 在当前标签页之后新建一个标签页,在其中放置file的内容 |
:tabnew <file> | 新建一个文件file,并为它新建一个标签页 |
:tabo[only] | 关闭其他标签页 |
:tabc[lose] :q | 关闭当前标签页 |
gt | 打开下一个标签页 |
gT | ......上一个......... |
:tabfir[st] :tabr[ewind] | 打开第一个标签页 |
:tabl[ast] | 打开最后一个标签页 |
:tabm[ove] <N> :tabm[ove] +<N> :tabm[ove] -<N> | 移动标签页:移到到位置N,往右移N个位置,往左移N个位置 |
:tabs | 显示当前标签页 |
:help tab-page-intro | 查询标签页相关命令 |