VIM常用命令总结
2011-10-02 22:57
239 查看
多标签切换网上这类的文章太多了,看上去有点像标题党。我在这里只是想总结一下自己常用的一些,如果有更好的可以随时留言,感激不尽!
首先介绍一下 vi/vim是 unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都有 vi 有各种变种, 在不同的机器上常用不同的变种软件 其中 vim 比较好用也用得比较广泛 vim 是 Vi IMproved 的缩写, 表示更好的 vi 本文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件很大帮助,尤其是做开发的人员,能快速的提高开发效率。
另附一张图,上面又一些非常常用的命令
![](http://pic002.cnblogs.com/images/2011/290327/2011100617584324.jpg)
说明:
以下的例子中 xxx 表示在命令模式下输入 xxx 并回车
以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车
小括号中的命令表示相关命令
在编辑模式或可视模式下输入的命令会另外注明
插入/保存
i →在光标前插入
a → 在光标后插入
o → 在当前行后插入一个新行
O → 在当前行前插入一个新行
w → 存盘
x →表示仅在需要时保存
wq→保存并退出
ZZ→不需要输入冒号并回车
saveas <path/to/file> → 另存为 <path/to/file>
e <path/to/file> → 打开一个文件
bn 和 bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件
qa! → 强行退出所有的正在编辑的文件,就算别的文件有更改。
查找
/xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了
一般来说是区分大小写的, 要想不区分大小写, 那得先输入
:set ignorecase
查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找
*(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)
一个单词 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找
g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串
gd 本命令查找与光标所在单词相匹配的单词, 并将光标停留在文档的非注释段中第一次出现这个单词的地方
% 本命令查找与光标所在处相匹配的反括号, 包括 () [] { }
f(F)x 本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符
找到后:
输入 ; 表示继续往下找
输入 , 表示反方向查找
快速移动光标
在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑 因此能更快一点移动光标是很有用的
w(e) 移动光标到下一个单词
b 移动光标到上一个单词
0 移动光标到本行最开头
^ 移动光标到本行最开头的字符处
$ 移动光标到本行结尾处
H 移动光标到屏幕的首行
M 移动光标到屏幕的中间一行
L 移动光标到屏幕的尾行
gg 移动光标到文档首行
G 移动光标到文档尾行
c-f (即 ctrl 键与 f 键一同按下) 本命令即 page down
c-b (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up
'' 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置
' 此命令相当好使, 它移动光标到上一次的修改行
` 此命令相当强大, 它移动光标到上一次的修改点
拷贝, 删除与粘贴
在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴 其中拷贝与删除是与光标移动命令
结合的, 看几个例子就能够明白了
x 删当前光标所在的一个字符。
yw 表示拷贝从当前光标到光标所在单词结尾的内容
dw 表示删除从当前光标到光标所在单词结尾的内容
y0 表示拷贝从当前光标到光标所在行首的内容
d0 表示删除从当前光标到光标所在行首的内容
y$ 表示拷贝从当前光标到光标所在行尾的内容
d$ 表示删除从当前光标到光标所在行尾的内容
yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容
dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容
特殊地:
yy 表示拷贝光标所在行
dd 表示删除光标所在行
D 表示删除从当前光标到光标所在行尾的内容
关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询
数字与命令
在 vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行
号定位 如:
5fx 表示查找光标后第5个x字符
5w(e) 移动光标到下五个单词
5yy 表示拷贝光标以下 5 行
5dd 表示删除光标以下 5 行
y2fa 表示拷贝从当前光标到光标后面的第二个a字符之间的内容
:12,24y 表示拷贝第12行到第24行之间的内容
:12,y 表示拷贝第12行到光标所在行之间的内容
:,24y 表示拷贝光标所在行到第24行之间的内容 删除类似
快速输入字符
在 vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符
使用 linux/unix 的同学一定有一个经验, 在命令行下输入命令时敲入头几个字符再按
TAB 系统就会自动将剩下的字符补齐, 假如有多个匹配则会打印出来 这就是著名的命令
补齐(其实windows中也有文件名补齐功能) vi 中有许多的字符串补齐命令, 非常方便
c-p(c-n) 在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜
索开头与其匹配的单词并补齐, 不断输入此命令则循环查找 此命令
会在所有在这个 vim 程序中打开的文件中进行匹配
c-x-l 在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的
文档中进行匹配
c-x-f 在编辑模式中, 这个命令表示补齐文件名 如输入:
/usr/local/tom 后再输入此命令则它会自动匹配出:
/usr/local/tomcat/
abbr 即缩写 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个
字符串 比如编写java文件的常常输入 Systemoutprintln, 这很
是麻烦, 所以应该用缩写来减少敲字 可以这么做:
:abbr sprt Systemoutprintln
以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System
outprintln
替换
替换是 vi 的强项, 因为可以用正规表达式来匹配字符串以下提供几个例子
:s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb
:s/\<aa\>/bb/g 将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词
:%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/^/#/ 将从12行到23行的行首加入 # 字符
:%s= *$== 将所有行尾多余的空格删除
:g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除
多文件查找替换
查找命令
vimgrep
vimgrep是vim自带的一个工具,类似于grep的用法就可以实现。语法如下:
:vimgrep /{pattern}/[g][j] {file} ...
简单来讲,就是在路径和文件命符合{file}的所有文件中,查找符合{pattern}的字符串.(查找的结果可以用:copen命令打开quickfix列表查看).
没有参数g的话,则行只查找一次关键字.反之会查找所有的关键字.
没有参数j的话,查找后,VIM会跳转至第一个关键字所在的文件.反之,只更新结果列表(quickfix).
比如要在当前目录查找word,使用如下:
:vimgrep word *
如果想要递归查找所有下级目录里面,那么就用: :vimgrep word **
再举一些其他的例子
:vimgrep /the menu/ *.php
表示在当前目录下的扩展名为php的所有文件中,查找字符串"the menu".
:vimgrep /the menu/ ./includes/*.*
表示在当前目录中的"includes"目录里的所有文件中,查找字符串"the menu".
:vimgrep /the menu/ **/*.*
在当前目录及其子目录
里的所有文件中,查找字符串"the menu".
查找的结果可以用":copen"命令查看,在列表里,将光标移动至相应的位置,按回车就打开对应的文件了.
注:
:copen 打开quickfix
:cclose 关闭quickfix
:cc 转到当前查找到的位置
:cn 转到下一个位置
:cp 转到前一个位置
另外,如果想要在使用是快捷查找当前光标下的字母,则只需要在vimrc中添加如下代码:
"对搜索的设置
map ft :call Search_Word()<CR>:copen<CR>
function Search_Word()
let w = expand("<cword>") " 在当前光标位置抓词
execute "vimgrep " w " *"endfunction
替换:
args
举例说明一下
如果你想将当前目录下所有类型的文件中的 oldword 替换为 newword,那么只需要打开当前目录下的某个文件,输入如下两条命令并回车:
:args *.*:argdo %s/oldword/newword/egc | update
接下来的工作就是确认Vim查找到的那个关键词是否要被替换。是则按下 y ,否则按下 n。
解释下所用到的命令:
第一行,我们使用 args 命令,将当前目录下所有类型的文件都加入到参数列表中(不包括子文件夹中的文件,),以备后续操作。args命令我还没完全搞清楚。实验了下,使用 :args */* 的话,是将当前目录下 所有在子文件夹中的目录和子文件夹中的文件(不包括下一级文件)加入参数列表中。了解了这点,你也可以只替换需要的类型,如 :args *.html。举一反三,反不出来的,再去Google。
第二行,使用 argdo 命令,对参数列表中的文件进行替换操作。s 就是替换命令了,加上 % 指对所有行,即全文匹配。g 指对每一行中所有匹配的地方都执行替换,e 指使用正则模式,为了区分大小写。最后的 c 指每次替换前,都要确认一下。
上面的命令是直接操作文件,即存盘了的。操作失误?那就只能狂按 u 了,如果没有备份的话。
分屏
分屏启动Vim
vim -On file1 file2 …——使用大写的O参数来垂直分屏。
vim -on file1 file2 …——使用小写的o参数来水平分屏。
注释: n是数字,表示分成几个屏。
关闭分屏
Ctrl+W c ——关闭当前窗口。
Ctrl+W q ——关闭当前窗口,如果只剩最后一个了,则退出Vim。
分屏
Ctrl+W s ——上下分割当前打开的文件。
:sp filename ——上下分割,并打开一个新的文件。
Ctrl+W v ——左右分割当前打开的文件。
:vsp filename ——左右分割,并打开一个新的文件。
移动光标
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W
Ctrl+W+l ——把光标移到右边的屏。
Ctrl+W+h ——把光标移到左边的屏中。
Ctrl+W+k ——把光标移到上边的屏中。
Ctrl+W+j ——把光标移到下边的屏中。
Ctrl+W+w ——把光标移到下一个的屏中。
屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。
Ctrl+W = 让所有的屏都有一样的高度。
Ctrl+W + 增加高度。
Ctrl+W - 减少高度。
多标签切换
使用
命令
Vim默认最多只能打开10个标签页。你可以用
列示标签页
命令
关闭标签页
命令
切换标签页
命令
如果你打开了很多标签页,那么可以使用
移动标签页
如果你希望按照指定的次序排列标签页,那么你可以使用
配置标签页
默认情况下,只有用户新建了标签页才会在窗口上方显示标签栏,这是由选项
多标签页命令
使用
图形界面
如果你使用的是带有图形界面的gVim,那么新建、关闭和打开标签页的操作,都可以通过在标签页上右击鼠标完成。只需要点击相应标签,就可以在不同的标签页间切换。
通过
命令小结
首先介绍一下 vi/vim是 unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都有 vi 有各种变种, 在不同的机器上常用不同的变种软件 其中 vim 比较好用也用得比较广泛 vim 是 Vi IMproved 的缩写, 表示更好的 vi 本文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件很大帮助,尤其是做开发的人员,能快速的提高开发效率。
另附一张图,上面又一些非常常用的命令
![](http://pic002.cnblogs.com/images/2011/290327/2011100617584324.jpg)
说明:
以下的例子中 xxx 表示在命令模式下输入 xxx 并回车
以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车
小括号中的命令表示相关命令
在编辑模式或可视模式下输入的命令会另外注明
插入/保存
i →在光标前插入
a → 在光标后插入
o → 在当前行后插入一个新行
O → 在当前行前插入一个新行
w → 存盘
x →表示仅在需要时保存
wq→保存并退出
ZZ→不需要输入冒号并回车
saveas <path/to/file> → 另存为 <path/to/file>
e <path/to/file> → 打开一个文件
bn 和 bp → 你可以同时打开很多文件,使用这两个命令来切换下一个或上一个文件
qa! → 强行退出所有的正在编辑的文件,就算别的文件有更改。
查找
/xxx(?xxx) 表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示向上查找其中xxx可以是正规表达式,关于正规式就不多说了
一般来说是区分大小写的, 要想不区分大小写, 那得先输入
:set ignorecase
查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找
*(#) 当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)
一个单词 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找
g*(g#) 此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而是匹配包含该单词的所有字符串
gd 本命令查找与光标所在单词相匹配的单词, 并将光标停留在文档的非注释段中第一次出现这个单词的地方
% 本命令查找与光标所在处相匹配的反括号, 包括 () [] { }
f(F)x 本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符
找到后:
输入 ; 表示继续往下找
输入 , 表示反方向查找
快速移动光标
在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定
位和编辑 因此能更快一点移动光标是很有用的
w(e) 移动光标到下一个单词
b 移动光标到上一个单词
0 移动光标到本行最开头
^ 移动光标到本行最开头的字符处
$ 移动光标到本行结尾处
H 移动光标到屏幕的首行
M 移动光标到屏幕的中间一行
L 移动光标到屏幕的尾行
gg 移动光标到文档首行
G 移动光标到文档尾行
c-f (即 ctrl 键与 f 键一同按下) 本命令即 page down
c-b (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up
'' 此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 再输入此命令则回到上次停留的位置
' 此命令相当好使, 它移动光标到上一次的修改行
` 此命令相当强大, 它移动光标到上一次的修改点
拷贝, 删除与粘贴
在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴 其中拷贝与删除是与光标移动命令
结合的, 看几个例子就能够明白了
x 删当前光标所在的一个字符。
yw 表示拷贝从当前光标到光标所在单词结尾的内容
dw 表示删除从当前光标到光标所在单词结尾的内容
y0 表示拷贝从当前光标到光标所在行首的内容
d0 表示删除从当前光标到光标所在行首的内容
y$ 表示拷贝从当前光标到光标所在行尾的内容
d$ 表示删除从当前光标到光标所在行尾的内容
yfa 表示拷贝从当前光标到光标后面的第一个a字符之间的内容
dfa 表示删除从当前光标到光标后面的第一个a字符之间的内容
特殊地:
yy 表示拷贝光标所在行
dd 表示删除光标所在行
D 表示删除从当前光标到光标所在行尾的内容
关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询
数字与命令
在 vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行
号定位 如:
5fx 表示查找光标后第5个x字符
5w(e) 移动光标到下五个单词
5yy 表示拷贝光标以下 5 行
5dd 表示删除光标以下 5 行
y2fa 表示拷贝从当前光标到光标后面的第二个a字符之间的内容
:12,24y 表示拷贝第12行到第24行之间的内容
:12,y 表示拷贝第12行到光标所在行之间的内容
:,24y 表示拷贝光标所在行到第24行之间的内容 删除类似
快速输入字符
在 vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符
使用 linux/unix 的同学一定有一个经验, 在命令行下输入命令时敲入头几个字符再按
TAB 系统就会自动将剩下的字符补齐, 假如有多个匹配则会打印出来 这就是著名的命令
补齐(其实windows中也有文件名补齐功能) vi 中有许多的字符串补齐命令, 非常方便
c-p(c-n) 在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜
索开头与其匹配的单词并补齐, 不断输入此命令则循环查找 此命令
会在所有在这个 vim 程序中打开的文件中进行匹配
c-x-l 在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的
文档中进行匹配
c-x-f 在编辑模式中, 这个命令表示补齐文件名 如输入:
/usr/local/tom 后再输入此命令则它会自动匹配出:
/usr/local/tomcat/
abbr 即缩写 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个
字符串 比如编写java文件的常常输入 Systemoutprintln, 这很
是麻烦, 所以应该用缩写来减少敲字 可以这么做:
:abbr sprt Systemoutprintln
以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System
outprintln
替换
替换是 vi 的强项, 因为可以用正规表达式来匹配字符串以下提供几个例子
:s/aa/bb/g 将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb
:s/\<aa\>/bb/g 将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词
:%s/aa/bb/g 将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb
:12,23s/^/#/ 将从12行到23行的行首加入 # 字符
:%s= *$== 将所有行尾多余的空格删除
:g/^\s*$/d 将所有不包含字符(空格也不包含)的空行删除
多文件查找替换
查找命令
vimgrep
vimgrep是vim自带的一个工具,类似于grep的用法就可以实现。语法如下:
:vimgrep /{pattern}/[g][j] {file} ...
简单来讲,就是在路径和文件命符合{file}的所有文件中,查找符合{pattern}的字符串.(查找的结果可以用:copen命令打开quickfix列表查看).
没有参数g的话,则行只查找一次关键字.反之会查找所有的关键字.
没有参数j的话,查找后,VIM会跳转至第一个关键字所在的文件.反之,只更新结果列表(quickfix).
比如要在当前目录查找word,使用如下:
:vimgrep word *
如果想要递归查找所有下级目录里面,那么就用: :vimgrep word **
再举一些其他的例子
:vimgrep /the menu/ *.php
表示在当前目录下的扩展名为php的所有文件中,查找字符串"the menu".
:vimgrep /the menu/ ./includes/*.*
表示在当前目录中的"includes"目录里的所有文件中,查找字符串"the menu".
:vimgrep /the menu/ **/*.*
在当前目录及其子目录
里的所有文件中,查找字符串"the menu".
查找的结果可以用":copen"命令查看,在列表里,将光标移动至相应的位置,按回车就打开对应的文件了.
注:
:copen 打开quickfix
:cclose 关闭quickfix
:cc 转到当前查找到的位置
:cn 转到下一个位置
:cp 转到前一个位置
另外,如果想要在使用是快捷查找当前光标下的字母,则只需要在vimrc中添加如下代码:
"对搜索的设置
map ft :call Search_Word()<CR>:copen<CR>
function Search_Word()
let w = expand("<cword>") " 在当前光标位置抓词
execute "vimgrep " w " *"endfunction
替换:
args
举例说明一下
如果你想将当前目录下所有类型的文件中的 oldword 替换为 newword,那么只需要打开当前目录下的某个文件,输入如下两条命令并回车:
:args *.*:argdo %s/oldword/newword/egc | update
接下来的工作就是确认Vim查找到的那个关键词是否要被替换。是则按下 y ,否则按下 n。
解释下所用到的命令:
第一行,我们使用 args 命令,将当前目录下所有类型的文件都加入到参数列表中(不包括子文件夹中的文件,),以备后续操作。args命令我还没完全搞清楚。实验了下,使用 :args */* 的话,是将当前目录下 所有在子文件夹中的目录和子文件夹中的文件(不包括下一级文件)加入参数列表中。了解了这点,你也可以只替换需要的类型,如 :args *.html。举一反三,反不出来的,再去Google。
第二行,使用 argdo 命令,对参数列表中的文件进行替换操作。s 就是替换命令了,加上 % 指对所有行,即全文匹配。g 指对每一行中所有匹配的地方都执行替换,e 指使用正则模式,为了区分大小写。最后的 c 指每次替换前,都要确认一下。
上面的命令是直接操作文件,即存盘了的。操作失误?那就只能狂按 u 了,如果没有备份的话。
分屏
分屏启动Vim
vim -On file1 file2 …——使用大写的O参数来垂直分屏。
vim -on file1 file2 …——使用小写的o参数来水平分屏。
注释: n是数字,表示分成几个屏。
关闭分屏
Ctrl+W c ——关闭当前窗口。
Ctrl+W q ——关闭当前窗口,如果只剩最后一个了,则退出Vim。
分屏
Ctrl+W s ——上下分割当前打开的文件。
:sp filename ——上下分割,并打开一个新的文件。
Ctrl+W v ——左右分割当前打开的文件。
:vsp filename ——左右分割,并打开一个新的文件。
移动光标
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W
Ctrl+W+l ——把光标移到右边的屏。
Ctrl+W+h ——把光标移到左边的屏中。
Ctrl+W+k ——把光标移到上边的屏中。
Ctrl+W+j ——把光标移到下边的屏中。
Ctrl+W+w ——把光标移到下一个的屏中。
屏幕尺寸
下面是改变尺寸的一些操作,主要是高度,对于宽度你可以使用Ctrl+W <或是>,但这可能需要最新的版本才支持。
Ctrl+W = 让所有的屏都有一样的高度。
Ctrl+W + 增加高度。
Ctrl+W - 减少高度。
多标签切换
使用
:tabe命令和文件名参数,可以在新标签页中打开指定的文件。也可以使用
:tabnew命令,在新标签页中编辑新的文件。命令
:tab split将在新标签页中,打开当前缓冲区中的文件。
命令
:tabf允许你在当前目录搜索文件,并在新标签页中打开。比如我想打开当前目录下的img.txt文件,那么就可以使用
:tabf img.*命令。请注意,此命令只能打开一个文件,如果搜索出多个匹配文件,将提示你“文件名过多”,这时你需要给出更精确的搜索条件以打开文件。
Vim默认最多只能打开10个标签页。你可以用
set tabpagemax=15改变这个限制。
列示标签页
命令
:tabs可以显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。
关闭标签页
命令
:tabc可以关闭当前标签页。而命令
:tabo将关闭所有的标签页。
切换标签页
命令
:tabn或
gt可以移动到下一个标签页。而命令
:tabp或
gT将移动到上一个标签页。如果已经到达最后面或最前面的标签页,将会自动转向循环。
如果你打开了很多标签页,那么可以使用
:tabfirst或
:tabr命令,移动到第一个标签页。使用
:tablast命令,移动到最后一个标签页。
移动标签页
如果你希望按照指定的次序排列标签页,那么你可以使用
:tabm命令。请注意,标签页次序是从0开始计数的。比如命令
:tabm 1将把当前标签页移动到第2的位置。如果你没有为
:tabm命令指定参数,那么当前标签页将会被移动到最后。
配置标签页
默认情况下,只有用户新建了标签页才会在窗口上方显示标签栏,这是由选项
set showtabline=1决定的。如果我们希望总是显示标签栏,那么可以用
set showtabline=2命令来设置。如果我们希望完全不显示标签栏,那么可以使用
set showtabline=0来设置。
多标签页命令
使用
:tabdo命令,我们可以同时在多个标签页中执行命令。比如我们打开了多个标签页,需要把这些文件中的“food”都替换成“drink”,那么就可以使用
:tabdo %s/food/drink/g命令,一次完成对所有文件的替换操作,而不用针对每个文件重复操作。
图形界面
如果你使用的是带有图形界面的gVim,那么新建、关闭和打开标签页的操作,都可以通过在标签页上右击鼠标完成。只需要点击相应标签,就可以在不同的标签页间切换。
通过
:help tab-page-intro命令,可以获得关于标签页使用的更多信息。
:tabnew | 新建标签页 |
:tabs | 显示已打开标签页的列表 |
:tabc | 关闭当前标签页 |
:tabn | 移动到下一个标签页 |
:tabp | 移动到上一个标签页 |
:tabfirst | 移动到第一个标签页 |
:tablast | 移动到最后一个标签页 |