前言
Hello,各位码友。昨天更新的文章中我们一起学习了Linux的基本命令,虽然命令巨多,但是我们慢慢练习就一定能学会的。 只要足够努力,腐朽就能化为传奇。
今天一起来学习一下Vim文档编辑,喜欢这样的总结点个一键三连支持一下呗。感激不尽!希望有所帮助!
Vim文档编辑
Vim是由vi发展演变过来的文本编辑器,因其具有语法高亮显示、多视窗编辑、代码折叠、支持插件等功能,已经成为众多Linux发行版本的标配了。对于我这样的初学者来说,这个名为Vin的文档编辑器真的好生涩、好难学习啊!但是我的老师告诉我,当我完全掌握这种编辑器后,工作效率一定会翻倍提升的。虽然难学,但是既然选择了,就要坚持下去。
加油,奥利给!
Vim工作模式
Vim具有多种工作模式,常用的模式有:普通模式、插入模式和命令模式。其中普通模式可以实现基本的光标移动和大量的快捷键操作,插入模式可实现文本的基本编辑功能,命令模式通过输入特定的指令实现特定功能,不如最常见的保存和退出功能。
直接输入Vim命令,即可开启该文本编辑器,默认将创建一个新的文档(因为没有指定文件名,所以保存的时候需要提供文件名)。如果Vim命令后跟了文件名参数,则需要判断改文件是否存在,如果存在,Vim将打开该文件,否则Vim会创建这个文件。
注意:
使用Vim打开文件时,如果提示:Found a swap file by the name,类似这样的信息,就代表有其他进程正在同时编辑该文件,或者由于上次Vim非正常关闭,导致swap文件没有清楚导致的,这时可以将以点开始的一个隐藏文件删除,解决类似的问题。该隐藏文件与原始文件处于相同目录下,文件名的后缀一般为swp。
Vim编辑器默认会进入普通模式,插入模式可以通过下面表格中列出的按键进入:
按键 | 功能 |
---|---|
a | 进入插入模式,后续输入的内容将插入至当前光标的后面 |
A | 进入插入模式,后续输入的内容将插入至当前段落的段尾 |
i | 进入插入模式,后续输入的内容将插入至当前光标的前面 |
I | 进入插入模式,后续输入的内容将插入至当前段落的段首 |
o | 进入插入模式并在当前行的后面创建新的空白行 |
O | 进入插入模式并在当前行的前面创建新的空白行 |
当需要退出到普通模式或者不知道当前整处于什么模式时,可以通过【Esc】键返回到普通模式
最后,在普通模式下输入“:”,即可进入命令模式;在“:”后面输入指令,即可实现特定的功能。例如!q可以不保存,然后前置退出编辑器。
Vim光标操作
Vim中最简单的移动光标的方式是使用方向键来操作,但是这种操作方式的效率比较低,最快的方式就是使用快捷键,所有的快捷键都在普通模式下使用。下面的表格列举了一些常用的快捷键。
快捷键 | 功能描述 |
---|---|
h | 光标向左移动一位 |
j | 光标向下移动一行(以回车为换行符) |
k | 光标向上移动一行 |
l | 光标向右移动一位 |
gg | 光标移动到文件首行 |
G | 光标移动到文件末尾 |
nG | 光标移动到第n行(n为数字,如n为3时表示第3行) |
^ | 光标移到当前行的首字符 |
$ | 光标移到当前行的尾字符 |
fx | 光标移到当前行的下一个x字符位置 |
Fx | 光标移到当前行的上一个X字符位置 |
W | 光标向右移动一个单词 |
nw | 光标向右移动n个单词(n是数字) |
b | 光标向左移动一个单词 |
nb | 光标向左移动n个单词(n是数字) |
Vim编辑文档
在Vim编辑器中编辑文档内容主要有两种方式较为常用:进入编辑模式操作和快捷键操作。进入编辑模式后就可以通过移动光标进行增加、删除、修改的基本操作,这也是最简单的方式。对了,还有,卡UI将诶接爱你的操作方式是在普通模式下输入相应的快捷键实现相对应的功能,下表列出了快捷键及功能。
快捷键 | 功能 |
---|---|
x | 删除光标当前字符 |
dd | 删除一行 |
ndd | 删除n行(n是数字) |
d$ | 删除光标至行末的内容 |
J | 删除换行符,可将两行合并为一行 |
u | 撤销上一步操作,可以多次使用,如输入两个u来撤销两次操作 |
rx | 将光标当前字符替换为x(x为任何键盘单个输入) |
yy | 复制当前行 |
p | 粘贴至当前行之后 |
P | 粘贴至当前行之前 |
Vim查找与替换
当文档很长的时候,我们可以通过查找来快速定位要找的内容,在Vim中通过在普通模式下输入“/”关键词实现从上往下的查找功能。比如说:/host在当前文档的光标处向下查找host并显示,如果一个文档中有多个host,可以通过快捷键n跳转至下一个匹配的关键词处,快捷键N将跳转至上一个匹配的关键词的位置。还有,通过在普通模式下输入“?”加关键词,可以实现从下往上的查找功能,比如,?host从当前文档的光标处向上查找host并显示,此时快捷键n表示查查看上一匹配。
Vim提供了非常好的替换功能,可以快速完成大量的替换工作。
cp /etc/passwd /root/
vim /root/passwd
通过上面两条命令赋值一份临时测试文档并编辑,我们可以对改文件实现多种替换功能。详见下面的表格:
指令 | 功能 |
---|---|
:q! | 不保存并退出 |
:wq | 保存并退出 |
:x | 保存并退出 |
:w | 保存 |
:w b.txt | 另存为b.txt |
注意:
Vim提示错误信息E32:No file name时,说明你没有为文件设置文件名,需要在w后跟上文件名称
另一种保存方式为快捷键操作,在普通模式下输入ZZ,即可实现保存并退出文档。
Vim使用小技巧
-
显示行号
显示当前行是第几行的方式有很多,可以通过为文档添加行号来实现,添加行号的方法是在命令模式下输入:set number或简写:set nu即可
-
忽略大小写
在Vim中查找时,你可能不清楚所要找的关键词的大小写,而Vim默认是区分大小写的,这是可以在命令模式下输入:set ignorecase,实现忽略大小写
-
多窗口编辑
当需要同时编辑多个文档时,分割窗口就尤为重要了,最简单的方式就是在命令模式下输入:split。如此可以实现编辑同一个文档的不同行,至于窗口切换嘛,就可以使用快捷键【Ctrl+w+h】(表示跳转到左边一个窗口)、【Ctrl+w+l】(表示跳转到右边一个窗口)、【Ctrl+w+j】(表示跳转到上面一个窗口)、【Ctrl+w+k】(表示跳转到下面一个窗口)。
在命令模式下输入:close,可以关闭当前窗口。
在命令模式下输入:split second.txt,此命令会分割窗口并打开新的文件,从而实现多窗口多文件的编辑工作。默认的:spit为水平分割窗口,垂直分割可以使用:vsplit指令。
-
执行Shell命令
使用Vim编辑文档的过程中,如果需要执行一条Shell命令而不想退出Vim编辑器,可以通过:!{命令}的方式实现。例如,需要查看当前目录下档案的名称,则在命令模式下输入指令:!ls即可,执行完成后按回车键返回Vim编辑器。
-
自动补齐
如果需要输入的内容在前面的行中已经出现过,那么Vim可以根据上文内容自动补齐输入。比如,在文件第三行定义了一个变量FIRST_TIME=09,以后需要再次输入FIRST_TIME时。可以仅输入FI后使用快捷键【Ctrl+N】来实现自动补全功能。
今天的分享就到这里了,你又学废了吗?
喜欢的话点个一键三连支持一下呗,感激不尽!!!
希望有所帮助!