参考文章
1.Vim是什么
Vim是一个强大的文本编辑器,和Emacs是一个数量级。Vim及前身VI,历史悠久(可能比多数读者的年龄更大),经历了几十年的考验和发展。Vim全称叫Vi IMproved. 而Vi全称则是Visual Interface,他们都是处理ASCII码字符数据;Vim 是Vi的升级版本,它兼容Vi的所有指令,并且还有一些新的特性在里面。例如语法加亮,可视化操作不仅可以在终端运行,也可以运行于x window、 mac os、 windows。
要做到熟练使用vim需要不断地练习和强大的意志力,因为vim有非常多的命令,需要不断地在实践中练习使用,但是在逐步的熟练vim编辑器的使用之后会在工作的过程中变得更加得快速和便捷。
2.安装Vim
命令:sudo apt-get install vim
3.Vim的三种模式——命令模式、末行模式、编辑模式
(1)三种模式的介绍
- 命令模式:此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。命令模式大体上可以理解为只能控制光标的移动以及模式的切换。
- 末行模式:可在末行输入一些命令对文件进行操作,如搜索、替换、保存、退出、高亮等;
- 编辑模式:可对文件内容进行编辑;
(2)三种模式的切换
- 切换到命令模式
用vim指令打开文件时默认为命令模式;
按一下键盘ESC键或者 ctrl+[ 可从编辑模式切换到命令模式;
按一下或连按两下ESC键或用键盘删除末行模式下的英文符号:可从末行模式切换到命令模式。
- 切换到编辑模式
命令模式下键盘输入字母i或a或R或o可从命令模式切换到编辑模式。
不同字母进入编辑模式的区别
i | 进入输入模式,在字符前插入字符,进入后显示 – INSTER– |
a | 进入输入模式,在字符后插入字符,进入后显示 – INSTER– |
R | 进入取代模式,输入的字符会取代光标所在的字符,进入后显示 – REPLACE – |
o | 进入输入模式,在光标下一行插入新行,进入后显示 – INSTER – |
- 切换到末行模式
命令模式下键盘输入英文符号:可从命令模式切换到末行模式;
ps:命令模式可切换到末行模式或编辑模式,但末行模式与编辑模式之间不能直接相互切换。
4.使用vim打开文件
- 打开指定文件:
vim 文件路径 例: vim /test/a.txt
- 打开文件时,将光标移动到「指定行」
vim +行数 文件路径例:vim +3 /test/a.txt
注意:加号 + 是语法格式,不要漏掉
- 打开文件时,「高亮」显示关键字
vim +/关键字 文件路径例:vim +/root /test/a.txt
5.命令模式
-
光标移动
h | 向左移动 |
j | 向下移动 |
k | 向上移动 |
l | 向右移动 |
^ | 光标移动到光标所在行的行首 |
$ | 光标移动到光标所在行的行尾 |
gg | 光标移动到文件的首行 |
G | 光标移动到文件的尾行 |
ctrl+b | 向上翻屏 |
ctrl+f | 向下翻屏 |
数字+G | 光标移动到数字对应的行数 |
数字+键盘方向键上/下 | 从当前行向上或向下移动数字对应的行数 |
数字+键盘方向键左/右 | 从当前光标的位置向左或者向右移动数字对应个数字符 |
-
复制与粘贴
yy | 复制光标所在行 |
数字+yy | 从光标所在行开始向下复制数字所对应行数内容 |
ctrl+v | 进入可视化复制,可以用键盘方向控制复制区域,选中区域后输入yy即复制完成 |
p | 在光标处粘贴已复制内容 |
-
剪切与删除
dd | 剪切光标所在行,光标所在行的下面行会上移填补剪切行 |
数字+dd | 从光标所在行起向下剪切数字对应的行数,包括了光标所在行,后面行会上移填补剪切部分 |
D | 剪切光标所在行但后面行不会上移填补剪切行,剪切行变空 |
删除语法:删除即剪切后不复制,删除操作使用剪切语法
-
撤销与恢复
撤销语法:u 撤销上一步操作
恢复语法:ctrl+r 恢复撤销操作(即取消之前的撤销操作)
6.末行模式
-
保存
:w 保存当前文件
:w 文件路径 另存为指定文件
-
退出
:q 退出当前文件
:wq 保存当前文件并退出
:q! 不保存对文件的修改并退出
-
搜索/查找
:/关键词 按关键词查找
N/n 光标移动到上/下一个查找到的内容(属于命令模式)
-
替换
:s/搜索的内容/新内容 用新内容替换光标所在行第一处被搜索到的内容
:s/搜索的内容/新内容/g 用新内容替换光标所在行全部被搜索到的内容
:%s/搜索的内容/新内容 用新内容替换整个文件每一行第一处被搜索到的内容
:%s/搜索的内容/新内容/g 用新内容替换整个文件全部被搜索到的内容
-
显示行号
:set nu 显示文件每行的行号,显示行号是暂时的下次打开该文件不会再显示
:set nonu 取消行号显示
-
切换文件
:files 查看同时打开的所有文件的名称
:open 文件名 切换到其他打开的文件进行操作
:bn 切换到下一个打开的文件
:bp 切换到上一个操作的文件
ps:每执行完一次末行模式下的命令之后,都会自动退回到命令模式,因此每次执行末行模式下的命令都需要先键盘输入英文符号:后再输入命令.