是否可以使用单独的缓冲区在VIM中创建2个选项卡?
我主要在网站上工作,有时我需要为后端显示3或4个缓冲区,同时为前端显示3或4个缓冲区。这里有选项卡,但缓冲区是混合的。我知道我有点挑剔,但有没有办法从标签中创建缓冲区“集合”?它可以通过制表符限制打开的缓冲区的数量,并且更容易从一个缓冲区切换到另一个缓冲区。是的,您可以有窗口本地参数列表:是否可以使用单独的缓冲区在VIM中创建2个选项卡?,vim,tabs,buffer,Vim,Tabs,Buffer,我主要在网站上工作,有时我需要为后端显示3或4个缓冲区,同时为前端显示3或4个缓冲区。这里有选项卡,但缓冲区是混合的。我知道我有点挑剔,但有没有办法从标签中创建缓冲区“集合”?它可以通过制表符限制打开的缓冲区的数量,并且更容易从一个缓冲区切换到另一个缓冲区。是的,您可以有窗口本地参数列表: $ vim :arglocal foo bar baz :tabnew :arglocal arthur robert charles 现在,第一个选项卡页面中的:args应输出: [foo] bar ba
$ vim
:arglocal foo bar baz
:tabnew
:arglocal arthur robert charles
现在,第一个选项卡页面中的:args
应输出:
[foo] bar baz
在第二个选项卡页面中:
[arthur] robert charles
这种方法的一个潜在问题是,您在某种程度上受限于参数特定的命令:
:n[ext]
:prev[ious] (or :N[ext])
:fir[st] (or :rew[ind])
:la[st]
:argl[ocal]
:tabn[ext] (or gt)
:tabp[revious] (or :tabN[ext]) (or gT)
:tabfir[st] (or :tabr[ewind])
:tabl[ast]
和特定于选项卡的命令:
:n[ext]
:prev[ious] (or :N[ext])
:fir[st] (or :rew[ind])
:la[st]
:argl[ocal]
:tabn[ext] (or gt)
:tabp[revious] (or :tabN[ext]) (or gT)
:tabfir[st] (or :tabr[ewind])
:tabl[ast]
如果只使用全局参数列表(:b
,即:bn/:bp
的循环性质),则这些命令不如更通用的命令灵活
也就是说,您仍然可以在vim.org上查找插件。我大量使用选项卡来处理不同的目录(有时4个以上的选项卡) 结合像
CtrlP
这样的插件和:lcd
命令,您可以有效地拥有多个工作区(每个工作区都有不同的目录),并且只需最少的心理维护
:lcd
命令仅更改当前窗口的目录,因此我使用它的方式如下
打开一个新选项卡:tabnew
:lcd~/where/else
ctrl+p
(默认绑定为CtrlP
以打开当前目录中的文件)并找到要编辑的文件:tn
和:tp
在选项卡之间切换(显然,由于我进行了大量切换,所以我为这些选项卡设置了键绑定)因此,基本上每个选项卡都有自己的工作目录,您可以使用
ctrl+p
在文件/缓冲区之间切换。就我个人而言,我觉得缓冲区+拆分(使用一些插件,例如ctrlp或fusyfinder)比选项卡更舒适。。。我很少在选项卡中打开文件。也许我没有学会tab的力量……可能重复:(以及右边“相关”栏中的其他几个问题)我同意Kent不使用tab。这里有一些关于如何使用的提示(注意这是关于关闭标签,但主题是相关的)我同意你的观点,我的问题不是很清楚。我使用缓冲区和拆分窗口,但我喜欢使用选项卡来区分缓冲区,一个选项卡用于前端拆分缓冲区,另一个选项卡用于后端拆分窗口。就像这样,我不会混淆文件。你有没有想过在不同的tmux窗口中使用不同的vim实例?是的,这和我的用途相同,但是缓冲区在选项卡之间共享,如果可能的话,这就是我想要避免的。我可以问一下,为什么共享缓冲区会让你担心?如果您仅使用ctrlP
打开文件,那么您应该只能访问该“工作区”中的文件,对吗?您是否广泛使用bufdo
?(抱歉,我没有完全回答您最初的问题)我使用vim和nerdtree打开文件,使用LycosExplorer在缓冲区中导航,在相同的项目中,我可以打开许多缓冲区。当我搜索一个特定的缓冲区时,用选项卡拆分这个缓冲区列表会更舒服:我打开一个用于js文件的选项卡,一个用于php文件的选项卡,但是当我在js选项卡中搜索一个打开的缓冲区时,我看到了所有的php缓冲区,但我不想看到它们。我曾尝试使用:arglocal myfile.ext在选项卡中打开缓冲区,但缓冲区仍在选项卡之间共享。本地参数列表将传递给新窗口。使用:tabnew
创建一个新选项卡,然后使用:arglocal
填充新默认窗口的参数列表是一种方法。