Vim备忘单
全局
:help keyword - 打开关键字帮助
:saveas file - 另存为
:close - 关闭当前窗口
K - 在光标下打开单词的手册页
光标
h - 左移光标
j - 下移光标
k - 上移光标
l - 右移光标
H - 移动到当前页面顶部
M - 移动到当前页面中间
L - 移动到当前页面底部
w - 移动到下个单词开头
W - 移动到下个单词开头(单词含标点)
e - 移动到下个单词结尾
E - 移动到下个单词结尾(单词含标点)
b - 移动到上个单词结尾
B - 移动到上个单词结尾(单词含标点)
%- 移动到匹配字符(默认支持对:'()','{}','[]' - :h matchpairs在vim中使用以获取更多信息)
0 - 移动到行首
^ - 移动到行首的非空白符
$ - 移动到行尾
g_ - 移动到行内最后一个非空白符
gg - 移动到文件第一行
G - 移动到文件最后一行
5G - 移动到第五行
fx - 移动到字符x下次出现的位置
tx - 移动到字符x下次出现的位置的前一个字符
Fx - 跳转到先前出现的角色x
Tx - 跳转到之前出现的角色x之后
; - 重复之前的f,t,F或T移动
, - 向后重复之前的f,t,F或T移动
} - 移动到下一个段落(当编辑代码时则为函数/代码块)
{ - 移动到上一个段落(当编辑代码时则为函数/代码块)
zz - 移动屏幕使光标居中
Ctrl+ e- 将屏幕向下移动一行(不移动光标)
Ctrl+ y- 向上移动一行屏幕(不移动光标)
Ctrl+ b- 向后滚动一屏
Ctrl+ f- 向前滚动一屏
Ctrl+ d- 向前滚动半屏
Ctrl+ u- 向后滚动半屏
Tip命令前追加数字表示命令的重复次数,4j比如表示向下移动四行
插入模式 - 插入/追加文本
i - 从光标前开始插入字符
I - 从行首开始插入字符
a - 从光标后开始插入字符
A - 从行尾开始插入字符
o - 在当前行之下另起一行,开始插入字符
O - 在当前行之上另起一行,开始插入字符
ea - 从当前单词末尾开始插入
Esc - 退出插入模式
编辑
r - 替换当前字符
J - 将下一行合并到当前行
gJ - 将下面的行连接到当前的行,其间没有空格
gwip - 回流段
cc - 清空当前行,然后进入插入模式
C - 更改(替换)到行尾
c$ - 从光标位置开始,修改当前行
ciw - 改变(替换)整个单词
cw - 从光标位置开始,修改单词
s - 删除当前字符,然后进入插入模式
S- 清空当前行,然后进入插入模式(同cc)
xp - 当前字符后移
u - 撤销
Ctrl+ r- 重复
. - 再次执行上个命令
选择文本(可视化模式)
v- 进入可视化模式,移动光标高亮选择,然后可以对选择的文本执行命令(比如y- 复制)
V - 进入可视化模式(行粒度选择)
o - 切换光标到选择区开头/结尾
Ctrl+ v- 进入可视化模式(矩阵选择)
O - 切换光标到选择区的角
aw - 选择当前单词
ab - 选择被()包裹的区域(含括号)
aB - 选择被{}包裹的区域(含花括号)
ib - 选择被()包裹的区域(不含括号)
iB - 选择被{}包裹的区域(不含花括号)
Esc - 退出可视化模式
可视化模式命令
> - 向右缩进
< - 向左缩进
y - 复制
d - 剪切
~ - 大小写切换
寄存器
:reg - 显示寄存器内容
"xy - 复制内容到寄存器x
"xp - 粘贴寄存器x中的内容
Tip寄存器被存储在〜/ .viminfo中,在下次重启vim时仍会加载
Tip寄存器0存储上一次复制的值
标记
:marks - 标记列表
ma - 设置当前位置为标记a
`a - 跳转到标记a的位置
y`a - 复制当前位置到标记a的内容
宏
qa - 录制宏a
q - 停止录制宏
@a - 执行宏a
@@ - 重新执行上次执行的宏
剪切,复制,粘贴
yy - 复制当前行
2yy - 复制2行
yw - 复制当前单词
y$ - 复制,从光标位置到行末
p - 在光标后粘贴
P - 在光标前粘贴
dd - 剪切当前行
2dd - 剪切2行
dw - 剪切当前单词
D - 剪切,从光标位置到行末
d$- 剪切,从光标位置到行末(同D)
x - 剪切当前字符
退出
:w - 保存
:w !sudo tee % - 使用sudo保存当前文件
:wq或:x或ZZ- 保存并退出
:q - 退出(修改未保存时警告)
:q!或ZQ- 不保存强制退出
:wqa - 在所有选项卡上写入(保存)并退出
查找/替换
/pattern - 查找pattern
?pattern - 向上查找pattern
\vpattern- pattern中的非字母数字字符被视为正则表达式特殊字符(不需转义字符)
n - 查找下一个
N - 查找上一个
:%s/old/new/g - 替换全部
:%s/old/new/gc - (逐个)替换
:noh - 移除搜索结果的高亮显示
多文件搜索
:vimgrep /pattern/ {file} - 在多个文件中搜索 pattern
例如 :vimgrep /foo/ **/*
:cn - 移动至下一个
:cp - 移动至上一个
:copen - 打开搜索结果列表
多文件
:e file - 新建缓冲区打开文件名
:bnext或:bn- 切换到下个缓冲区
:bprev或:bp- 切换到上个缓冲区
:bd - 关闭缓冲区
:ls - 列出所有打开的缓冲区
:sp file - 新建缓冲区打开filename并水平分割窗口
:vsp file - 新缓冲区打开filename并垂直分割窗口
Ctrl+ ws- 水平分割窗口
Ctrl+ ww- 在窗口间切换
Ctrl+ wq- 关闭窗口
Ctrl+ wv- 垂直分割窗口
Ctrl+ wh- 切换到右侧窗口
Ctrl+ wl- 切换到左侧窗口
Ctrl+ wj- 切换到下侧窗口
Ctrl+ wk- 切换到上侧窗口
标签
:tabnew或:tabnew file- 在新标签中打开文件
Ctrl+ wT- 将窗口变成标签
gt或:tabnext或:tabn-切换到下一个标签
gT或:tabprev或:tabp-切换到上一个标签
#gt- 切换到第#个标签
:tabmove #- 移动标签到第#位(下标从0开始)
:tabclose或:tabc- 关闭当前标签
:tabonly或:tabo- 关闭其他标签
:tabdocommand - 在所有标签中执行命令(例如:tabdo q关闭所有标签)
有问题请加博主微信进行沟通!
全部评论