##################################################################
:wq //存盘退出
:q! //不存盘退出
:w //存盘
:e! //放弃修改文件内容,重新载入该文件编辑
:set nu //列出行号
:set nonu //去掉行号
:100 //跳转到100行
:f //显示文件名及路径
u //撤销
i //插入
/xxxx 如/data //查找关键字data,N : 上一个; n : 下一个
##################################################################
查找
##################################################################
G //光标移到文章最后
gg //光标移到文章开头
w //光标右移一个字至字首
b //光标左移一个字至字首
0 //光标移到行首, 数字0
$ //光标移到行尾
Ctrl+f //向文件尾翻一屏
Ctrl+b //向文件首翻一屏
##################################################################
复制/粘贴/删除
##################################################################
6dd //删除从光标所在行往下的6行
d0 //删至行首
d$ //删至行尾
dw //删除光标所在一个单词(字符串)
:n1,n2 d //将n1行到n2行之间的内容删除
多行删除:
1. 光标移到行首 shit+v
2. 上下移动光标选择需要删除的行
3. d //删除
4yy //复制从光标之行往下4行内容
yw //复制光标所在一个单词(字符串)
p //粘贴
多行复制:
1. 光标移到行首 shit+v
2. 上下移动光标选择需要复制的行
3. y //复制
4. p //粘贴
:g/p1/s//p2/g //将文件中所有p1均用p2替换
:n1,n2s/p1/p2/g //将第n1至n2行中所有p1均用p2替代
:n1,n2 co n3 //将n1行到n2行之间的内容拷贝到第n3行下
:n1,n2 m n3 //将n1行到n2行之间的内容移至到第n3行下
##################################################################
列操作
列首插入:
1. 光标移到要插入的第一行
2. ctrl+v
3. 左/右/上/下键选择(如果想要选择至文件最后一行,按G)
4. 按I (大写i) //光标会自动跳转到所选择行的第一行的行首,并会进入insert模式
5. 输入内容
6. ESC键
7. 保存
列删除:
1. 光标移到要插入的第一行
2. ctrl+v
3. 左/右/上/下键选择(如果想要选择至文件最后一行,按G)
4. 按d
5. 保存
列替换:
1. 光标移到要插入的第一行
2. ctrl+v
3. 左/右/上/下键选择(如果想要选择至文件最后一行,按G)
4. 按c //光标会自动跳转到所选择行的第一行的行首,并会进入insert模式
5. 输入内容
6. ESC键
7. 保存
块选择(Visual Block)
Vim的大部分命令都是以行为单位的,有时候想要删除、粘贴或复制特定区域,那么如何搞定一块范围呢?
一般模式下,块选择的按键意义 |
|
v |
字符选择,将光标经过的字符选择 |
V |
行选择,将光标经过的行选择 |
[Ctrl]+v |
矩形选择,可以用矩形的方式选择数据 |
y |
将选中地方复制起来 |
d |
将选中地方删除 |
小写v的效果,以第一行的s为光标起点,往下走:
大写V的效果,以第一行的s为光标起点,往下走:
以行为单位,只要经过的行都被选择。
[Ctrl]+v的效果,以第一行的s为光标起点,往下走:
矩形选择,起点为左上角,落点为右下角。按下y后,将光标移动到第一行末尾分号处后,p粘贴,效果如下图