vim常用高级快捷键,以及常用插件快捷键

vim常用高级技巧

vim高级快捷键及指令(原生快捷键,不含插件)

`<C-g>`显示光标所在文件中的位置,以及文件状态(即按住Ctrl,再按g)
`G`移动到文件末尾
`g`移动到文件头
number `G`移动到指定行数

`/` 向下查找匹配字符串,例如`/text`
`?`向上查找匹配字符串,例如`?text`
查找之后
`n`到下一个结果
`N`到上一个结果
`C-o`返回上一个查看位置
`C-i`返回下一个查看位置

`%`显示光标附近前后匹配的括号(写代码漏写括号时,这个排查很有用)

替换这行的第一个'old'字符为'new'
:/s/old/new/g
替换一整行的'old'字符为'new'
:/s/old/new/g
在指定行数区间替换字符
:#,#s/old/new/g 例如::25,50s/old/new/g
替换全文字符
:%s/old/new/g

`o`,创建新的下一行,并且光标移动到行首(知道这个指令再也不用按A+enter了!)
`rx`,即可替换当前光标所指字符为'x'
`R`,从光标开始,大规模的替换字符,直到esc退出。


分屏操作:
:He 在下边分屏浏览目录
:He! 在上边分屏浏览目录
:Ve  在左边分屏浏览目录
:Ve! 在右边分屏浏览目录

:sp  同一文件上下分为两个窗口(比如这个文件特别长的话,要看着前面写后面)
:vsp 同一文件左右分为两个窗口


多窗口浏览:
:Te 分页式浏览(Tab Explore)
gt 到下一页
gT 到前一页
[number] gt 跳到指定页
:tabs 查看打开的窗口和Tab的情况
Ctrl + w + r:向右或向下方交换窗口,而Ctrl + w + R则和它方向相反。
Ctrl + w + x:交换同列或同行的窗口的位置。vim默认交换当前窗口的与它下一个窗口的位置,
			   如果下方没有窗口,则试着与上一个窗口交换位置。亦可在此命令前加上数量,与制定的窗口交换位置。
:close #关闭当前窗口
:only #保留当前窗口,关闭其他窗口

缩进相关
【>>】向右给它进当前行 【<<】向左缩进当前行
【=】  – 缩进当前行 (和上面不一样的是,它会对齐缩进)
【=%】 – 把光标位置移到语句块的括号上,然后按=%,缩进整个语句块(%是括号匹配)
【G=gg】 或是 【gg=G】  – 缩进整个文件(G是到文件结尾,gg是到文件开头)

复制粘贴相关
按【v】 键进入选择模式,然后按h,j,k,l移动光标,选择文本,然后按 【y】 进行复制,按 【p】 进行粘贴。
【dd】剪切一行(前面加个数字可以剪切n行),【p】粘贴
【yy】复制一行(前面加个数字可以复制n行),【p】粘贴

使用Xshell连接Linux服务器,使用vi打开文件进行粘贴时,会自动在行首添加很多空格,导致格式错乱。可以用如下方法剞劂
在拷贝前输入:set paste (这样的话,vim就不会启动自动缩进,而只是纯拷贝粘贴)
拷贝完成之后,输入:set nopaste (关闭paste)

关键字补全
ctrl N
ctrl P

光标移动相关
【Ctrl + O】向后回退你的光标移动
【Ctrl + I 】向前追赶你的光标移动
这两个快捷键很有用,可以在Tab页和Windows中向前和向后trace你的光标键,这也方便你跳转光标。

Quickfix
直接在 文件地下输入make(若当前文件路径存在makefile)
然后输入:cw
(可方便的调试编译后make提示的错误,以后遇到了再调试)

保存会话
:mksession [Path]/[FileName].vim
再次打开会话
vim -S [Path]/[FileName].vim

NERDTree原生快捷键(目录树插件)

o 打开文件、目录或书签。
go 打开文件、目录或书签,但光标留在NERDTree中

t 在新 Tab 中打开选中文件/书签,并跳到新 Tab
T 在新 Tab 中打开选中文件/书签,但不跳到新 Tab
(结合上面的多窗口浏览特别好用,不知道vscode有没有这么nb的功能🦢)

i split 水平分裂新窗口打开选中文件,并跳到该窗口
gi split 水平分裂窗口打开选中文件,但不跳到该窗口
s vsplit 垂直分裂口打开选中文件,并跳到该窗口
gs vsplit 垂直分裂窗口打开选中文件,但不跳到该窗口

P跳到目录根节点
p跳到光标最近的根节点

K跳到当前目录的最上面
J跳到当前目录的最下面
<C-J>跳到下一层同级目录
<C-k>跳到上一层同级目录

C将当前目录变成目录根节点//这个好用卧槽,之前我都是上下级目录来回切换的,可麻烦了
u将根节点变成上一级目录
U将根节点变成上一级目录,同时变化前展开的目录保持不变

cd 当工作目录切换为选择节点
CD 将当前工作目录切换为根目录

r刷新光标当前层级目录
R刷新全部目录

m显示NERDTress菜单
I 切换是否显示隐藏文件
f 切换是否使用文件过滤器
F 切换是否显示文件
B 切换是否显示书签

q 关闭 NerdTree 窗口
A 将NERDTree窗口最大化,或最小化
? 切换是否显示 Quick Help

mark快捷键(高亮标签插件)

\m 高亮相同的单词,再按一次则取消高亮//本菜鸡这个用的最多
m[字母] 字母范围a-Z,将光标所在位置注上标签,a-z用于本文跳转,A-Z用于跨文件跳转
`[字母] 跳转到标签为[字母]的位置
还有很多跳转依据标签快速跳转的快捷键,因为用的少这里就不写了。

airline快捷键(状态栏插件)

都是切换主题,切换显示方式什么的。
在vim初始化的时候设置比较合适
所以这个插件不需要记忆快捷键

taglist快捷键(函数/宏/变量,大纲插件)

<CR>          跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
o             在一个新打开的窗口中显示光标下tag
<Space>       显示光标下tag的原型定义
u             更新taglist窗口中的tag
s             更改排序方式,在按名字排序和按出现顺序排序间切换
x             taglist窗口放大和缩小,方便查看较长的tag
+             打开一个折叠,同zo
-             将tag折叠起来,同zc
*             打开所有的折叠,同zR
=             将所有tag折叠起来,同zM
[[            跳到前一个文件
]]            跳到后一个文件
q             关闭taglist窗口
<F1>          显示帮助

ctags

ctags -R * //建立跳转关系
<ctrl-]>//调转到定义处
<ctrl-t>//返回跳转前的位置

posted on 2022-05-22 14:39  EasternCabbage  阅读(361)  评论(0编辑  收藏  举报

导航