将最常用的命令总结在前面,便于查询,分步的教程请往后看:
常用操作
光标移动(Normal模式下)
整个文本内移动
gg 移动到整个文本首行
G 移动到整个文本行尾
NG 移动到指定行
Ctrl+o 回到上次编辑的地方
Ctrl+i 回到下次编辑的地方
一行内移动
0 移动到行头
$ 移动到行尾
^ 移动到本行第一个不是blank字符的位置(所谓blank字符就是空格,tab,换行,回车等)
g_ 移动到本行最后一个不是blank的位置
/pattern 搜索 pattern 的字符串(如果搜索出多个匹配,可按n键到下一个)
对单词进行操作
e 移动到光标所在单词词尾(字母、数字、下划线被认为是以一个单词,也就是变量)
E 移动到光标所在单词词尾(以x空格区分单词)
w/W 移动到下一个单词的开头bbbbbb
b/B 移动到光标所在单词的开头
ge 移动到上一个单词结尾
fa 移动到下一个为a的字符处,你也可以fs到下一个为s的字符
ta 移动到下一个为a的字符前一个(注意与f的区别)
3fa 在当前行查找第三个出现的a
F 和 T 和 f 和 t 一样,只不过是相反方向
插入
命令 | 说明 |
---|---|
i | 在当前光标处插入 |
I | 在行首插入 |
a | 在光标后插入 |
A | 在行位插入 |
o | 在当前行下插入一个新行 |
O | 在当前行上插入一个新行 |
删除
x 删除光标所在字符
X 删除光标前字符
D 从光标开始处删完整行
dd 删除整行
de 删除到单词词尾,可以用来删除一整个单词
d0 删除到单词开头
dw 删除到下一个单词开头,不会留下空格
dE,dW 相应类似vim
dt“ 删除到下一个双引号的位置,双引号可以替换成其他字符
复制与粘贴
y 拷贝
yy 拷贝整行,3yy拷贝三行
y^ 拷贝至行首
yw 拷贝一个单词
配合光标发挥强大功能
除了y会拷贝还有一些情况下也会发生拷贝
d (删除) (利用这个可以实现剪切的效果,先删除后粘贴)
v (可视化的选择)
gU (变大写)
gu (变小写)
等等
p(小写) 粘贴至光标后
P(大写) 粘贴至光标前
ddp 交换上下两行
查找与替换
?<要查找的字符串> 想上查找,n查找下一个,N查找上一个
/ <要查找的字符串> 想下查找
\* 向上查找所在游标处单词,n查找下一个,N查找上一个
\# 向下查找所在游标处单词
g\* 部分符合单词
g\# 部分符合单词即可
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
:s/vivian/sky/g 替换当前行所有 vivian 为 sky
r + <待替换的字母> 将游标所在的字母替换为指定字母
R 从光标处开始连续替换字母,按esc结束
~ 大小写互换
撤销与重做
<Undo> 或 u 撤销 [count] 次更改。
:u[ndo] 撤销一次更改,中括号内为可有可无。
:u[ndo] {N} 转到改变号 {N} 之后。
CTRL-R 重做 [count] 次被撤销的更改。
U 撤销最近对特定行所作的一系列更改
排版
>> 整行向右缩进
<< 整行向左缩进
:set shiftwidth=2 设定缩进为2个字符
:ce 居中
:ri 靠右
:le 靠左
vim模式介绍
Vim具有6种基本模式和5种派生模式,我们这里只简单介绍下6种基本模式:
- 普通模式(Normal mode)
在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。
Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个”d”的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的”j”键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效的进行文本编辑。
在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。
- 插入模式(Insert mode)
在这个模式中,大多数按键都会向文本缓冲中插入文本。大多数新用户希望文本编辑器编辑过程中一直保持这个模式。
在插入模式中,可以按ESC键回到普通模式。
- 选择模式(Select mode)
这个模式和无模式编辑器的行为比较相似(Windows标准文本控件的方式)。这个模式中,可以用鼠标或者光标键高亮选择文本,不过输入任何字符的话,Vim会用这个字符替换选择的高亮文本块,并且自动进入插入模式。
- 可视模式(Visual mode)
这个模式与普通模式比较相似。但是移动命令会扩大高亮的文本区域。高亮区域可以是字符、行或者是一块文本。当执行一个非移动命令时,命令会被执行到这块高亮的区域上。Vim的”文本对象”也能和移动命令一样用在这个模式中。
- 命令行模式(Command line mode)
在命令行模式中可以输入会被解释成并执行的文本。例如执行命令(:键),搜索(/和?键)或者过滤命令(!键)。在命令执行之后,Vim返回到命令行模式之前的模式,通常是普通模式。
- Ex模式(Ex mode)
这和命令行模式比较相似,在使用:visual命令离开Ex模式前,可以一次执行多条命令。
模式之间的切换
打开vim默认进入的是普通模式,普通模式按i或a键进入插入模式,插入模式按Esc进入普通模式,普通模式按:
进入命令行模式
退出VIM
- 命令行模式下退出
d命令 | 说明 |
---|---|
:q | 退出 |
:q! | 强制退出不保存 |
:wq | 保存并退出 |
:wq! | 强制保存并退出 |
:w filename | 保存到指定路径 |
:w! filename | 保存到指定的文件中,如果文件已经存在,则覆盖 |
:wq! filename | 强制保存并退出 |
- 普通模式下退出
Shift + zz