如何在Vim中打开一个新文件并在新窗口中显示

92

有没有一种方法可以在新的shell窗口或标签页中打开vim? 我习惯使用$ mate file,它会在新窗口中打开文件。

我更喜欢在一个“中央shell”中发出命令,并在需要时在其他窗口或选项卡中编辑文件。 人们通常如何在本地打开vim文件?


你可以使用ranger或其他基于终端的文件管理器并打开多个标签页。在标签页内,您可以直接访问vim中打开的文件。 - nilon
6个回答

277

从vim内部使用以下之一:

在当前窗口下打开一个新窗口

:new filename.ext

在当前窗口旁边打开一个新的窗口:

:vert new filename.ext

2
@anu,你可以使用v、ctrl+v或V来标记旧文件中的文本,使用y将其复制到“剪贴板”,然后使用p或P进行粘贴... - Massa
33
“:vert new filename.txt” 可以缩写为 “:vnew filename.txt”。 - rudolfson
8
使用命令:vsp filename.txt也可以在一个新的分屏中打开它。 - Harish Ramachandran
7
当你已经打开两个窗口后,要在它们之间切换,需要按下 Control + W 两次。而要使用 ControlShift 键加 w 键(在按住 ControlShift 的同时快速连续点击 w 键两次)则可以实现此操作。 - Daniel Porteous
2
@DanielPorteous 在我的Windows 10电脑上,按两次Ctrl+w就可以了,不需要按Shift键。 - BubbleMaster
显示剩余4条评论

17

您可以在vim内部使用其自己的windowstabs进行操作。

其中一种方法是利用内置的文件浏览器; 激活它使用:Explore,或者使用:Texplore进入标签界面(我最喜欢的方式)。

:Texplore(和:Sexplore)也会在你进入浏览器后防止您在:q时意外退出当前缓冲区(编辑器)。

要在打开的选项卡之间切换,请使用gtgT(依次为下一个选项卡和前一个选项卡)。

请参见vim维基上的使用选项卡页面


12

我使用这个微妙的别名:

alias vim='gnome-terminal -- vim'

-x现在已被弃用。我们需要使用--代替。


我在我的启动脚本中使用以下代码(基于这个答案),以便在打开带有vim的gnome终端后,可以继续使用同一终端窗口。这在调用gnome时在末尾添加'&'字符并抑制输出。 "vim_run () { gnome-terminal -- vim $1 &> /dev/null &
} alias vim=vim_run"
- jgholder

4
如果您不介意使用gVim,您可以启动单个实例,这样当使用它打开新文件时,它会自动在当前运行的实例中打开一个新选项卡。
为此,您可以编写:gVim --remote-tab-silent file 您总是可以创建此命令的别名,以便不必输入太多单词。例如,我使用Linux和Bash,在我的~/.bashrc文件中有: alias g='gvim --remote-tab-silent' 因此,我不用执行$ mate file,而是执行$ g file

1
问题询问如何在vim中完成此操作。请参阅上面的相关答案和相关的踩票。 - Max MacLeod

1
我正在使用以下代码,尽管它是为gnome-terminal硬编码的。它还会将vim的CWD和缓冲区更改为与当前缓冲区及其目录相同。
:silent execute '!gnome-terminal -- zsh -i -c "cd ' shellescape(expand("%:h")) '; vim' shellescape(expand("%:p")) '; zsh -i"' <cr>

-39

试试 gVim。你可以在它自己的窗口中启动。

gVim 使得以图形方式管理多个打开的缓冲区变得非常容易。

你也可以使用通常的 :e 命令来打开一个新文件,使用 CTRL+^ 在不同的缓冲区之间切换等等...

另一个很酷的功能是可以打开一个弹出窗口,列出你所工作的所有缓冲区。

这样就可以通过单击来在打开的缓冲区之间进行切换。

要做到这一点,请点击顶部的 Buffers 菜单,然后点击带有剪刀的虚线。

enter image description here

否则,您可以从终端会话中打开一个新标签页,并从那里启动vi。
通常可以使用CTRL+TCTRL+ALT+T从终端打开一个新标签页。
一旦启动了vi,就很容易打开新文件并在它们之间切换。

50
因为后续的回答展示了如何在vim中完成这个操作,而这正是我所需要的。虽然gVim也很方便(对于提问者来说显然够用),但它并不完全等同于vim,许多搜索“如何在vim中打开新窗口”的人会寻找更普遍的答案,因此我给出了反对票。 - Stew
也许问题的标题/文本应该澄清一下,它没有提到gvim或图形窗口,而“window”和“tab”是vim特定上下文中的专业术语:http://vimdoc.sourceforge.net/htmldoc/windows.html “从vim内部”回答是打开新“vim窗口”的一种方法;搜索“如何打开新的vim窗口”的用户应该看到这个答案。 - Stew
12
+1,显然这是正确的答案,回答了楼主的问题。它是否对后续读者有用并不是将其踩下去的理由。 - Samuel Neff
1
我认为原问题有歧义,但这个答案确实有点不灵活。 - suhdonghwi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接