![](https://i-blog.csdnimg.cn/blog_migrate/6d7dffb9f3bd7d0263fbde88a5aca26d.png)
光标移动
hjkl:上下左右
w:下一个单词开头
b:本单词或上一个单词开头
e:本单词或下一个单词结尾
ge:上一个单词结尾
0:行首
^:从行首开始第一个非空字符
$\ :行尾
gg:第一行
G:最后一行
f{char}:下个{char}所在位置
F{char}:反向移动到上一个{char}所在位置
t{char}:下个{char}的前一个字符的位置
T{char}:反向移动到上个{char}的后一个字符的位置
;:重复上一次的字符查找操作
,:反向重复上次的查找命令
选择
iw / aw 选中单词
i( / a( / ib / ab
i{ / a{ / iB / aB
i" / a"
i' / a'
i` / a
i< / a<
i[ / a[
it / at 标签
is / as 句子
ip / ap 段落操作符
可视模式可以帮助快速选中
shift+< 选中部分整体缩小缩进
shift+> 选中部分整体增加缩进
shift+= 自动排版
操作符
d(delete) 删除 dd 删除一行
c(change) 修改(删除并进入插入模式)
y(yank) 复制 yy复制一行
v(visual) 选中并进入可视模式
p 粘贴
u 撤销动作+操作符
ciw 选中单词删除并进入插入模式
yiw 选中并复制单词
diw 选中并删除单词
ci< 选中被<>包围的单词并修改
ndd/cc/yy 向下删除/修改/复制n行,包括当前行
d/c/yf{char} 删除/修改/复制到向后的char字符
d/c/y^/$ 删除/修改/复制到开头/结尾
d/cie 删除/修改整个文件
文件内全部替换
:%s#abc#123#g --注:把abc替换成123
(如文件内有#,可用/替换,:%s/abc/123/g)
(或者: %s/str1/str2/g 用str2替换文件中所有的str1)
文件内局部替换
:20,30s#abc#123 (注:把20行到30行内abc替换成123)
(如文件内有#,可用/替换,:%s/abc/123/g)
3 ) 当前行替换 : s/line/lines/g (表示将光标所在当前行的line全局替换为lines)
快速替换(推荐) 1 /替换字符串 2 cw 输入替换的字符串 3 esc , 然后n或N, 3 . (重复替换)
:%s#\<abc>#def 对abc进行全字替换
切换大小写
~ 将光标下的字母改变大小写
3~ 将光标位置开始的3个字母改变大小写
g~ 改变当前行字母的大小写
gUU 将当前行的字母改成大写
guu 将当前行的字母改成小写
gUaw(gUiw) 将光标下的单词改成大写
guaw(guiw) 将光标下的单词改成小写
跳标签页
gt:下一个标签页
gT:上一个标签页
2gt:下2个标签页
gd:调到定义
gh:显示帮助浮动弹窗
C+0:打开左侧边栏,选中文件按空格仅查看,按回车或L打开并进入编辑模式
C+0,1,2:从左至右切换vscode的窗口
_vimrc 配置文件添加如下代码:
nnoremap <F3> :w<CR> :!g++ % -o %< -Wall -std=c++14 && %< <CR>
inoremap <F2> <ESC>I//
inoremap <F1> <ESC>I<DEL><DEL><DEL>
set ts=4
set nu
set ai
set mouse=a
inoremap { {<CR>}<ESC>O<BACKSPACE>
inoremap ' ''<ESC>i
inoremap ( ()<ESC>i
inoremap " ""<ESC>i
inoremap [ []<ESC>i
inoremap ` {}<ESC>i
colorscheme torte
set guifont=Consolas:h18:cANSI