断断续续接触Vim
也有几年了,从刚开始的用的很不习惯,到现在用不惯其它编辑器,真心觉得Vim
你用的时间越久越能感觉到它的好,快捷,方便,简洁,功能强大
Vim
由于功能太多,太强,已经脱离单纯的文本编辑器的范畴了,比如可以把Vim打造成一个IDE环境,但是对于大多数的人,Vim恐怕还仅仅是个普通的文本编辑器,甚至连趁手都说不上,所以这篇博客就说下最常用的Vim的快捷键,不常用的就不说了
打开与关闭
vim /path/to/file
vim +12 /path/to/file
(打开文件后处于第12行上)vim $ /path/to/file
(打开文件后处于最后一行上)q
(直接退出不保存)wq
(保存并退出)q!
(强制退出,不保存)shift+z+z
(保存退出)shift+z+q
(不保存退出)
移动光标
字符移动
1.h
: 左
2. j
: 下
3. k
: 上
4. l
: 右
5. 3h
: 左移3个
6. 4k
: 下移4行(其它类推)
行内移动
0
: 绝对行首^
: 行首的第一个非空字符处$
: 绝对行尾w
: 下个单词词首e
: 下个单词词尾b
: 上个单词词首3w
: 下3个单词词首5b
: 上5个单词词首(其它类推)
行间移动
H
: 文件头M
: 文件中间L
: 文件末尾10G
: 第10行4+
: 下4行=4j5-
: 上5行=5k{
: 上一段}
: 下一段
翻屏
ctrl+d
(向下翻半屏)ctrl+u
(向上翻半屏)ctrl+f
(向下翻一屏)ctrl+b
(向上翻一屏)
删除
单字符删除
x
: 向后删除一个字符X
: 向前删除一个字符
多个字符删除
d0
: 删除从当前字符到行首的所有d$
: 删除从当前字符到行尾的所有d^
: 删除从当前字符到行首第一个非空字符的所有3dh
: 删除从当前字符向左的3个字符5dk
: 删除当前行以上的5行(其余类推)dd
: 删除当前行dw
: 删除从当前向后的一个单词的词首de
: 删除从当前向后的一个单词词尾db
: 删除从当前向前的一个单词词首
复制
y0
: 复制从当前字符到行首的所有y$
: 复制从当前字符到行尾的所有y^
: 复制从当前字符到行首第一个非空字符的所有ydh
: 复制从当前字符向左的3个字符ydk
: 复制当前行以上的5行(其余类推)yy
: 复制当前行yw
: 复制从当前向后的一个单词的词首ye
: 复制从当前向后的一个单词词尾yb
: 复制从当前向前的一个单词词首
替换
r
: 替换当前的单个字符R
: 从当前开始一直替换,直到ESC按下
粘贴
p
: 粘贴最近一次复制/删除的内容(非整行粘贴至光标所在字符之后, 整行粘贴至光标所在字符下一行)P
: 粘贴最近一次复制/删除的内容(非整行粘贴至光标所在字符之前, 整行粘贴至光标所在字符上一行)
撤销
u
: 撤销所做的更改(比如删除等)ctrl+r
: 撤销上一次撤销的(比如你撤销错了)
重复
.
: 重复上一次编辑(比如重复删除,粘贴之类的)
模式
模式切换
- 编辑模式 —-> 命令模式 (ESC)
- 命令模式 —-> 末行模式 (:)
- 末行模式 —-> 命令模式(ESC)
末行模式
10,20d
:删除10-20行., +5y
: 复制当前行和向下5行的内容.,$-1d
: 删除当前行和直到倒数第二行的内容
查找
/patten
: 按照匹配的模式,从当前行向后查找?pattern
: 按照匹配的模式,从当前行向前查找- 查找到之后,
n
: 下个匹配内容,N
: 上个匹配内容
替换
同sed
一样
1. 10, $-1s/he/HE/g
(从当前行到倒数第二行,把所有的he替换为HE)
我常用的基本就这些,其它的大家自己去网上照资料吧,个人感觉应该够用!