星期三, 四月 08, 2009

VIM学习笔记 多标签页(Tabs)

Vim 7.0开始引入了多标签页(Tabs)概念,用于同时编辑多个文件,每一个标签页也可以包含多个缓冲区或窗口。标签页的特殊之处在于,通常作用于所有打开的缓冲区和窗口的命令(比如 :bufdo, :windo, :all, and :ball等),将只影响当前标签页中的缓冲区和窗口。

Tabs_new

新建标签页

使用:tabedit命令和文件名参数,可以在新标签页中打开指定的文件。也可以使用:tabnew命令,在新标签页中编辑新的文件。在输入以上命令及空格键之后,点击Tab键,将显示当前目录下的文件列表以方便你输入文件名称。

tabnew

命令:tab split将保留当前标签页,并在新标签页中打开当前缓冲区中的文件。如果你使用:sp filename.txt命令,在当前标签页中创建了一个新窗口;那么点击Ctrl-WT快捷键,将在当前标签页中关闭该文件,并在新建标签页中打开该文件。

如果你打开了多个缓冲区,那么使用命令:tab ball将为每一个打开的缓冲区,分别新建单独的标签页。

命令:tabfind允许你搜索并在新标签页中打开文件。比如我想打开当前目录下的img.txt文件,那么就可以使用:tabfind img.*命令。请注意,此命令只能打开一个文件,如果搜索出多个匹配文件,将提示“E77: 文件名过多”,这时你需要给出更精确的搜索条件以打开文件。此命令搜索文件的范围,是由path选项指定的。例如以下命令将指定搜索包含当前文件的目录(.),当前目录(两个逗号之间的空格), 以及当前目录下的所有子目录(**):

:set path=.,,**

Tab的标签默认显示当前缓冲区的文件名。如果在同一标签页中打开了多个缓冲区,那么标签也会显示打开缓冲区的总共数目。"+" 表示已经修改过的页面。而"2+" 则表示有3个窗口,其中一个已经更改。

Tabs_Label

Vim默认最多只能打开10个标签页。你可以用set tabpagemax=15改变这个限制。

列示标签页

命令:tabs可以显示已打开标签页的列表,并用“>”标识出当前页面,用“+”标识出已更改的页面。

Tabs_list

关闭标签页

命令:tabclose可以关闭当前标签页。而命令:tabonly将仅保留当前标签页,而关闭其它所有的标签页。

如果你使用Ctrl-Wc快捷键,关闭了当前标签页中的最后一个窗口,那么当前标签页也会随之关闭。

切换标签页

使用以下任一命令,可以移动到下一个标签页:

  • :tabn
  • gt
  • Ctrl-PgDn

使用以下任一命令,可以移动到上一个标签页:

  • :tabp
  • gT
  • Ctrl-PgUp

如果已经到达最后面或最前面的标签页,将会自动转向循环。

Tabs_gt_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,那么新建、关闭和打开标签页的操作,都可以通过在标签页上右击鼠标完成。只需要点击相应标签,就可以在不同的标签页间切换。

Tabs_PopupMenu

通过:help tab-page-intro命令,可以获得关于标签页使用的更多信息。我们甚至可以使用:tab help tabpage命令,在新的标签页查看帮助信息。

命令小结
:tabnew新建标签页
:tabfind查找并在新标签页中打开文件
:tabs显示已打开标签页的列表
:tabclose关闭当前标签页
:tabonly仅保留当前标签页打开
:tabn移动到下一个标签页
:tabp切换到上一个标签页
:tabfirst切换到第一个标签页
:tablast移动到最后一个标签页
:tabm将当前标签页放置到指定位置

Ver: 1.0<上一篇 | 目录 下一篇>

2 条评论: