Vim打开文件后:sh

Vim打开文件后:sh,vim,Vim,我希望能够在vim(使用:sh)中编辑cd时返回到终端会话,并将cd放入其他目录,然后打开另一个文件,但与我之前使用的vim会话相同。i、 e.如果我在终端中“退出”,我想返回vim,以便:ls显示两个缓冲区 当前,如果我:sh,vim newfile,我进入vim,但:ls仅显示新文件 是否有办法将新文件添加到上一个会话中,而不是启动新的会话 (注意:我不太熟悉vim术语。所谓“会话”,我指的是vim的实例,它有我以前的缓冲区)。您可以使用:tabedit filename而不是gttp mo

我希望能够在vim(使用
:sh
)中编辑cd时返回到终端会话,并将cd放入其他目录,然后打开另一个文件,但与我之前使用的vim会话相同。i、 e.如果我在终端中“退出”,我想返回vim,以便
:ls
显示两个缓冲区

当前,如果我
:sh
vim newfile
,我进入vim,但
:ls
仅显示新文件

是否有办法将新文件添加到上一个会话中,而不是启动新的会话


(注意:我不太熟悉vim术语。所谓“会话”,我指的是vim的实例,它有我以前的缓冲区)。

您可以使用
:tabedit filename
而不是
gt
tp move-through选项卡


另外,cntl+z将vim置于te背景中,您可以正常使用shell。让维姆回来。使用命令
fg

您可以使用
:tabedit filename
而不是
gt
tp move-through选项卡


另外,cntl+z将vim置于te背景中,您可以正常使用shell。让维姆回来。使用命令fg

您不需要返回shell来打开其他文件:
:edit
:split
:vsplit
:tabedit
所有这些都允许您从磁盘上的任何位置编辑文件(并完成制表符):

您可以使用
wildmenu
wildmode
wildignorecase
选项使其更加完善

您还可以使用内置的Netrw插件,使用稍微舒适的“图形化”资源管理器在文件系统中导航(请参见
:help Netrw
):


另外,
:shell
会打开一个新的shell,它很可能不了解您的初始Vim会话,因此无法与之对话。

您不需要返回shell来打开其他文件:
:edit
:split
:vsplit
:tabedit
all允许您从磁盘上的任何位置编辑文件(并完成tab):

您可以使用
wildmenu
wildmode
wildignorecase
选项使其更加完善

您还可以使用内置的Netrw插件,使用稍微舒适的“图形化”资源管理器在文件系统中导航(请参见
:help Netrw
):


另外,
:shell
会打开一个新的shell,它很可能不了解您的初始Vim会话,因此无法与之对话。

当您使用
:sh
进入子shell,然后调用Vim时,这将是一个全新的实例。您可以改为使用客户机-服务器通信启动原始Vim:

不幸的是,当您进入带有
:sh
的子shell时,原始Vim被挂起,您无法与它通信。您必须生成另一个shell,例如在另一个终端或屏幕分割中。如果您现在想要在原始Vim中编辑另一个文件,请使用Vim的客户机-服务器通信在那里打开它:

$ vim --servername main --remove newfile.txt

当您使用
:sh进入子shell,然后调用Vim时,这将是一个全新的实例。您可以改为使用客户机-服务器通信启动原始Vim:

不幸的是,当您进入带有
:sh
的子shell时,原始Vim被挂起,您无法与它通信。您必须生成另一个shell,例如在另一个终端或屏幕分割中。如果您现在想要在原始Vim中编辑另一个文件,请使用Vim的客户机-服务器通信在那里打开它:

$ vim --servername main --remove newfile.txt

我知道在vim中打开新文件的一些方法。我想:sh,然后在我的“旧”vim会话中打开一个文件。如果有一种方法可以使用C^Z而不是:sh来实现这一点,那也很高兴知道。我知道一些在vim中打开新文件的方法。我想:sh,然后在我的“旧”vim会话中打开一个文件。如果有一种方法可以用C^Z而不是:sh来实现这一点,那么知道这一点也很好。这就引出了一个问题:为什么?您可以使用
:e
和朋友从Vim中打开新文件。我只是觉得能够这样做会很好。我觉得:e即使是完成制表符也不方便,因为您必须一次一个地查看每个文件。shell至少允许我列出文件/目录。所以我倾向于使用Nerdtree。但是,当我必须打开嵌套在过多子目录中的文件时,Nerdtree侧面板中的空间就用光了(因此我全屏打开它,并在新选项卡中打开文件-然后我就有过多的选项卡)。我知道如何做事情的方法越多越好,因为我可以综合利弊,并决定在给定的情况下什么对我最有利。
:set wildmode=list:longest
来拯救我!维姆可以做到这一点。请参见
:h“wildmode”
。和
:设置wildignorecase
:设置wildmenu
;-)令人惊叹的我不知道这些选择。我并没有读过很多关于它们的书,只是现在就尝试一下,而wildmode=list:longest在我的.vimrc中非常流行。谢谢你们:)这就引出了一个问题:为什么?您可以使用
:e
和朋友从Vim中打开新文件。我只是觉得能够这样做会很好。我觉得:e即使是完成制表符也不方便,因为您必须一次一个地查看每个文件。shell至少允许我列出文件/目录。所以我倾向于使用Nerdtree。但是,当我必须打开嵌套在过多子目录中的文件时,Nerdtree侧面板中的空间就用光了(因此我全屏打开它,并在新选项卡中打开文件-然后我就有过多的选项卡)。我知道如何做事情的方法越多越好,因为我可以综合利弊,并决定在给定的情况下什么对我最有利。
:set wildmode=list:longest
来拯救我!维姆可以做到这一点。请参见
:h“wildmode”
。和
:设置wildignorecase
:设置wildmenu
;-)令人惊叹的我不知道
$ vim --servername main
$ vim --servername main --remove newfile.txt