
1. 简单介绍
操作Linux系统,除了写代码,就是配置各种文件和指令。配置文件除了知道目录结构外,最重要的就是如何编辑文件了。Linux不像Windows那样,鼠标点两下,回车,打字,就完事了。当然Linux也有这种类似的编辑器。但是Linux学的就是命令行操作,所以Linux的vi和vim最基础,虽然有很多快捷键,不过只需要记住常用的几个就足够可以了。
- vi是最基本的文本编辑器,每个Linux发行版都会自带vi。
- vim则可以认为是vi的增强版本(其实是一个程序发开工具,可以用于文本编辑),不过需要自己安装。
- 二者的关系,可以认为是记事本和Notepad、Sublime等之间的关系。
- 用法:命令行中输入
vi 文件名
或者vim 文件名
。
vi和vim大体类似,只不过vim有一些高亮、补全的增强功能。有三种模式:(名字没有统一的叫法,不过大致相同)
- 正常模式/一般模式(输入vi/vim指令后默认进入的模式;在编辑模式和命令行模式下,可按
ESC
进入正常模式) - 编辑模式/插入模式(只能从正常模式下进入,按特殊的键,比如i,a,o,O等等具体的编辑指令。如果退出编辑模式进入正常模式,则按
ESC
键) - 命令行模式(只能从正常模式下进入,输入冒号(:),即可进入,输入指令回车则执行。如果退出命令行进入正常模式,则按
ESC
键,或者有些指令执行完,也可自动返回正常模式)
网上找了一张图:

2. 正常模式
正常模式就是输入vi 文件名
或者vim文件名
直接进入的模式(默认模式),在这个模式中:(不需要按回车,输入快捷键立即生效)
- 可以用上下左右键来移动光标;
- 可以删除字符或者删除整行;
- 可以复制粘贴。
- p,在光标所在行的下面开辟一行,粘贴;
- yy,复制光标所在行;
- 5yy,复制光标所在行及其下面4行(一共是5行,若果不够,则到达文件最后一行)。修改对应的数字即可。
- dd,删除光标所在行;(经测试,删除后,复制缓冲区的内容就是刚刚删除的那一行)
- 5dd,删除光标及下面行,一共5行。(同样,缓冲区为刚刚删除的内容)
- gg,光标定位到文档开始一行。
- G,光标定位到文档最后一行。
- 数字,shift+g,光标定位到指定行,在正常模式下,按下数字,然后shift+g。(也可在命令行下直接输入数字,回车)
- 数字,跳转到当前行的下数字行,在正常模式下,按下数字,然后回车,光标跳转到当前行的下数字行。
- u,撤销上一步。
- x,删除光标所在的字符。
3. 编辑模式/插入模式
这个模式,就是可以直接用键盘直接输入内容(不是上面的复制粘贴删除整行)。输入i
键即可进入。其他的,如o,向下开辟一行,然后光标定位到行首,a追加等等,这些虽然功能强大,但是一个i再加上回车就足够了。
在此模式下,是用键盘输入进行编辑文件的,不能用快捷键。
4. 命令行模式
这个模式和正常模式类似,完成读取、保存、替换、退出、显示行号等等。在正常模式下输入冒号(:)进入此模式。(输入快捷键后需要按回车)
- q,quit的缩写,如果没有修改文件,会直接退出vi/vim编辑模式。如果修改了,提示未保存,不会退出。
- q!,强制退出vi/vim编辑模式,不管有没有修改,不管有没有保存,都会不保存并直接退出。
- w,保存,注意仅仅是保存,之后回到正常模式。
- wq/wq!,write quit的缩写,无论有没有修改,都是保存并退出vi/vim的编辑模式。
- set nu,显示行号。
- set nonu,取消行号。
- /关键字,查找文档中光标之后的关键字(一般默认是循环查找,所以也就是查找了全文档)。(注意/和关键字之间没有空格)(也可直接在正常模式下直接输入
/关键字
)。查找后,按n
可以将光标定位下一个查找到的位置。N
是将光标定位到上一个查找的位置。 - ?关键字,查找文档中光标之前的关键字(一般默认是循环查找,所以也就是查找了全文档)。
- noh,上述查找操作后,之后无论什么时候打开这个文件,都会有查找的颜色标记,可以在命令行模式下输入此命令,取消颜色标记。
- 数字,在命令行下,直接输入数字,然后回车,跳转到指定行。
5. 总结
快捷键有很多,网上找了一张图。
