Questions tagged «tabbed-user-interface»

标签页包含一个或多个窗口。有关如何使用和自定义Vim选项卡行为的问题。


1
如何在当前窗口中打开新缓冲区?
我打开了一些带有不同窗口设置的选项卡。 我想在当前窗口中打开一个新的空白缓冲区,而没有任何其他拆分/窗口或标签 有什么办法吗? 我知道我可以像:n那时C-w j那样做,:q但这似乎有些混乱。 或类似选项卡: :tabe gT :q 我对窗口和缓冲区之间的关系总体上有些困惑-您可以打开许多不可见的缓冲区,可以清理使用这些缓冲区,bd但是如果看不见,则必须将其保存,因为您无法隐藏它们(使用:q)而不保存或放弃更改……这似乎有些奇怪。

1
如何重新排列打开的标签?
比方说,我有四个打开的文件:file0.txt,file1.txt,file2.txt,和file3.txt。我按标签的顺序打开所有这些标签。所以我的标签排序是这样的: file0.txt file1.txt file2.txt file3.txt 然后,假设我想重新排序我的标签,以便file2.txt先于file1.txt: file0.txt file2.txt file1.txt file3.txt 我怎么做?是否有Vim命令将当前选项卡向左或向右移动,或以其他方式对当前打开的选项卡重新排序?


6
如何将一组缓冲区绑定到选项卡?
当我需要同时处理不同的项目时,我有以下工作流程: 我为每个项目创建一个选项卡。 在每个选项卡中,打开要编辑的文件,这将创建多个缓冲区。 可选地,如果我需要同时查看两个(或多个)文件,则可以创建拆分窗口,因此我有一个包含不同窗口的选项卡,其中显示了一个缓冲区。 我的缓冲区我真的不使用之间进行切换:ls,并:b [name or number of buffer]代替我创造了一些方便的映射,让我与缓冲区之间切换:bnext,并:bprevious 这种工作方式非常好,但让我感到困扰:缓冲区在选项卡之间共享。 如果我打开file1,并file2在tab1和file3中tab2,如果tab1我用几个时间:bnext我会看到file3在这个标签,我不想。我想要得到的工作流程如下: 启动vim(我有一个带有缓冲区的第一个选项卡): $ vim foo 将缓冲区添加到此选项卡: :e bar 打开一个新标签并切换到它: :tabnew 在此选项卡中打开一个新缓冲区: :e baz 如果我留在此缓冲区中并且:bnext还是:bprevious要留在baz缓冲区中(因为它是此选项卡中唯一的缓冲区) 如果我进入上一个选项卡:tabprevious并执行几次,则:bnext只能在foo和bar缓冲区之间切换,但看不到baz 因此,我的问题来了:是否可以将一组缓冲区绑定到一个选项卡,并使vim禁止从另一个选项卡(而不是它们要进入的那个)访问某些缓冲区? 注意:我知道使用:b [myBuffer]可以在选项卡中保留缓冲区,但是当我要编辑3或4个文件时,我觉得使用映射的速度确实比输入缓冲区名称要快(即使我可以仅键入一些字符以匹配缓冲区名称)。

4
将现有窗口移至现有选项卡
有时我需要将窗口移到一个已经存在的选项卡中,并且我想知道是否存在可以执行此操作的命令/键盘快捷方式。我知道我可以关闭窗口,切换到选项卡,然后在新的拆分中打开它,但是我想知道是否有更短的方法来完成此操作。请注意,我想将其移动到现有标签页,而不是像新标签页一样<C-w>T。



2
如何使打开新标签页成为默认选项?
当我打开vim多个文件(vim f1 f2 ...)时,如何使它们直接在选项卡中打开而不使用-p? 我希望将shell行为与vim行为区分开,删除vim基于别名的别名等。这就是为什么我不想使用别名等的原因(因此,no -p)。 我敢肯定,已经在一些SE网站(例如SO)上询问了这个网站。但是,我无权判断哪种方法是最好的方法,因此我也希望就建议的方法为什么很好的问题做个说明。 对于链接的特定SO帖子: 公认的答案是正确的tabpagemax=9999。称其为个人偏见,但我看到设置了一个很大的限制,并且我认为出了点问题(如果看到的话,我会觉得这种感觉chmod 777)。 :au VimEnter * set tabpagemax=9999|sil tab ball|set tabpagemax&vim 另一个答案导致一个额外的空选项卡被打开,同时更加简洁。 :autocmd VimEnter * argdo tabedit 我希望得到一个没有打开额外选项卡并且没有将限制设置为较大值的答案(或解释为什么这不是一件坏事)。

2
将缓冲区复制到新选项卡中,而不是将其移动
我经常想在选项卡页面中临时最大化缓冲区,然后返回到我正在查看的旧缓冲区配置。我当前执行此操作的工作流程是使用来关闭所有其他缓冲区,<c-w>o或者将我当前正在查看的缓冲区移动到其自己的选项卡<c-w>T。第二种方法的问题是它从原始选项卡页中删除了缓冲区。 我填充三个文件a.txt,b.txt以及c.txt用a,b和c分别。 % echo a > a.txt % echo b > b.txt % echo c > c.txt 当我在一个标签页中打开所有这三个文件时,将得到以下内容。 然后,我可以自己移动a.txt到选项卡。但是,当我这样做时,a.txt将从原来的标签页中删除。(因此,在a之后<c-w>Tgt) 我希望能够选择<c-w>T保留原始缓冲区内容的时间,创建一个仅包含当前焦点缓冲区的新标签页,然后将我刚刚关注的新标签页聚焦创建。换句话说,<c-w>T除了保留了原来的选项卡页面,而现在a.txt位于两个选项卡页面之外,该命令几乎完全相同。 有没有办法做到这一点?

1
缓冲区vs选项卡vs arglist vs Windows
这么多选择!太混乱了! 什么时候应该优先使用另一个? 它们之间如何相互联系? 两者之间有什么区别? 它们如何影响您键入的命令? 它们与寄存器,宏,标记,选项和命令历史记录有何关系? 例如,像在典型的GUI程序中一样,选项卡是窗口的细分,还是其他窗口在窗口中的细分? 这与通过:next和访问的多个命令行参数(arglist):prev有何关系? 最后,哪些(如果有)vi兼容?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.