什么是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键,退出到普通模式

1243

被折叠的 条评论
为什么被折叠?



