用法:vim 或 vim filename
插入模式
操作:输入字符,并可以按光标移动输入字符的位置
模式切换
命令 | 操作 |
---|---|
a | 在光标后插入 |
i | 在光标所在位置插入 |
o | 在光标所在位置的下一行插入 |
Esc | 进入命令行模式 |
: | 进入行命令模式 |
命令行模式
执行除输入字符之外的所有操作,包括保存、搜索、移动光标等。
vim启动默认是在命令行,如果在编辑模式,需要使用Esc再输入 :w :q或:wq等
前提,需切换到命令行模式。注意组合命令行执行的顺序w->q->!
命令 | 操作 |
---|---|
:w | 保存文件 |
:w filename | 另存为filename |
:q | 退出vim |
:q! | 强行退出,放弃保存 |
搜索字符串
前提:切换到命令行
/string
用于向下搜索一个字符串
?string
用于向上搜索一个字符串
是否开启大小写敏感
:set ignorecase
或
:set noignorecase
替换字符串
前提:切换到命令行
语法::[range]s/pattern/string/[c,e.g,i];
这条命令将pattern所代表的字符串替换成string。开头的range用于指定替换作用的范围。如[1,10]表示从第一行到第十行,"1,$“表示从第一行到最后一行,也就是全文。全文也可以用”%"表示
标志 | 含义 |
---|---|
c | 每次替换前询问 |
e | 不显示错误信息 |
g | 替换一行中所有的匹配项(这个选项通常需要使用) |
i | 不区分大小写 |
如windows环境下的源码经常会有" ^M"的字符,要清除可以使用以下命令
:%s/^M$//g
删除、复制、粘贴
前提:需切换到命令行模式
命令 | 操作 |
---|---|
x | 删除光标所在位置的字符 |
dd | 删除光标所在的行,2dd 表示删除两行 |
D | 删除光标所在位置到行尾之间的所有字符 |
d | 普遍意义上的删除命令,和移动命令配合使用。例如dw表示删除光标所在位置到下一单单词词头之间所有的字符 |
yy | 复制光标所在行 |
y | 普遍意义上的复制命令,和移动命令配合使用。例如yw表示复制光标所在位置到下一个单词词头之间所有的字符 |
p | 在光标所在位置粘贴最近复制/删除的内容 |
撤销和重做
命令 | 操作 |
---|---|
u | 撤销一次操作 |
Ctrl+R | 重做被撤销的操作 |
特殊配置
# 语法高亮
:syntax on
# 自动缩进
:set autoindent
# 设置Tab键对应的空格数
:set shiftwidth=4