同时显示两个不同的文件,或者同时查看一个文件的两个不同的部分,甚至同步显示两个文件的不同之处,都可以使用vim的分割窗口来实现。
最简单的打开新窗口的方法就是使用命令:split,这样,原来的窗口就会分成上下两个部分,而光标停留在上明的窗口里。你会发现打开的新窗口和你原来的窗口都是显示的同一个文件。可以通过先ctrl+w后w来实现当前光标停留窗口的转换。这样,就可以同时查看同一个文件的不同位置了。
你可以通过命令:close来关闭这个窗口。事实上,使用:q也是可以的。但是为了防止误操作而导致所有窗口都被关闭,我们推荐使用:close来关闭当前窗。
当然,如果你打开了太多的窗口,而只想保留当前这个,你可以使用:only命令来关闭其他所有的窗口。
如果你需要在另外一个窗口里面打开另外一个文件,你可以使用命令:split filename,若你只想打开一个新窗口且什么都不做,那可以使用命令:new来完成。
你也可以自己指定打开窗口的大小,比如:3split代表打开一个高度为3的窗口。对已经打开的窗口大小的调整也是允许的,你可以用现crtl+w后+或者-来增加或减少当前窗口的行数。当然,如果你想快点的话,通过鼠标来上下拖动窗口也是没问题的哦。
之前介绍的分割为水平分割,即窗口是上下排列。如果你希望垂直分割的话,www.linuxidc.com 可以使用命令:vsplit,用法和水平分割类似。对应的,当然还有vnew。
当你打开多个窗口之后,是不是有点眼花啊?这时候你可以先按ctrl+w再通过h(左)j(下)k(上)l(右)b(底部)t(顶部)来相互切换。是不是很熟悉?
更让人佩服的是,你想移动窗口吗?容易!你只需要先ctrl+w后大写H、J、K、L,窗口就会按照你想要的移动了。
如果你打开了太多的窗口,自己也记不请是否保存过了,就可以使用命令:wall来全部存盘,同样的:qall、:wqall以及:qall!的用法就不用居士罗嗦了把。
之前我们介绍了用标签方式同时打开多个文件,现在只需要加入参数-o就可以用窗口方式打开多个文件了。例如:vim -o file1 file2 file3。而如果将o大写成O,就会采用垂直方式打开多个窗口。
vim另外一个强大的功能是能够同时比较两个文件。在终端输入命令vimdiff file1 file2就可以同时打开两个文件且比较他们的不同了。
当进入vim后想要跟另外的文件比较,则可以使用:diffsplit file 或者:vertical diffsplit file来打开,前者为上下窗口,后者为左右窗口。
你可以通过命令:diffupdate来更新差异。也可以通过dp来消除差异。