"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"应该做什么?我收到了错误消息:
只能编辑一个文件.
Rook.. 17
我没有提到这本书,但我会尝试解释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的内部,等等)
我没有提到这本书,但我会尝试解释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
and :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]
因此命令集仅在初始命令行参数列表上运行.