提示:在学习本文知识的时候记得温故一下文本编辑器vi的知识点:文本编辑器vi看这篇就够了因为目前大部分的Linux发行版都以vim替换vi的功能了,所以学习vi也很必要。
一.vim的缓存、恢复与打开时的警告信息
目前主要的文本编辑器都会有恢复的功能,vim也有恢复功能(防止宕机而导致数据没有进行保存)。当我们在使用vim进行编辑时,vim会在与被编辑的文件的目录下,再建立一个名为.filename.swp的缓存文件
当我们进入到vim的一般命令模式下按下组合键Ctrl+z时,你的vim就会被丢到后台去执行,并且会创建一个上述的缓存文件。
当在vim的一般命令模式下,按下Ctrl+z后会显示如下的信息
当我们使用ls-al的命令后发现在该目录下多了一个.test.txt.swp的文件如下:
当我们再一次使用vim编辑test.txt时,会出现以下信息,这是和第一次完全不一样的:
当我们在该状态下按键盘的方向键(下方向键)按两下(其他键也可以这里不绝对),会出现下面的状态:
红色方框中的信息提示,该文件的缓存文件已经存在,最下面一行提示你可以进行的操作,具体功能如下:
[O]pen Read-Only:打开此文件为只读文件,可以用在你只是想要查看该文件内容并不想要进行编辑操作时。
[E]dit anyway:还是用正常的方式打开你要编辑的那个文件,并不会加载缓存的内容,不过很容易出现两个用户互相改变对方的文件等问题(由于Linux是多人多任务的环境)。
[R]ecover:就是加载缓存的内容,用在你要救回之前未保存的工作,不过当你救回并且保存退出vim后,还是要手动自行删除那个缓存。
[Q]uit:按下“q”就退出vim,不会进行任何操作回到命令提示符。
[A]bort:和[Q]uit的操作非常类似,也是回到命令提示符。
二.vim的可视区块(Visual Block)
在以往我们在文本编辑器vi中基本都是以行为单位进行的操作,但是如果我们想要搞定一个区块(也就是以列为操作单位),该如何进行?在vim中就满足了这样的需求,其使用可视区块。当我们按下“v”、“V"、或"[Ctrl]+v"时(指的是在一般命令模式下),光标移动过的地方就开始反白。
当我们在vim的一般命令模式下输入小写“v”键,会出现如下状态信息:
当我们在vim的一般命令模式下输入大写“V”键,会出现如下状态信息:
当我们在vim的一般命令模式下按下“[Ctrl]+v”键,会出现如下状态信息:
根据需求选择区块后就可以进行复制、删除或粘贴了,单纯这一点就可以看出vim相比于vi具有更强大的功能。
三.vim的多文件编辑
在文本编辑器vi中我们可以在一般命令模式下使用“:r filename”来读入某个文件的内容(在vi那篇博客中我只列出了常用的命令)
现在我们想将文件TEST.txt的内容读入到文件test.txt光标处可以使用上诉指令如下:
读入后显示如下:
说了那么多的目的是什么呢,其实是想引入在vim中的多文件编辑。在vim中可以从某个文件进入到另外一个文件,也可以将另一个文件中的内容选择性复制到某个文件中…。而在vi中只能将某个文件的内容全部导入到本文件,而有些内容往往又不是我们所需要的。多文件编辑的按键如下,注意都是在一般命令模式下进行的操作:
在命令提示字符使用vim同时打开两个文件如下:
在一般命令模式下使用“:files”查看目前开启的所有文件如下:
在一般命令模式下使用“:n”就可以进入下一个文件如下;
当然我们也可以在一个文件中直接使用按键进入另一个文件如下:
vim的多文件编辑很方便地让我们在各个文件之间跳转自如,不管是查看、复制、删除还是粘贴操作。
四.vim的多窗口功能
现在假设我们有两个需求:1.当我们有一个很大的文件,我们现在想要对照文件前面与后面的数据,但是我们不想使用[Ctrl]+f与[Ctrl]+b功能键,该如何操作?2.现在我有两个需要对照着看的文件,但是我不想使用vim的多文件编辑,该如何操作?
vim也能够实现划分窗口:如果想要在新窗口启动另一个文件,就加入文件名“:sp filenam”,否则仅输入“:sp”,出现的则是同一个文件在两个窗口间。
如果我们想要同一个文件的两个窗口,可以如下操作:
如果我们想要不同文件的两个窗口,可以通过如下操作:
当我第一次玩vim的划分窗口时,非常激动,竟然有这种功能,太有趣了。
对于vim的多窗口情况下的按键功能有很多,但是我将最主要使用的几个总结如下,以方便查阅:
vim的笔记总结差不多到这里为止(虽然很简陋),目的也很简单,方便查阅。对于Linux的学习,大家都一定要自己动总结手敲一敲,敲多了,使用多了,就慢慢掌握了。
最后如果文章有不对的地方,希望大家指出,我会第一时间纠正。❤️ ❤️