Vim 7.0开始引入了多标签页(Tabs)概念,用于同时编辑多个文件,每一个标签页也可以包含多个缓冲区或窗口。标签页的特殊之处在于,通常作用于所有打开的缓冲区和窗口的命令(比如 :bufdo, :windo, :all, and :ball等),将只影响当前标签页中的缓冲区和窗口。
新建标签页
使用:tabedit
命令和文件名参数,可以在新标签页中打开指定的文件。也可以使用:tabnew
命令,在新标签页中编辑新的文件。在输入以上命令及空格键之后,点击Tab键,将显示当前目录下的文件列表以方便你输入文件名称。
命令:tab split
将保留当前标签页,并在新标签页中打开当前缓冲区中的文件。如果你使用:sp filename.txt
命令,在当前标签页中创建了一个新窗口;那么点击Ctrl-WT快捷键,将在当前标签页中关闭该文件,并在新建标签页中打开该文件。
如果你打开了多个缓冲区,那么使用命令:tab ball
将为每一个打开的缓冲区,分别新建单独的标签页。
命令:tabfind
允许你搜索并在新标签页中打开文件。比如我想打开当前目录下的img.txt文件,那么就可以使用:tabfind img.*
命令。请注意,此命令只能打开一个文件,如果搜索出多个匹配文件,将提示“E77: 文件名过多”,这时你需要给出更精确的搜索条件以打开文件。此命令搜索文件的范围,是由path选项指定的。例如以下命令将指定搜索包含当前文件的目录(.),当前目录(两个逗号之间的空格), 以及当前目录下的所有子目录(**):
:set path=.,,**
Tab的标签默认显示当前缓冲区的文件名。如果在同一标签页中打开了多个缓冲区,那么标签也会显示打开缓冲区的总共数目。"+" 表示已经修改过的页面。而"2+" 则表示有3个窗口,其中一个已经更改。
Vim默认最多只能打开10个标签页。你可以用set tabpagemax=15
改变这个限制。
列示标签页
命令:tabs
可以显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。
关闭标签页
命令:tabclose
可以关闭当前标签页。而命令:tabonly
将仅保留当前标签页,而关闭其它所有的标签页。
如果你使用Ctrl-Wc快捷键,关闭了当前标签页中的最后一个窗口,那么当前标签页也会随之关闭。
切换标签页
使用以下任一命令,可以移动到下一个标签页:
:tabn
gt
Ctrl-PgDn
使用以下任一命令,可以移动到上一个标签页:
:tabp
gT
Ctrl-PgUp
如果已经到达最后面或最前面的标签页,将会自动转向循环。
如果你打开了很多标签页,那么可以使用: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
命令,可以获得关于标签页使用的更多信息。我们甚至可以使用:tab help tabpage
命令,在新的标签页查看帮助信息。
:tabnew | 新建标签页 |
:tabfind | 查找并在新标签页中打开文件 |
:tabs | 显示已打开标签页的列表 |
:tabclose | 关闭当前标签页 |
:tabonly | 仅保留当前标签页打开 |
:tabn | 移动到下一个标签页 |
:tabp | 移动到上一个标签页 |
:tabfirst | 移动到第一个标签页 |
:tablast | 移动到最后一个标签页 |
:tabm | 将当前标签页放置到指定位置 |