vim用多个标签页打开多个文件
1、打 开 新 标 签 页
启动 Vim 时用 "vim -p filename ..."
:tabe[dit] *:tabe* *:tabedit* *:tabnew*
:tabnew 在当前标签页之后打开带空窗口的新标签页。
:tabe[dit] [++opt] [+cmd] {file}
:tabnew [++opt] [+cmd] {file}
打开新标签页并编辑 {file}
,其余和 |:edit| 类同。
:tabf[ind] [++opt] [+cmd] {file}
*:tabf* *:tabfind*
打开新标签页并编辑 'path' 里的 {file}
,其余和 |:find| 类同。
{仅当编译时加入 |+file_in_path| 特性才有效}
:[count]
tab {cmd}
*:tab*
执行 {cmd}
,如果它打开新窗口,使用新标签页代替。不能用于
|:diffsplit|、|:diffpatch|、|:execute| 和 |:normal|。
如果省略 [count]
,标签页出现在当前标签页之后。如果指定
[count]
,新标签页出现在第 [count]
个标签页之后。":0tab cmd" 使
新标签页出现在第一个位置。例如:
:tab split " 在新标签页上打开当前缓冲区
:tab help gt " 打开标签页显示 "gt" 的帮助
2、
关 闭 标 签 页
*:tabc* *:tabclose*
:tabc[lose][!] 关闭当前标签页。
如下情形使该命令失败:
- 屏幕上只有一个标签页。 *E784*
- 如果 'hidden' 没有置位,没有 [!],缓冲区有修改,而且该缓冲区
没有其它窗口。
缓冲区的修改不会被写入,也不会丢失。所以这可以说是个 "安全的"
命令。
:tabc[lose][!] {count}
关闭第 {count}
个标签页。失败条件和上面的 ':tabclose' 相同。
*:tabo* *:tabonly*
:tabo[nly][!] 关闭所有其它的标签页。
如果置位 'hidden' 选项,所有关闭窗口的缓冲区成为隐藏。
如果没有置位 'hidden' 但置位 'autowrite' 选项,写回修改过的缓
冲区。否则,包含修改过的缓冲区的窗口不会被删除。但如果给出
[!],这些窗口成为隐藏。修改过的缓冲区永远不会被放弃,所以永远
不被丢失这些改动。
3、切 换 到 另 一 个 标 签 页
:tabn[ext] *:tabn* *:tabnext* *gt*
<C-PageDown>
*CTRL-<PageDown>* *<C-PageDown>*
gt *i_CTRL-<PageDown>* *i_<C-PageDown>*
转到下一个标签页。最后一个标签页则回绕到第一个。
:tabn[ext] {count}
{count}
<C-PageDown>
{count}
gt 转到第 {count}
个标签页。首个标签页编号为 1。
:tabp[revious] *:tabp* *:tabprevious* *gT* *:tabN*
:tabN[ext] *:tabNext* *CTRL-<PageUp>*
<C-PageUp>
*<C-PageUp>* *i_CTRL-<PageUp>* *i_<C-PageUp>*
gT 转到前一个标签页。首个标签页则回绕到最后一个。
:tabp[revious] {count}
:tabN[ext] {count}
{count}
<C-PageUp>
{count}
gT 转到前面 {count}
个标签页。首个标签页则回绕到最后一个。
:tabr[ewind] *:tabfir* *:tabfirst* *:tabr* *:tabrewind*
:tabfir[st] 转到第一个标签页。
*:tabl* *:tablast*
:tabl[ast] 转到最后一个标签页。
4、其它命令:
*:tabs*
:tabs 列出标签页和它们包含的窗口。
当前窗口显示 ">"。
修改过的缓冲区显示 "+"。
5、重 新 排 列 标 签 页:
:tabm[ove] [N] *:tabm* *:tabmove*
把当前标签页移到第 N 个标签页之后。用 0 使当前标签页成为首个标
签页。如果没有 N,当前标签页成为最后一个。
6、循 环 遍 历 所 有 标 签 页:
*:tabd* *:tabdo*
:tabd[o] {cmd}
对每个标签页执行 {cmd}
。
大致相当于:
:tabfirst
:{cmd}
:tabnext
:{cmd}
等等
只对每个标签页的当前窗口进行操作。如果某个标签页出现错误,不再
继续访问其余的标签页。
最后一个标签页 (或任何出错的标签页) 成为当前标签页。
{cmd}
可以包含 '|' 以连接多个命令。
{cmd}
不能打开标签页、关闭标签页或重排标签页。
{Vi 无此功能}
{仅当编译时加入 |+listcmds| 特性才有效}
另见 |:windo|、|:argdo| 和 |:bufdo|。
欢迎访问:wenhao.ink