1 vim模式
- 编辑模式(命令模式)
- 输入模式
- 末行模式
1.1 模式转换
1.1.1 命令模式 ——》 输入模式
i
:在当前光标所在字符的前面,转为输入模式;a
:在当前光标所在字符的后面,转为输入模式;o
:在当前光标所在行的下方,新建一行,并转为输入模式;I
:在当前光标所在行的行首,转换为输入模式;A
在当前光标所在行的行尾,转换为输入模式;O
:在当前光标所在行的上方,新建一行,并转为输入模式
1.1.2 输入模式——》命令模式
ESC
1.1.3命令模式——》末行模式
:
2 打开文件
vim /path/to/somefile
1. vim +#
:打开文件,并定位于第#行
2. vim +
,打开文件,定位于最后一行
3. vim +/PATTERN
:打开文件,定位至第一次被PATTERN匹配到的行的行首
3 关闭文件
(1)末行模式关闭文件
- :q
,退出
- :wq
,保存并退出
- :q!
,不保存并退出
- :w
,保存
- :w!
,强行保存
(2)命令模式下退出
- ZZ
,保存并退出
4 移动光标(命令模式)
4.1 逐字符移动
h
,左l
,右j
,下k
,上#h
,移动#个字符
4.2 以单词为单位移动
w
, 移至下一个单词的词首(用的多一些)e
, 跳至当前或下一个单词的词尾b
,跳至当前或前一个单词的词首
4.3 行内跳转
0
,绝对行首^
,行首的第一个非空白字符(用的多)$
,绝对行尾(用的多)
4.4 行间跳转(用得少)
#G
,跳转到第#行G
,最后一行- 末行模式下,直接给出行号即可
5 翻屏(用的少)
-Ctrl+f
,向下翻一屏
-Ctrl+b
,向上翻一屏
-Ctrl+d
,向下翻半屏
-Ctrl+u
,向上翻半屏
6 删除单个字符
-x
,删除光标所在处的单个字符
-#x
, 删除光标所在处及向后的共#个字符
7 删除命令:d
(整行删除)
- d命令和跳转命令组合使用
dd
,删除当前光标所在行(用的多)#dd
,删除包括当前光标所在行在内的#行;
8 末行模式下
.
,表示当前行$
,最后一行+#
,向下的#行
9 复制命令y
用法和 d
相同。
10 粘贴命令 p
-p
,如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面;
-P
,如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面;
11 查找
/PATTERN
?PATTERN
n
,下一个N
,上一个
12 查找并替换
- 在末行模式下使用
s
命令 ADDR1,ADDR2s@PATTERN@string@gi
(g-gloabl,i-ignore,忽略大小写)1,$s@after@before@g
(从第一行到最后一行,将after替换为before,)
13 撤销命令
u
,撤消前一次的编辑操作,连续u命令可撤消此前的n次编辑操作#u
,直接撤消最近#次编辑操作Ctrl+r
,撤消最近一次撤消操作
14 和shell的交互
:!COMMAND
15 高级部分
15.1 显示行号
:set number
或者:set nu
:set nonu
15.2 自动缩进
:set autoindent
,set ai
set noai
16 配置文件
/etc/vimrc
/etc/virc