弄了一个晚上,看了不少英文资料,终于让我学会了,哈哈。总结如下:
自己总结的pages
自从Vim发布7.0之后, 就开始支持标签或者叫标签页. 不像其它程序中的普通标签, Vim的标签页就像是将你打开的文件分组的一种方法. 每个
标签能够保存几个打开的缓冲, 并且也能同时处理几个窗口.
标签的特别之处是会在所有缓冲/窗口中执行的命令(就像:bufdo, :windo, :all, :ball), 都可认限制成只能在当前的标签页中的所有窗口和
缓冲中执行.
更多帮助可以查看:help tabpage
--------------
命令:
当启动Vim时使用命令“vim -p file1 file2 ...”将会为每一个文件打开一个单独的tab page(上限数目为tabpagemax)。
:tabe[dit]
“tabnew”在当前tab page的后面打开一个新的空窗口的tab page.
“tabnew [++opt] [+cmd] {file}”打开一个新的tab page并且编辑{file}.
“[count]tab {cmd}”:当打开新标签页替代打开新窗口的时候,执行命令{cmd}。
如果[count]被忽略,则tab page在当前的标签的后面出现。当[count]指定的时候,新的tabpage在后面第[count]个page上面出现。使
用":0tab cmd"将会得到一个新的标签在第一个位置。举例:
":tab split" 使用一个新的标签页打开当前的缓存
":tab help gt" 打开一个tab page 同时执行了":help gt"命令
“CTRL-W gf”打开一个新的标签页,并且编辑在cursor下面的文件。
“CTRL-W gF”打开一个新的标签页,并且编辑在cursor下面的文件,跳到文件名的下面行号??
关闭tab page
当关闭最后一个窗口的时候也会关闭这个标签页。
“:tabc[lose][!]”关闭当前的tab page.
“:tabc[lose][!]{count}”
关闭{count}的tab page.
“tabo[nly][!]”关闭所有其他的tab pages 除了自身。
切换到另外一个tab page:
“tabn[ext]”
<C-PageDown>
gt
去下一个tab page 循环.
“:tabn[ext] {count}”
{count}<C-PageDown>
{count}gt 去第{count}个page,第一个是1
“tabp[revious]”
“tabN[ext]”
<C-PageUp>
gT
去前一个tab page.循环。
“tabp[revious] {count}”
“tabN[ext] {count}”
{count} <C-PageUp>
{count}gT
后退{count} page循环的。
:tabr[ewind]
":tabfir[st]"去第一个tab page
":tabl[ast]"去最后一个tab page
":tabs"列出tab pages和它们包含的windows.">"是当前的window,"+"是被修改的缓存。
“tabm[ove] [N]”把当前的page移动到会面的tab page N。使用0表示移动当前的tab page到第一个,不使用N表示当前tab page为最后一个。
“:tabd[o] {cmd}”在每一个page 中执行命令{cmd}.
注意的是:它执行每个page的当前窗口。如果有一个窗口出现了错误,那么就中断后面的访问。
-------------page常用命令
实际上一个标签中用“yy”在另一个page中也可以p上去的。前面说得有点乱,这里就直接给出命令得了:
*启动的时候为每一个文件打开新的page:
输入“vi -p file1 file2”
注意:这里file1,file2是文件。
*打新page:
输入“tabnew”。
在当前tab page的后面打开一个新的空窗口的tab page.
*打新page并且编辑file:
输入"tabnew file"
*打开新page并执行命令:
输入"[count] tab {cmd}".
这里,新的tabpage在后面第[count]个page上面出现,":0tab {cmd}"将会在第一个位置得到一个新的标签.
":tab split" 使用一个新的标签页打开当前的缓存,即把split的分割窗口放到两个pages里面了。
":tab help gt" 打开一个tab page 同时执行了":help gt"命令.
*打开新page,并编辑在cursor下的文件:
输入“CTRL-W gf”。
**关闭tab page
当关闭最后一个窗口的时候也会关闭这个标签页命令如下。
*关闭当前page:
输入“:tabclose!”。
这里加'!'是强制关闭不管保存了,tabclose可以简化为tabc。
*关闭编号为{count}的page:
输入“:tabclose count”。
或输入“:tabclose! count”。
这里加'!'是强制关闭不管保存了,tabclose可以简化为tabc。
*关闭除了自身的其他pages:
输入“tabonly”。
或输入“tabonly!”。
这里加'!'是强制关闭不管保存了,tabonly可以简化为tabo。
**切换到另外page:
*切换到下一个page:
输入“gt”。
或输入“:tabnext”。
或输入“[Ctrl]PageDown”。
这里,tabnext可以简化为tabn,都是循环切换的最后一个之后就是第1个(第3个方法好像不管用?)。
*切换到第{count}号page:
输入“{count}gt”。
或输入“:tabnext {count}”。
或输入“{count}[Ctrl]PageDown”。
这里,tabnext可以简化为tabn,第一个page是1,都是循环切换的(第3个方法好像不管用?)。
*切换到上一个page:
输入“gT”。
或输入“:tabprevious”。
或输入“:tabN[ext]”。
或输入“[Ctrl]PageUp”。
这里,tabprevious可简化为tabp,tabNext可简化为tabN,没有tabP,切换循环,第1个之后就是最后一个(第4个方法好像不管用?).
*切换到前{count}个page:
输入“{count}gT”。
或输入“:tabprevious{count}”。
或输入“:tabNext{count}”。
或输入“{count}[Ctrl]PageUp”。
也就是后退{count} page,也是循环的,tabprevious可简化为tabp,tabNext可简化为tabN(第4个方法好像不管用?)。
*去第一个page:
输入“:tabfirst”。
这里tabfirst可简化为tabfir。
*去最后一个page:
输入":tablast"。
这里tablast可简化为tabl。
*列出所有pages它们包含的windows:
输入":tabs"。
这里结果中">"是当前的window,"+"是被修改的缓存。
*移动当前page到第N个后面:
输入“tabmove[N]”。
这里,tabmove可以简化为tabm使用0表示移动当前page成为第1个,不使用N表示当前page成为最后一个。
*在每一个page 中执行命令{cmd}
输入“:tabd[o] {cmd}”。
注意的是:它只执行每个page的当前窗口,如果有一个窗口出现了错误,那么就中断后面的访问。
这里,tabdo可以简化为tabd。
-------杂项
help tabline可以查看标签页的相关帮助。
帮助部分内容如下:
"tabline","tal"
当它是非空的时候,这个选项决定了vim窗口顶部tab页的内容。如果它是空的,那么将要使用一个默认的tab页行。可以查看链接“|setting-
tabline|”获得更多关于设置此选项的信息。
tab 页使用“showtabline”来指定是否显现,并且需要没有GUI的tab行。
你可以利用“tabpagenr()”,"tabpagewinnr()","tabpagebuflist()"来得到将要显示的文本。使用“%1T”是第一个标签,使用"%2T"是第2个
标签,使用"%X"来关闭labels.
需要注意的是,只有一个tab页,是当前的。其他的是不可见的,你无法跳到他们的窗口们中去。
"tabpagemax" "tpm"
数目(默认10),属性全局的
不在Vi中,如果编译的时候没有+windows特性也不会有。
指定了tag pages的最大数目。通过 “-p”命令选项打开,或者通过":tab all"命令。
设置“tabline”
“tabline”选项指定了tab pages labels的外观。当你想要tab page labels 行显示的时候,你可以使用“showtabline”选项。
有“+”的tab pages说明它含有一个被修改过的window。
“showtabline” "stal":
数目(默认1)
全局。
不在Vi中,如果编译的时候没有+windows特性也不会有。
这个选项指定了什么时候tab page labels行将要被显示。
0:从不。
1:仅当至少有两个tab pages的时候才显示。
2:总显示。
------