编辑
字符
x 删除当前光标下的字符
X 删除当前光标左边的字符
s 修改一个字符
i 在光标之前插入
a 在光标之后插入
单词
diw 删除光标所在单词,不包括空白字符
daw 删除光标所在单词,包括空白字符
dw 从当前位置删除到下个单词词首
行
D 删除到行尾的内容
C 修改到行尾的内容
S 修改一整行
dd 删除一行
yy 复制一行
o 在当前行下插入一空行
O 在当前行上插入一空行
A 在当前行首插入
I 在当前行尾插入
撤销及重复
. 重复上一命令
u 撤销改动
ctrl/control + r 重做(撤销上一次撤销)
编辑
p 粘贴到光标之前
P 粘贴到光标之前
d 剪切
文本替换
:s/x/y/ 将当前行出现的第一个x替换为y
:s/x/y/g 将当前行出现的所有x替换为y
:%s/x/y/g 将文件中出现的所有x替换为y
:%s/x/y/gc 将文件中出现的所有x替换为y,每次替换前要求确认
保存和退出
:w 保存
:q 退出
ZZ / :wq / :x 保存退出
ZQ / :q! 不保存退出
:w filename 另存为
状态
ctrl/control + g 当前行信息
g ctrl/control + g 字数统计
移动
单词
w 下一个单词第一个字符
W 下一个长单词第一个字符
单词和长单词区别
举个例子:例如 hello world、hello_world和hello-world,用上述三个例子试一下,会发现区别
w表示前进到“单词”的开头。在Vim中,“单词”表示:
字母数字和下划线的序列(正则表达式:\w+)或
其他非空白字符的序列(正则表达式:[^\s\w]+)
W意味着前进到“WORD”的开头。在Vim中,“WORD”表示:
一系列非空白字符(正则表达式:\S+)
e 下一个单词最后一个字符
E 下一个长单词最后一个字符
b 前一单词第一个字符
B 前一长单词第一个字符
ge 前一个单词的最后一个字符
行
0 / ^ / Home键 到行首
$ / End键 到行尾
gg 第一行
G 最后一行
XG 到第X行
句
( 到句首
) 到句尾
段
{ 到段首
} 到段尾
屏幕
ctrl/control + y 向上滚屏
ctrl/control + e 向下滚屏
ctrl/control + u 向上滚动半屏
ctrl/control + d 向下滚动半屏
ctrl/control + b 向上滚动整屏
ctrl/control + f 向下滚动整屏
跳转
fx 跳到下一个出现x地方
ctrl/control + ] 跳转到一个主题
ctrl/control + o 跳回原来的位置
设置
:set autoindent 自动缩进
:syntax enable 语法高亮
:set nul 显示行号
:set hlsearch 查找结果高亮显示
:set nohlsearc / :set noh / :noh 取消高亮显示
:set wrap 自动换行
:set insearch 立即显示当前输入匹配的
:set ignorecase 忽略大小写
评论区