我知道我可以通过执行vim之类的操作来打开多个文件,但是如何在文件之间切换并一次关闭一个文件呢?另外,如何知道我正在编辑的当前文件的文件名?

评论

相关:gvim -p打开的标签页有限制吗?

#1 楼

首先,在vim中,您可以输入:(冒号),然后帮助help,ala :help以获得自助主题的列表,包括简短的教程。在主题列表中,将光标移到感兴趣的主题上,然后按ctrl],将打开该主题。

一个很好的起点是主题

|usr_07.txt|  Editing more than one file


好吧,继续您的答案。
:next是写电流更改的缩写,然后移到下一个文件。

还有一个类似的:n:wnext:previous。 (请注意,:wprevious:Next的简写。:p的简写是:print:previous。) )。

示例:

vim foo.txt bar.txt
:args



[foo.txt] bar.txt


评论


:wn是:next的缩写。

– oh
2011-12-26 at 4:34

您也可以执行:rew返回第一个文件。 :e#在2个文件之间交换。 :n!无需写入即可转到下一个文件。另请参阅:set自动写入。

– Sasquiha
2012年1月27日在21:41

关于多个缓冲区/窗口/选项卡,另请参见StackOverflow的《如何有效地在Vim中处理多个文件》?以及使用Vim的选项卡(例如缓冲区)。

–mmoya
13年2月2日在17:31



我发现第22章“查找要编辑的文件”也非常有用。它使用目录浏览器来编辑所需的文件。

–哈里·莫雷诺(Harry Moreno)
'18 Feb 1'在23:30

:wn真棒。

– rammayur
18年6月9日在0:49

#2 楼

您可以在用:tabe filename打开vim时打开另一个文件,并相应地切换到另一个文件,键入:tabn:tabp作为下一个和上一个。当您不在编辑模式下(即不在插入,替换等模式下)时。在某些系统上,Ctrl + Alt + Page Up和Ctrl + Alt + Page Down也允许选项卡切换,但这并不总是有效(例如,在OS X终端“开箱即用”中不起作用)。

您可以在vim应用程序的顶部看到文件名。

评论


这个。也可以使用以下选项卡在选项卡中打开文件:vim -p file1 file2

–不是现在
2011年12月25日,1:15

惊奇!尽管使用vim已经很多年了,但我从来没有遇到过。这改变了一切。

–me_and
13年8月21日在13:13

请注意,选项卡不适用于多个文件。它们旨在用于多种布局。见文章。

–patryk.beza
15-10-14在9:26



另外:如果您已经在vim中并且想要添加另一个文件,则可以使用::argadd文件名,然后使用:next。同样,您可以使用:argdel filename删除正在编辑的文件之一。

– luv2code
17年1月19日在19:05



#3 楼

在缓冲区之间切换的命令:

:bf            # Go to first file.
:bl            # Go to last file
:bn            # Go to next file.
:bp            # Go to previous file.
:bw            # Close file.


:help buffer以查找更多信息

要了解文件名,请使用Ctrl + G,:file:f

评论


:bw关闭文件哈哈。不要忘记阅读:bw的帮助,它说只有在知道自己在做什么的情况下才应使用它。没什么大不了的,但是除非您想抹掉文件的所有标记和信息,否则最好像普通人一样使用:bd或:q

–迪伦
18年8月17日在16:45

如果您好奇的话,更多有关:bw的信息:vi.stackexchange.com/questions/2212/…

– Wisbucky
18-10-5在23:06

#4 楼

除了给出的答案之外,另一个选择是使用以下方法分割窗口:

:sp
:vsp


:vsp用于垂直分割。然后使用Ctrl+W <ARROW_KEYS>在窗格中移动。

评论


您可以使用:vs而不是:vsp

–卡贾·敏哈朱丁(Khaja Minhajuddin)
2012年6月3日上午8:09

甚至只按Ctrl + W,v表示垂直分割,按Ctrl + W,s表示水平分割。

–俄罗斯
2015年1月5日在18:20



我已经使用CTRL + W多年了,最近我在网页中做了很多VI编辑。每一次,我什至都不会思考地键入命令,并且……whammmm……浏览器选项卡消失了!我总是忘记。我真的需要学习一个新的快捷方式。

–each
18年2月9日在16:56

#5 楼

:n -> Move to next file
:N -> Move to previous file


#6 楼

我在超级用户处问了一个类似的问题,

“如何在使用VI打开的不同bash窗口和文件之间复制和粘贴?”

我的问题的答案是可以t,但您可以使用VIM的:split命令在一个bash窗口中打开两个文件:


使用$ vim file1打开一个文件,使用:split file2命令在VIM中打开另一个文件。
或,请使用bash中的$ vim -o file1 file2
在VIM中使用ctrl-w ctrl-w在文件之间切换-切换活动文件。 3),然后将p内容粘贴(或放置)到file2中。
当任一窗口处于活动状态时,其他一切正常,因此:q退出而:q!强制退出。 ,因此每个屏幕的文件名都将样式设置为反向的“选定”行,并在其中引用文件名。

哇!

评论


是否有类似数字2的选项,可让您从bash中打开多个文件并垂直或水平拆分它们,但其中一个窗口是当前终端?我知道我可以使用:terminal命令在Vim中执行类似的操作,但是我希望能够通过bash进行操作。

–尼古拉斯·库萨尔(Nicholas Cousar)
20年5月4日,1:15



#7 楼

argadd a/b c/d e/f


argadd ...会将所有文件添加到args,还添加到:ls / :buffers,并允许您对其进行编辑。 />

此外,您还可以仅对带有:h arglsit的arg执行某些操作,并且可以通过执行:h argedit重新开始args。

#8 楼

我发现编辑多个文件最方便的方法是使用选项卡。您可以通过命令行在单独的选项卡中打开多个文件,如下所示:

vim -p file1.txt file2.txt


或者如果已经打开了vim,则可以在新选项卡中打开新文件像这样:

:tabe file2.txt


一旦打开选项卡,请使用gt查看下一个选项卡,并使用gT查看前一个选项卡。

您也可以使用1gt跳到第一个选项卡,使用2gt跳到第二个选项卡,等等。 :tabc位于n的位置,其中:ntabm是大于或等于n的任意数字。

#9 楼

有很多方法可以做到这一点。第一个,可能不太方便,是用要编辑的文件调用vim-创建:

vim first_file second_file ...


它在两个缓冲区中调用两个文件。要将文件切换到另一个文件,请使用:n:N。要列出您正在编辑的文件,:args将完成这项工作。 :help buffer将在此方面为您提供更多帮助。


这将回答您的问题。但是这里有更多信息:

有一种方法可以通过使用vim拆分控制台屏幕来以更方便的方式编辑文件。为此,在使用vim时,用:split:sp)或:vsplit:vs)打开两个框架。然后,使用Ctrl + W> Ctrl + W组合在这些框架中导航。您也可以使用Ctrl + W +下一个框架所对应的箭头或键(H,J,K或L)。完成后,使用:e file_name编辑所需的文件。现在,如果您想查看文件之间的差异,请使用:help opening-window参数或对相应的文件调用vimdiff程序(相同)。 -d将在此方面为您提供更多帮助。

vim -d first_file second_file ...


如果您有任何问题,请告诉我。

#10 楼

我喜欢使用水平和垂直拆分窗口来编辑多个文件。

我使用tmux可以更轻松地管理这些窗口。

https://tmux.github。 io /
“什么是终端多路复用器?它使您可以轻松地在一个终端中的多个程序之间切换,分离它们(它们在后台运行)并重新连接到另一个终端。还有更多操作。请参见手册。“

示例:在右侧查看文件或运行测试,在左侧查看测试和源文件:

#11 楼

:e #(filename)在两个打开的文件之间切换

:p用于上一个文件

:n用于下一个文件

评论


欢迎使用U&L,这几乎没有增加任何其他答案。

–炼金术士
17年1月3日,12:20