发行:tabnew somefile
将在当前选项卡右侧somefile
的新选项卡中打开。我能以某种方式让 Vim 打开当前选项卡左侧的选项卡吗?
更新:建议的答案确实允许我在左侧打开一个新选项卡,但它们会破坏文件名自动完成,这是不行的。
发行:tabnew somefile
将在当前选项卡右侧somefile
的新选项卡中打开。我能以某种方式让 Vim 打开当前选项卡左侧的选项卡吗?
更新:建议的答案确实允许我在左侧打开一个新选项卡,但它们会破坏文件名自动完成,这是不行的。
从Vim 7.4.530 (2014) 开始,您可以使用负值[count]
in:[count]tabnew
打开选项卡。要直接在当前选项卡左侧打开选项卡,请使用:
:-1tabnew
文档:https ://vimhelp.appspot.com/tabpage.txt.html#:tabnew
:[count]tabe[dit] :tabe :tabedit :tabnew
:[count]tabnew
Open a new tab page with an empty window, after the current
tab page. If [count] is given the new tab page appears after
the tab page [count] otherwise the new tab page will appear
after the current one.
:tabnew " opens tabpage after the current one
:.tabnew " as above
:+tabnew " opens tabpage after the next tab page
" note: it is one further than :tabnew
:-tabnew " opens tabpage before the current one
:0tabnew " opens tabpage before the first one
:$tabnew " opens tabpage after the last one
, ,也可以使用类似的功能:tabclose
,请参阅上面链接的提交。如果这不起作用,请用于检查您的 Vim 是否是最新的和/或用于检查文档是否与此处引用的文档相似。:tabonly
:tabmove
:version
:help tabnew
要利用@romainl 描述的行为而不必求助于知道当前标签页号,请使用以下命令:
command -nargs=* -bar Tabnew :execute (tabpagenr()-1).'tabnew '.<q-args>
. 注意:它完全可以保存使用0tabnew
:即使没有数字低于 1 的标签页,它也能达到预期目的并使新标签页成为第一个标签页。
如果你确定你永远不会使用这个命令,++opt
或者+cmd
你可以-complete=file
在-bar
. 注意:除了它的名称之外,它不是一个完成选项,因为它也可以进行文件名扩展(并显示错误以防万一-nargs=1
和 glob 以太多文件名扩展)。不幸的是,文档中甚至没有提到这种行为。
您可以使用[count]
. 假设您在标签 #4,:3tabnew
在当前标签的左侧创建一个新标签。
但请记住,选项卡始终创建在当前选项卡或选项卡 # 的右侧[count]
。实际上意味着“在标签 #3之后:3tabnew
创建一个新标签”。
您可以编写自己的命令来执行此操作
:command -nargs=1 TabnewBefore exec "tabnew <args>" | exec "tabmove -1"
然后使用它
:TabnewBefore somefile
如果您希望它成为默认的“tabnew”行为,您可以这样做
:ca tabne TabnewBefore
现在,如果您tabne
在命令行上键入并按空格,它会执行您想要的操作,如果您想要原始行为,请键入完整的命令tabnew
您可以将这些定义放入您的 .vimrc 文件中以供将来使用