繁体   English   中英

访问VIM中的多个文件

[英]Accessing Multiple Files in VIM

“Unix in a Nutshell”一书讨论了如何访问第572-573页上的多个文件。 似乎有非常有用的命令,例如“:e”,“:e#”,“:e new_file”,“:n files”,“:args”,“:prev”和“:n!”。 命令让我困惑:

“:n编辑文件列表中的下一个文件。”

“:args显示要编辑的文件列表。”

“:prev编辑文件列表中的上一个文件。”

当我做“:args”时,我看不到真正的清单。 角落里只有一个小文字。 我希望看到我用“:e”访问的所有文件,即缓冲区中的文件列表。

当我执行命令“:n files”时,我在哪里可以看到列表? 什么命令“:prev”和“:n”应该做什么? 我收到了错误消息:

只能编辑一个文件。

我没有提到这本书,但我会尝试解释vim如何处理文件。

Vim有缓冲区。 您打开每个文件:

:e name_of_the_file.txt (在缓冲区中加载文件,即“打开文件”)

你也可以:

:e *.txt

这样做的有用选项是

:set laststatus=2 (始终显示状态行)

:set wildmenu (以轻松打开文件)

如果你有带netrw插件的标准vim,你可以:

:e . (对于vim的文件管理员之一,可以这么说)

管理缓冲区:

:ls会给你一个当前打开的缓冲区列表(文件)

:bnext:bprevious (或:bn:bp )使您可以循环缓冲区

:bd关闭缓冲区/文件(缓冲完成)

其他缓冲区类型用于其他目的(yanking / pasting,temporary,vim的内部,等等)

除了Jonathan Leffler所说的,如果不使用命令行中的多个文件调用Vim,可以在Vim打开后通过以下方式设置Vim的参数列表:

:args *.c

请注意,参数列表与您获得的打开缓冲区列表不同:ls 即使您关闭Vim中的所有打开缓冲区,参数列表也保持不变。 :n:prev可以在Vim中打开一个全新的缓冲区(如果该文件的缓冲区尚未打开),或者可能会将您带到现有缓冲区。

类似地,您可以在Vim中打开多个缓冲区而不会影响参数列表(或者即使arg列表为空)。 :e打开一个新的缓冲区,但不一定会影响参数列表。 打开缓冲区列表和参数列表是独立的。 如果要遍历打开缓冲区列表而不是遍历参数列表,请使用:bn:bp和friends。

要使这些命令有意义,您可以:

vim *.c

例如,在有20个C文件的目录中。 对于单个文件,没有下一个或上一个或重要的文件列表。

:n:p:ar:rew:最后一次在命令行参数列表上运行。

例如

> touch aaa.txt bbb.txt ccc.txt
> gvim *.txt

vim在aaa.txt中打开

:ar gives a status line

[aaa.txt] bbb.txt ccc.txt

:n moves to bbb.txt

:ar gives the status line

aaa.txt [bbb.txt] ccc.txt

:rew rewinds us back to the start of the command line arg list to aaa.txt

:last sends us to ccc.txt

:e ddd.txt edits a new file ddd.txt

:ar gives the status line

aaa.txt bbb.txt [ccc.txt]

因此命令集仅在初始命令行参数列表上运行。

为了澄清,Vim有参数列表,缓冲区列表,窗口和标签页。 参数列表是你用vim调用的文件列表(例如vim file1 file2); :n和:p命令可以使用它。 缓冲区列表是您正在编辑的文件的内存中副本列表,就像emacs一样。 请注意,start(在参数列表中)加载的所有文件也都在缓冲区列表中。 尝试:help buffer-list获取有关两者的更多信息。

Windows是缓冲区的视口。 将windows视为“办公桌”,您可以在其上放置缓冲区。 Windows可以为空或显示也可以在其他窗口中显示的缓冲区,您可以使用它们同时查看同一缓冲区的两个不同区域。 尝试:帮助窗口获取更多信息。

标签是窗口的集合。 例如,您可以有一个带有一个窗口的选项卡,另一个带有两个窗口的选项卡可以垂直分割。 尝试:帮助标签页以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM