转载自:我的个人博客
简介
Vim是一个免费开源的文本编辑器,是在vi的基础上进化而来。当我们在编程时,大部分时间被用来读/更改代码,而非写。针对此,Vim被设计成了一种模态编辑器,它拥有许多种模式,对应于不同的修改文字的需求。
vim的基本模式有:
- Normal: 在文件中移动,修改
- Insert: 插入文本
- Replace: 更换部分文本
- Visual: 选择一块文字(按字/行/块)
- Command-line: 执行命令
在不同模式下,不同的键有着不同的涵义。比如,在Normal模式下,按键j
意味着向下移动一行,而在Insert模式下,它意味着在光标位置处插入字符j。
我们可以通过按下<ESC>
从任何模式退出,返回到Normal模式。而在Normal模式下,按i
即可进入Insert模式,按:
即可进入Command-line模式,按R
即可进入Replace模式,按v
即可进入Visual模式。
基本操作
1 插入文本
按下i
进入Insert模式,在光标处插入文本。可利用树表/方向键移动光标
2 执行命令
:q # 退出当前窗口
:w # 保存
:wq # 保存并退出
:e <filename> # 打开名为filename的文件
:ls # 显示在vim中打开的文件
:help <command> # 显示命令command的帮助文档
3 移动光标
- 基本:
hjkl
左,下,上,有 - 单词:
w
下一个单词的起始处,b
当前单词的首字母处,e
当前单词的末尾 - 行:
0
行的开始处,^
第一个非空白符的字符处,$
行的末尾 - 屏幕:
H
屏幕的最高处,M
屏幕的中间,L
屏幕的最底部 - 滚动:
^u
向上,^d
向下 - 文件:
gg
文件的开始,G
文件的结束 - 行数:
{number}<CR>
/{number}G
移动到第{number}行 - 查找字符:
f{char}
,t{char}
,F{char}
,T{char}
- 在当前行上 查找/向前查找/向后查找 字符{char}
- 查找正则表达式:
/{regex}
,n
/N
向后/向前移动
4 选择
- Visual:
v
- Visual Line:
V
- Visual Block:
^v
进入visual模式后,可利用移动光标的键移动光标,选择相应的区域
5 修改
i
进入Insert模式o
/O
d{motion}
删除xx动作对应的内容c{motion}
修改xx动作对应的内容- e.g.
cw
是修改当前单词 - 等效于
d{motion}
+i
- e.g.
x
删除当前字符 (等效于dl
)s
替换当前字符(等效于cl
)u
撤销更改,<C-r>
恢复更改 注:从i
到<ESC>
之间的所有动作算一次更改y
复制p
粘贴- …
6 计数
数字a+指令c,执行指令a次
3w
向前移动三个单词5j
向下移动五行7dw
删除七个单词
7 修饰符
i
– 内部, a
– 周围
ci(
改变小括号内的内容ci[
改变中括号内的内容da'
删除单引号中的内容,包括双引号