ChatGPT解决这个技术问题 Extra ChatGPT

如何在新窗口中在vim中打开一个新文件

有没有办法在新的 shell 窗口或选项卡中打开 vim?我习惯于执行 $ mate file,它在新窗口中打开文件。

我更喜欢有一个“中央外壳”,我可以根据需要在其他窗口或选项卡中发出命令和编辑文件。人们通常如何在本地打开vim文件?

您可以使用 ranger 或其他基于终端的文件管理器并打开多个选项卡。在选项卡中,您可以直接访问以在 vim 中打开文件。

x
xavdid

从 vim 内部,使用以下之一

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

:new filename.ext

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

:vert new filename.ext

@anu,您可以使用 v、ctrl+v 或 V 在旧文件上标记文本,使用 y 将其拉到“剪贴板”,使用 p 或 P 粘贴...
:vert new filename.txt 可以缩短为 :vnew filename.txt
...或 :vsp filename.txt 也将在新拆分中打开它。
获得它们后,要在两个窗口之间切换是 Control + W x2。即 Control + Shift + w(按住 ControlShift 轻按 w 两次)。
@DanielPorteous 在我的 Windows 10 PC 上,Ctrl + wx2 就足够了,不需要 Shift
E
Eliran Malka

您可以在 vim 中使用它自己的窗口或选项卡来执行此操作。

一种方法是利用内置的文件浏览器;通过 :Explore:Texplore 激活它以获得选项卡式界面(我觉得最舒服)。

一旦您进入资源管理器,:Texplore(和 :Sexplore)还将防止您意外退出 :q 上的当前缓冲区(编辑器)。

要在打开的标签之间切换,请使用 gtgT(分别为下一个标签和上一个标签)。

另请参阅 vim wiki 上的 Using tab pages


s
srinivasu u

我使用这个微妙的别名:

alias vim='gnome-terminal -- vim'

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


我在启动脚本中使用以下代码(基于此答案),以便在使用 vim 打开 gnome-terminal 后继续使用相同的终端窗口。这会在调用的末尾添加一个“&”字符以在后台运行 gnome 并抑制输出。 "vim_run () { gnome-terminal -- vim $1 &> /dev/null & } 别名 vim=vim_run"
a
aegis

如果您不介意使用 gVim,您可以启动单个实例,这样当使用它打开新文件时,它会自动在当前运行实例的新选项卡中打开。

为此,您可以编写:gVim --remote-tab-silent file

你总是可以给这个命令起一个别名,这样你就不必输入太多的单词了。例如,我使用 linux 和 bash,在我的 ~/.bashrc 文件中我有:

alias g='gvim --remote-tab-silent'

所以我不做$ mate file,而是做:$ g file


问题询问如何在 vim 中执行此操作。请参阅上面的相关答案和相关的反对意见。
C
Chris Stryczynski

我正在使用以下内容,尽管它是为 gnome-terminal 硬编码的。它还将 vim 的 CWD 和缓冲区更改为与当前缓冲区及其目录相同。

:silent execute '!gnome-terminal -- zsh -i -c "cd ' shellescape(expand("%:h")) '; vim' shellescape(expand("%:p")) '; zsh -i"' <cr>

j
jahroy

查看 gVim。您可以在其自己的窗口中启动它。

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

您也可以执行通常的 :e 打开一个新文件,CTRL+^ 在缓冲区之间切换,等等...

另一个很酷的功能可以让您打开一个弹出窗口,其中列出了您处理过的所有缓冲区。

这允许您通过单击在打开的缓冲区之间切换。

为此,请单击顶部的缓冲区菜单,然后单击带有剪刀的虚线。

https://i.stack.imgur.com/sckza.png

否则,您可以从终端会话中打开一个新选项卡并从那里启动 vi。

您通常可以使用 CTRL+T 或 CTRL+ALT+T 从终端打开一个新选项卡

一旦 vi 启动,就可以轻松打开新文件并在它们之间切换。


否决,因为随后的答案是在 vim 中执行此操作的方法,这正是我正在寻找的。虽然很方便(对于提问者来说显然已经足够好),但 gVim 并不相同,许多在搜索“如何在 vim 中打开新窗口”时找到此答案的人将寻找更受欢迎的答案。
那么,也许应该澄清问题的标题/文本;它没有提到 gvim 或图形窗口,并且“窗口”是 vim 上下文中的一个艺术术语,“标签”也是如此:vimdoc.sourceforge.net/htmldoc/windows.html“从 vim 内部”答案是一种打开新“ vim 窗口";找到这个页面的用户,已经搜索过“如何打开一个新的 vim 窗口”,应该会看到这个答案。
+1,显然这是对OP问题和他所问内容的正确答案。对于后续读者的需求是否正确并不是投反对票的理由。
我认为最初的问题模棱两可,但这个答案确实有点不灵活。