多文件编辑
vim一次可以打开多个文件
vim <文件...> -》 在同一个窗口中编辑多个文件
vim -o <文件...> -》 在水平分割的多个窗口中编辑多个文件
vim -O <文件...> -》 在垂直分割的多个窗口中编辑多个文件
| 快捷键 |
功能 |
| :f FILENAME |
重命名当前窗口 |
| :n[ext] |
编辑下一个文件 |
| :2n |
编辑后面第2个文件,依次类推 |
| :N |
编辑上一个文件 |
| :2N |
编辑前面第2个文件,依次类推 |
| :wnext |
保存当前文件,并编辑下一个文件 |
| :wprevious |
保存当前文件,并编辑上一个文件 |
| :args |
显示文件列表 |
| :n FILENAMES |
指定新的文件列表 |
| :args FILENAMES |
指定新的文件列表 |
多标签编辑
vim一次可以打开多个标签页,每个文件一个标签页
vim -p <文件...>
| 快捷键 |
功能 |
| :tabe |
如果加文件名,就在新的标签中打开这个文件,否则打开一个空缓冲区 |
| :tabnew |
如果加文件名,就在新的标签中打开这个文件,否则打开一个空缓冲区 |
| ctrl-w + gf |
在新的标签页里打开光标下路径指定的文件 |
| :tabn |
切换到下一个标签(Control + PageDown) |
| :tabp |
切换到上一个标签(Control + PageUp) |
| [n]gt |
切换到下一个标签。如果加了n,就切换到第n个标签,第一个是1 |
| :tab split |
将当前缓冲区的内容在新页签中打开 |
| :tabc[lose] |
关闭当前的标签页 |
| :tabo[nly] |
关闭其它的标签页 |
| :tabm[ove] [N] |
移动标签页,移动到第N个标签页之后 |
| :tabs |
列出所有的标签页和它们包含的窗口 |
文件缓冲区
| 快捷键 |
功能 |
| :buffers |
显示缓冲区列表 |
| :ls |
显示缓冲区列表 |
| :files |
显示缓冲区列表 |
| ctrl + ^ |
在最近两个缓冲区间切换 |
| :bn |
下一个缓冲区 |
| :bp |
上一个缓冲区 |
| :bl |
最后一个缓冲区 |
| :b[n] |
切换到第n个缓冲区 |
| :[n]b |
切换到第n个缓冲区 |
| :[n]bw(ipeout) |
彻底删除第n个缓冲区 |
| :[n]bd(elete) |
删除第n个缓冲区,并未真正删除,还在unlisted列表中 |
| :ba[ll] |
把所有的缓冲区在当前页中打开,每个缓冲区占一个窗口 |
水平分割
| 快捷键 |
功能 |
| :sp[lit] |
水平分割窗口 |
| :sp[lit] FILENAME |
水平分割窗口,并在新窗口中显示另一个文件 |
| :[N]sp[lit] |
水平分割出一个n行高的窗口 |
| :[N]new |
水平分割出一个n行高的窗口,并编辑一个未命名文件 |
| C-W + f |
水平分割出一个窗口,并在新窗口打开名称为光标所在词的文件 |
垂直分割
| 快捷键 |
功能 |
| :vsp[lit] |
垂直分割窗口 |
| :vsp[lit] FILENAME |
垂直分割窗口,并在新窗口中显示另一个文件 |
| :[N]vsp[lit] |
垂直分割出一个n列宽的窗口 |
| :[N]vnew |
垂直分割出一个n列宽的窗口,并编辑一个未命名文件 |
关闭子窗口
| 快捷键 |
功能 |
| :qa[ll] |
关闭所有窗口,退出vim |
| :wa[ll] |
保存所有修改过的窗口 |
| :on[ly] |
只保留当前窗口,关闭其它窗口(C-W + o) |
| :close |
关闭当前窗口(C-W + c),:q :x也能关闭 |
切换和移动窗口
下文中的大写C代表Control键,加号表示组合的意思,不必输入
| 快捷键 |
功能 |
| C-W + C-W |
切换到下一个窗口 |
| C-W + w |
切换到下一个窗口 |
| C-W + p |
切换到前一个窗口 |
| C-W + h(l,j,k) |
切换到左(右,下,上)的窗口 |
| C-W + H(L,K,J): |
将当前窗口移动到最左(右、上、下)面 |
| C-W + t(b) |
切换到最上(下)面的窗口 |
| C-W + r |
旋转窗口的位置 |
| C-W + T |
将当前的窗口移动到新的标签页上 |
调整窗口大小
下文中的大写C代表Control键,加号表示组合的意思,不必输入
| 快捷键 |
功能 |
| [n] C-W + + |
当前窗口增高n行 |
| [n] C-W + - |
当前窗口减小n行 |
| [n] C-W + < |
当前窗口减少n列 |
| [n] C-W + > |
当前窗口增宽n列 |
| [n] C-W + _ |
当前窗口尽可能高,也可以用n设定行数 |
| [n] C-W + | |
当前窗口尽可能宽,也可以用n设定列数 |
| C-W + = |
所有窗口同样高度 |
| :resize n |
当前窗口设置为n行高 |
| :resize +n |
当前窗口增加n行 |
| :resize -n |
当前窗口减少n行 |
| :vertical resize n |
当前窗口设置为n列宽 |
| :vertical resize +n |
当前窗口增加n列 |
| :vertical resize -n |
当前窗口减少n列 |
参考
Vim使用笔记
vim中多标签和多窗口的使用