什么是VIM?:
编辑器之神 | 图标 |
---|---|
Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。 | ![]() |
VIM该如何操作?
Vim的使用模式:
#vim file
开启文件file,进入vim编辑器,默认开启模式:普通模式
Vim除了普通模式,一共有**6种基本模式**,5种派生模式:
模式名称 作用 派生模式 普通模式 可移动光标,操作文本内容等 插入模式 编辑文件内容的模式 替换模式 可视模式 移动光标以块的形状选择区域 选择模式 移动光标以行的形式选择区域 命令模式 可输入命令操作的模式 Ex模式 与命令模式类似,可输入多行命令一起执行
普通模式
注:
1.字符问题,换行字符隐藏显示,但还是占用一个字符大小;所以文件中5个字符,显示8个,共有3个换行符。
2.如果使用Tab制表符,也占用一个字符,隐藏显示
3.如何显示制表符与换行符操作:跳转
光标移动
注意:1.hello为单词hello;
2.hello-world或hello_world为连字符单词
gg:光标向上移动至第一行 Ctrl+b:光标向上移动一屏内容 Ctrl+u:光标向上移动半屏内容 H:光标移至屏幕最上方行的第一个字符 k:光标向上移动一个字符 | ||
---|---|---|
h:光标向左移动一个字符 ^:光标移至本行第一字符位置 b:光标向前移到单词词首 B:光标向前移到连字符单词词首 0:光标移至本行第一列位置 | M:光标移至屏幕中间一行的第一个字符 数字+G:光标移至指定数字行 | l:光标向右移动一个字符 e:光标向后移到单词末尾 E:光标向后移到连字符单词末尾 w:光标向后移到单词词首 W:光标向后移到连字符单词词首 $:光标移至本行最后一列位置 |
j:光标向下移动一个字符 L:光标移至屏幕最下方一行的第一个字符 Ctrl+d:光标向下移动半屏内容 Ctrl+ffd:光标向下移动半屏内容 数字+Enter:光标向下移动数字行 G:光标移动至最后一行 |
删除、复制、粘贴
内容 | 操作 | 意义 |
---|---|---|
删除 | 数字+x | (数字可以不输入默认为1)删除光标所在位置后数字个字符,并向后移动 |
数字+X | (数字可以不输入默认为1)删除光标所在位置前数字个字符,并向前移动 | |
d+数字+d (或数字+d+d意义一样) | (数字可以不输入默认为1)删除光标所在的向下 n 行 | |
d+数字+l (或数字+d+l意义一样) | (数字可以不输入默认为1) 删除游标所在处,到该行的最前面数字个字符 | |
d+数字+w (或数字+d+w意义一样) | (数字可以不输入默认为1) 删除游标所在处,到该行的最前面数字个单词 | |
d+$ | 删除游标所在处,到该行的最后一个字符 | |
d+^ | 删除游标所在处,到该行的最前面一个字符 | |
d+0 | 删除游标所在处,到该行的第一列位置 | |
d+数字+G | 删除光标所在到第数字行的所有数据 | |
d+G | 删除光标所在到最后一行的所有数据 | |
复制 | y+【与d相同组合方式】 | 组合方式相同(复制)方式 |
剪切 | c+【与d相同组合方式】 | 组合方式相同(复制)方式,但是注意每次剪切后都会进入插入模式 |
粘贴 | p | 将已复制的数据在光标下一行贴上 |
P | 将已复制的数据在光标上一行贴上 |
撤销、恢复撤销、搜索、替换、其他
内容 | 操作 | 意义 |
---|---|---|
撤销 | u | 撤销上一个动作操作 |
恢复 | Ctrl+r | 恢复撤销的动作操作 |
搜索 | /+字符\字符串 | 向光标之下寻找输入的的字符或字符串 |
?+字符\字符串 | 向光标之上寻找输入的的字符或字符串 | |
n | 会向下重复执行前一个搜寻的动作 | |
N | 会向上重复执行前一个搜寻的动作 | |
替换 | r | 当前光标字符替换,按下r键后,直接输入替换字符 |
R | 按下R键后,进入替换模式 | |
搜索批量替换操作,需在命令模式执行 | 跳转 | |
其他 | J | 将光标所在行与下一行的数据结合成同一行 |
. | 重复前一个动作,类似office里的F4 | |
Z+Z | 若文件内容没有更动,则不储存离开;若文件内容已经被改动,则储存后离开 |
插入模式
按键 | 效果 |
---|---|
a | 进入插入模式,从目前光标所在的下一个字符处开始输入 |
i | 进入插入模式,从目前光标所在位置插入输入 |
o | 进入插入模式,在目前光标所在的下一行处输入新的一行 |
A | 进入插入模式,从光标所在行的最后一个字符处开始输入 |
I | 进入插入模式,在目前所在行的第一个非空格符处开始输入 |
O | 进入插入模式,目前光标所在处的上一行输入新的一行 |
Esc | 退出插入模式,进入普通模式 |
命令模式
按键 | 效果 |
---|---|
:+w | 将编辑的数据写入硬盘指定文件中 |
:+q | 退出 vim编辑器 |
:+q+! | 不储存文件内,强制离开 |
:+w+q (或:+x) | 存储文件内容并退出 |
Z+Z | 若文件没有更动,则不储存离开,若文件已经被更动过,则储存后离开 |
:+w+q +! | 强制保存并退出,注意:若是只读文件,使用用户必须有权限 |
:+w(或者:saveas)+文件名(可带路径) | 当前目录下另存为文件名,文件名可带路径 |
:+!+命令 | 暂时离开 vi 到命令行模式下执行命令并显示结果 |
:+set+命令 | 通过set+命令临时改变环境,退出后还原 |
Esc | 退出插入模式,进入普通模式 |
环境变更
#显示行号
:set nu
#:取消行号
:set nonu
#如何显示制表符与换行符:
:set list
#显示行号
:set cursorline
#取消高亮
:noh
批量替换
格式:%s/要替换的字符/要替换成的字符/g
%表示全文,可替换为:1.行号如1,7
表示1到7行;
2.字符之间如/ask/,/help/
表示ask到help之间内容
如遇特殊字符,通过添加""转义,例如"\/"
表示特殊符号"/"
#批量替换例子
:%s/ls/***/g
可视模式
普通模式下, 按Ctrl+v键,进入可视模式
移动光标,高亮区域以块状变形,选择合适区域进行操作,操作内容与普通模式一样
直到按下Esc键,退出到普通模式
选择模式
普通模式下, 按g+h键,进入选择模式
移动光标,高亮区域以行的形式变化,选择合适区域进行操作,操作内容与普通模式一样
直到按下Esc键,退出到普通模式
Ex模式
普通模式下, 按Shift+q键,进入Ex模式
这和命令行模式比较相似,可以一次执行多条命令
直到输入visual命令离开Ex模式,退出到普通模式
替换模式
普通模式下,按下R键,进入REPALCE替换模式
可以一直输入内容,复制光标所在位置内容
直到按下Esc键,退出到普通模式