vim快捷键

https://github.com/chxuan/vimplus

vim快捷键

1:插件相关

,+ n //打开/关闭代码资源管理器
,+ t //打开/关闭函数列表
,+ a //h .cpp 文件切换
,+ u //转到函数声明
,+ U //转到函数实现
,+ o //打开include文件
,+ y //拷贝函数声明
,+ p //生成函数实现
,+ w //单词跳转
,+ f //搜索~目录下的文件
,+ F //搜索当前目录下的文本
,+ g //显示git仓库提交记录
,+ G //显示当前文件提交记录
,+ gg //显示当前文件在某个commit下的完整内容
,+ ff //语法错误自动修复(FixIt)
ctrl + p //切换到上一个buffer
ctrl + n //切换到下一个buffer
, + d //删除当前buffer
, + D //删除当前buffer外的所有buffer
vim //运行vim编辑器时,默认启动开始页面
F5 //显示语法错误提示窗口
F7 //启用markdown实时预览
F8 //关闭markdown实时预览
F9 //显示上一主题
F10 //显示下一主题
, + l //按竖线对齐
, + = //按等号对齐
Ya //复制行文本到字母a
Da //剪切行文本到字母a
Ca //改写行文本到字母a
rr //替换文本
, + r //全局替换,目前只支持单个文件
gcc //注释行代码
gcap //注释段落
vif //选中函数内容
dif //删除函数内容
cif //改写函数内容
vaf //选中函数内容(包括函数名 花括号)
daf //删除函数内容(包括函数名 花括号)
caf //改写函数内容(包括函数名 花括号)
fa //查找字母a,然后再按f键查找下一个
ctrl + c ctrl + o //Emoji?补全

2:插入模式

i //在光标处进入插入模式
I //在行首进入插入模式
a //在光标后进入插入模式
A //在行尾进入插入模式
o //在下一行插入新行并进入插入模式
O //在上一行插入新行并进入插入模式
gi //进入到上一次插入模式的位置
//退出插入模式

3:缓存操作

:e //新建buffer打开文件
:bp //切换到上一个buffer
:bn //切换到下一个buffer
:bd //删除当前buffer

4:窗口操作

:sp //横向切分窗口并打开文件
:vsp //竖向切分窗口并打开文件
ctrl + w + h //跳到左边的窗口
ctrl + w + j //跳到下边的窗口
ctrl + w + k //跳到上边的窗口
ctrl + w + l //跳到右边的窗口
ctrl + w + c //关闭当前窗口
ctrl + w + o //关闭其他窗口
:only //关闭其他窗口

5:光标移动

h //上下左右移动
j //上下左右移动
k //上下左右移动
l //上下左右移动
0 //光标移动到行首
^ //跳到从行首开始第一个非空白字符
$ //光标移动到行尾
ctrl + o //跳到上一个位置
ctrl + i //跳到下一个位置
ctrl + b //上一页
ctrl + f //下一页
ctrl + u //上移半屏
ctrl + d //下移半屏
H //调到屏幕顶上
M //调到屏幕中间
L //调到屏幕下方
:n //跳到第n行
w //跳到下一个单词开头(标点或空格分隔的单词)
W //跳到下一个单词开头(空格分隔的单词)
e //跳到下一个单词尾部(标点或空格分隔的单词)
E //跳到下一个单词尾部(空格分隔的单词)
b //上一个单词头(标点或空格分隔的单词)
B //上一个单词头(空格分隔的单词)
ge //上一个单词尾
% //在配对符间移动, 可用于()、{}、[]
gg //到文件首
G //到文件尾
fx //跳转到下一个为x的字符
Fx //跳转到上一个为x的字符
tx //跳转到下一个为x的字符前
Tx //跳转到上一个为x的字符前
; //跳到下一个搜索的结果
[[ //跳转到函数开头
]] //跳转到函数结尾

6:文本编辑

r //替换当前字符
R //进入替换模式,直至 ESC 离开
s //替换字符(删除光标处字符,并进入插入模式,前可接数量)
S //替换行(删除当前行,并进入插入模式,前可接数量)
cc //改写当前行(删除当前行并进入插入模式),同 S
cw //改写光标开始处的当前单词
ciw //改写光标所处的单词
caw //改写光标所处的单词,并且包括前后空格(如果有的话)
ct, //改写到逗号
c0 //改写到行首
c^ //改写到行首(第一个非零字符)
c //选中当前位置到行末
vt, //选中到逗号
viw //选中当前单词
vi) //选中小括号内的东西
vi] //选中中括号内的东西
viB //选中’{}'中的内容
vis //选中句子中的东西
gv //重新选择上一次选中的文字
:set paste //允许粘贴模式(避免粘贴时自动缩进影响格式)
:set nopaste //禁止粘贴模式
"?yy //复制当前行到寄存器 ? ,问号代表 0-9 的寄存器名称
"?p //将寄存器 ? 的内容粘贴到光标后
"?P //将寄存器 ? 的内容粘贴到光标前
:registers //显示所有寄存器内容
:[range]y //复制范围,比如 :20,30y 是复制20到30行,:10y 是复制第十行
:[range]d //删除范围,比如 :20,30d 是删除20到30行,:10d 是删除第十行
ddp //交换两行内容:先删除当前行复制到寄存器,并粘贴

7:文件操作

:w //保存文件
:w //按名称保存文件
ZZ //保存文件(如果有改动的话),并关闭窗口
:e //打开文件并编辑
:saveas //另存为文件
:r //读取文件并将内容插入到光标后
:r !dir //将dir命令的输出捕获并插入到光标后
:close //关闭文件
:q //退出
:q! //强制退出
:wa //保存所有文件
:cd //切换Vim当前路径
:new //打开一个新的窗口编辑新文件
:enew //在当前窗口创建新文件
:vnew //在左右切分的新窗口中编辑新文件
:tabnew //在新的标签页中编辑新文件

8:使用外部程序

! //告诉vim正在执行一个过滤操作
!5Gsort //使用外部sort命令对1-5行文本排序
!! //对当前行执行过滤命令
!!date //用"date"的输出代替当前行

9:宏录制

qa //开始录制名字为a的宏
q //结束录制宏
@a //播放名字为a的宏
100@a //播放名字为a的宏100次
:normal@a //播放名字为a的宏直到自动结束

10:实用命令

/pattern //从光标处向文件尾搜索 pattern
?pattern //从光标处向文件头搜索 pattern
n //向同一方向执行上一次搜索
N //向相反方向执行上一次搜索

                      //向前搜索光标下的单词 

1
//向后搜索光标下的单词
😒/p1/p2/g //替换当前行的p1为p2
:%s/p1/p2/g //替换当前文件中的p1为p2
:%s//p2/g //替换当前文件中的p1单词为p2
:%s/p1/p2/gc //替换当前文件中的p1为p2,并且每处询问你是否替换
:10,20s/p1/p2/g //将第10到20行中所有p1替换为p2
:%s/1\2/3/123/g //将“1\2/3” 替换为 “123”(特殊字符使用反斜杠标注)
:%s/\r//g //删除 DOS 换行符 ^M
:g/^\s*/ d / / 删 除 空 行 : g / t e s t / d / / 删 除 所 有 包 含 t e s t 的 行 : v / t e s t / d / / 删 除 所 有 不 包 含 t e s t 的 行 : : /d //删除空行 :g/test/d //删除所有包含 test 的行 :v/test/d //删除所有不包含 test 的行 :%s/^/test/ //在行首加入特定字符(也可以用宏录制来添加) :%s//d//删除空行:g/test/d//删除所有包含test的行:v/test/d//删除所有不包含test的行::/test/ //在行尾加入特定字符(也可以用宏录制来添加)
:sort //排序
:g/^(.+)KaTeX parse error: Undefined control sequence: \n at position 1: \̲n̲\1/d //去除重复行(先…// //删除每行尾10个字符

11:帮助

:h tutor //入门文档
:h quickref //快速帮助
:h index //查询Vim所有键盘命令定义
:h summary //帮助你更好的使用内置帮助系统
:h pattern.txt //正则表达式帮助
:h eval //脚本编写帮助
:h function-list //查看VimScript的函数列表
:h windows.txt //窗口使用帮助
:h tabpage.txt //标签页使用帮助
:h tips //查看Vim内置的常用技巧文档
:h quote //寄存器
:h autocommand-events //所有可能事件
:h write-plugin //编写插件

12:其他

vim -u NONE -N //开启vim时不加载vimrc文件
vimdiff file1 file2 //显示文件差异
, + e //快速编辑vimrc文件
, + s //重新加载vimrc文件
, + h //打开vimplus帮助文档
, + H //打开当前光标所在单词的vim帮助文档
, , + i //安装插件
, , + u //更新插件
, , + c //删除插件

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务