在启动vim时,可以指定多个文件做为参数,例如以下操作系统命令将打开多个文件,并显示第一个文件:
$ vim file1.txt file2.txt file3.txt
参数(Arguments)和缓冲区(Buffer)是不同的概念。早在Vi时期,就存在参数概念;而缓冲区则是在Vim之中新引进的。参数列表中的所有文件名,都会同时存在于缓冲区列表之中;但并不是所有缓冲区列表中的文件名,也都会出现在参数列表之中。
例如在启动vim之后,使用以下命令打开并编辑文件:
:e file4.txt
此时显示以下3个参数:
而缓冲区则为4个:
命令:args
可以列示打开的多个文件,并用中括号“[]”标识出正在编辑的文件名。
如果在命令中指定了文件名列表,那么可以打开多个文件:
:args *.txt
可以使用:argument命令,直接切换到指定的文件。例如以下命令,将切换至列表中的第三个文件:
:argument 3
需要切换到下一个文件时,可以输入:next
命令,如果你没有保存当前文件的修改,vim将给出提示信息,不允许切换到下一文件。输入:write
和:next
命令,则可以保存并切换到第二个文件(此命令也可简写为:wnext
)。
使用:next!
命令,可以强制切换到第二个文件,但所做改动也将会丢失。使用:set autowrite
命令打开自动保存功能,可以避免数据丢失的意外情况;而命令:set noautowrite
则可以关闭自动保存功能。
如果想要回到上一个文件,可以使用:previous
或是:Next
命令。如果要保存当前文件并切换到前一文件,可以使用:wprevious
或是:wNext
命令。
Vim将当前文件(current filename)标记为“%”;而将之前的交换文件(alternate filename)标记为“#”。
使用:e #
命令,也可以切换到上一个文件中;如果当前文件没有保存,则会提示进行保存或者放弃。
如果希望放弃当前的文件编辑,并直接返回上一个文件中,那么可以使用:e! #
命令。
使用:r #
命令, 可以将上一文件的内容读入(粘贴)到当前文件中。
由于在编辑多文件的过程中,经常需要切换到之前的文件,因此提供快捷键ctrl+^进行快速切换。
使用:first
或:rewind
命令,可以快速切换到第一个文件;而:last
命令,则可以快速切换到最后一个文件。
:next | 切换到下一文件 |
:wnext | 保存后切换到下一文件 |
:previous | 切换到上一文件 |
:Next | |
:wprevious | 保存后切换到上一文件 |
:wNext | |
:first | 切换到第一个文件 |
:last | 切换到最后一个文件 |
:set autowrite | 打开自动保存功能 |
:set noautowrite | 关闭自动保存功能 |
:args | 显示正在编辑的文件名 |
:argument [N] | 切换至第N号文件 |