发布:tabnew somefile
会在新标签页中打开somefile
到当前标签的右侧。我可以以某种方式让Vim打开当前标签 left 的标签吗?
更新:建议的答案允许我打开一个新标签,但它们会中断文件名自动完成,这是不行的。
答案 0 :(得分:9)
要利用@romainl描述的行为而不必诉诸于了解当前标签页编号,请使用以下命令:
command -nargs=* -bar Tabnew :execute (tabpagenr()-1).'tabnew '.<q-args>
。注意:完全保存使用0tabnew
:即使没有标签页面的编号低于1,这样做也可以使新标签成为第一个标签页。
如果您确定从未对++opt
或+cmd
使用此命令,则可以在-complete=file
之后使用-bar
。注意:除了它的名称之外,不是一个完成选项,因为它也是文件名扩展(并且在-nargs=1
的情况下显示错误,并且在太多文件名中扩展了globs)。不幸的是,文档中甚至没有提到这种行为。
答案 1 :(得分:6)
自Vim 7.4.530 (2014)起,您可以在[count]
中使用:[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
,:tabonly
,:tabmove
也可以使用类似的功能,请参阅上面链接的提交。如果这不起作用,请使用:version
检查您的Vim是否是最新的和/或使用:help tabnew
检查文档是否与此处引用的文档类似。
答案 2 :(得分:3)
您可以使用[count]
。假设您位于选项卡#4,:3tabnew
在当前选项卡的左侧创建一个新选项卡。
请注意,标签总是创建在当前标签或标签#[count]
的右侧。 :3tabnew
实际上意味着“在标签#3后创建一个新标签。”
答案 3 :(得分:1)
您可以编写自己的命令来执行此操作
:command -nargs=1 TabnewBefore exec "tabnew <args>" | exec "tabmove -1"
然后使用它
:TabnewBefore somefile
如果您希望它成为默认的'tabnew'bahaviour,您可以
:ca tabne TabnewBefore
现在,如果您键入tabne
并按命令行上的空格,它会执行您想要的操作,如果您希望原始行为类型为完整命令tabnew
您可以将这些定义放入.vimrc文件中以供将来使用