Vim 键位整理
- 空格键
<cr>
回车<c-f>
表示 <ctrl>
和 f
的组合键
光标移动
h " 方向键 ←
j " 方向键 ↓
k " 方向键 ↑
l " 方向键 →
0 " 移动到行首
$ " 移动到行尾的回车符
g_ " 移动到行尾最后一个非空字符
gg " 移动到第一行
G " 移动到最后一行"
w " 移动到下一个单词开头
e " 移动到单词的结尾
b " 移动到单词的开头
" 不常用
nh " 向左移动 n 格,n 为数字
nl " 向右移动 n 格
nj " 向下移动 n 行
nk " 向上移动 n 行
n<space> " 向右移动 n 格,同 nl
H " 移动到当前屏幕第一行的第一个字符
M " 移动到当前屏幕中间行的第一个字符
+ " 移动到非空白字符的下一行
- " 移动到非空白字符的上一行
:n<cr> " 跳转到第 n 行
翻页
<c-f> " 向下移动一页
<c-d> " 向下移动半页
<c-u> " 向上移动半页
复制、粘贴、删除
x " 向后删除一个字符
nx " 向后删除 n 个字符
X " 向前删除一个字符
nX " 向前删除 n 个字符
dd " 删除当前行
ndd " 向下删除 n 行
d1G / dgg " 删除第一行到当前行的数据
dG " 删除当前行到最后一行的数据
d$ " 删除当前字符到行尾
D " 删除当前字符到行尾
d0 " 从行首删除到当前字符
yy " 复制当前行
Y " 复制当前行
nyy " 从当前行开始复制 n 行
y1G / ygg " 从第一行复制到当前行
yG " 从当前行复制到最后一行
y0 " 从行首复制到当前字符
y$ " 从当前字符复制到行尾
p, P " 黏贴,p 黏贴到光标下一行,P 黏贴到光标上一行
yyp " 复制并粘贴
ddp " 删除并粘贴,相当于下移当前行
"+y " 复制本文到系统剪切板
"+p " 粘贴系统剪切板到 Vim(不会影响文本格式)
插入
i " 在光标前进入 insert 模式
I " 在当前行左边第一个非空字符前进入 insert 模式,类似其他编辑器的 <c-a> 快捷键
A " 在当前行右边第一个非空字符前进入 insert 模式,类似其他编辑器的 <c-e> 快捷键
o " 在光标的下一行插入
O " 在光标的上一行插入
S " 删除当前行,并进入插入模式
vc " 删除当前字符,并进入 insert 模式
cc " 删除当前行,并进入插入模式
c0 " 删除光标位置到行首,并进入 insert 模式
cg_ " 删除光标位置到行尾最后一个非空字符,并进入 insert 模式
ce " 删除光标位置到单词末尾,并进入 insert 模式
cw " 删除光标位置到单词末尾,并进入 insert 模式
ciw " 删除当前单词,并进入 insert 模式
cip " 删除整个段落,并进入 insert 模式
ci( " 删除当前括号内的内容,并进入 insert 模式 适用于 ([{<'` 等所有成对的标签
替换
r " 替换单个字符,自动返回 normal 模式
R " 连续替换多个字符,手动 <esc> 返回 normal 模式
大小写
~ " 当前字符大小写反转
g~~ " 正行字符大小写反转
vu " 当前字符小写
vU " 当前字符大写
vU " 当前字符大写
viwu " 当前字符小写
viwU " 当前字符大写
ggguG " 文本所有字符小写
gggUG " 文本所有字符大写
:%s/\<./\u&/g " 将所有单词首字母大写(需要使用 :nohls 去掉高亮)
:%s/\<./\l&/g " 将所有单词首字母小写
:%s/.*/\u& " 将每行第一个字母大写
:%s/.*/\l& " 将每行第一个字母小写
多文件编辑
vim file1 file2 " 同时打开两个文件
:files " 查看现在编辑的文件列表,%a 代表正在操作哪个文件
1 %a "file1" line 1
2 "file2" line 0
:n " 跳到下一个文件,这里的 n 就是字母