打开另一个文件
当我们编辑完一个文件后,希望打开另一个文件。此时,不需要离开vim,就可以打开另一个文件,可以使用如下命令:
:edit filename
此时如果没有保存当前文档,vim会提醒
E37: No write since last change (use ! to override)
这时我们可以使用:write
命令保存文档,也可以使用:edit! filename
忽略更改直接打开新文件。
打开多个文件
如果我们需要同时编辑多个文件,可以使用如下命令在启动vim时同时打开多个文件:
vim one.c two.c three.c
然后可以使用:next
命令跳转到下一个文件进行编辑。同样的,如果你没有保存更改,会收到vim的error提示。此时你可以使用:wnext
保存更改后跳转或者使用:next!
忽略更改后跳转。
如果你想要查看你同时打开的文件列表,以及你现在正在编辑的文件名称。可以使用
:args
此时vim会在下方输出如下信息:
one.c [two.c] three.c
其中方括号中的文件就是你此时正在编辑的文件。
类似于:next
命令,你可以使用
:previous
命令在文件列表中向前跳转。同样的,还有:wprevious
命令和:previous!
命令。
如果你不满足于只能在前后文件之间跳转,可以使用:2next
或者:2previous
一次向后或者向前跳2个文件(2这个数字可以随意改动),另外,还可以使用:first
命令直接跳转到第一个文件,或者使用:last
直接跳转到最后一个文件。不过这里需要注意的是,没有:first!
或者:last!
命令。
还有一点是,我们可以重新定义文件列表,如下
:args five.c six.c seven.h
或者也可以使用通配符,如
:args *.txt
当你同时打开了多个文件,vim会认为你对所有的文件都要进行修改。所以如果你没有对某些文件做任何操作(根本就没有跳转到某些文件),此时vim会提示
E173: 46 more files to edit
此时,你可以再次执行退出操作既可。
小技巧
想要快速的在两个文件之间跳转,可以使用CTRL-^
。
比如你同时打开了三个文件,
:args one.txt two.txt three.txt
然后使用:next
跳转到第二个文件,此时你所在的文件是two.txt。然后使用CTRL-^
可以跳转到one.txt,再次使用CTRL-^
,会跳转到two.txt,再次使用CTRL-^
,又会跳转到one.txt。不过需要注意的是,如果此时使用:next
命令,会跳转到three.txt。也就是说,虽然我们可以使用CTRL-^
在两个文件之间来回跳转,但是对于vim来说,并没有改变你在文件列表中的位置。这点需要稍微注意下,但无关大雅,知道就行。