EasyVim
简单强大的vim配置,熟练后可大大提高开发效率(VS Code的两倍以上)。
安装
安装过程需要从github下载很多插件,国内尽量挂VPN
git clone https://github.com/yuesong-feng/EasyVim
cd EasyVim/
sh ./install.sh
vim
:PlugInstall
tagbar显示和CTRL-]跳转需要安装ctags程序,推荐universal-ctags
写程序时,ALE相关功能建议安装LSP,C/C++推荐clangd
模式
快捷键 原指令 描述 ESC 返回到命令模式 i 在光标位置插入 a 在光标后一个位置插入 I 在行首插入 A 在行尾插入 o 在下方新建一行并插入 O 在上方新建一行并插入 s 删除光标字符并插入 S 删除光标所在行并插入 v 进入可视模式 V 进入可视行模式,此时会整行选中 CTRL-V 进入可视块模式,此时会竖行部分选中 R 进入替换模式
光标与搜索(也可在可视模式进行选中)
快捷键 原指令 描述 [count]k或j或h或l 上下左右移动光标,前面加数字表示移动多少单位 w 右移光标到下一个单词的开头 e 右移光标到单词的末尾 b 左移光标到单词的开头,已在开头则左移到前一个单词的开头 f{char} 光标移动到行内下一个char字符处 F{char} 光标移动到行内上一个char字符处 ;h或;l ^或$ 光标移动到第一个非空字符(或行尾) 0 左移光标到本行的开始 gg或G 光标移动到文件首(或文件尾) M或H或L 光标移动到屏幕中间一行/第一行/最后一行 zz或zt或zb 将当前行居中/显示为顶行/显示为第行 zh或zl 向左(右)滚动一行 zH或zL 向左(右)滚动半屏 CTRL-E或CTRL-Y 向下(上)滚动一行 ;j或;k CTRL-D或CTRL-U 向下(上)滚动半屏 CTRL-F或CTRL-B 向下(上)滚动整屏 /或? 正向(或反向)搜索,输入回车重复上一次搜索 n或N 下一个(或上一个)搜索结果 ;/ :noh 取消搜索结果高亮 CTRL-P 模糊搜索当前目录下的文件
编辑
快捷键 原指令 描述 u 撤销 CTRL-R 反撤销 x 删除当前字符 [count]r{char} 替换(count个)为char J 删除当前行尾的换行符 [count]dd 剪切count行,没有count表示剪切一行 dw/de/db 剪切到w/e/b指令处 视图模式 d 剪切选中区域 d{ ( 或 ) 或 [ 或 ] 或 { 或 } } 剪切到段首或段尾 di{ ( 或 ) 或 [ 或 ] 或 { 或 } } 剪切括号内的内容 d0 剪切到当前行的开始 d;h d^ 剪切到当前行首第一个非空字符 d;l D或d$ 剪切当前行到行尾 [count]yy 复制count行,没有count表示复制当前行 yw/ye/yb 复制到w/e/b指令处 视图模式 y 复制选中区域 y{ ( 或 ) 或 [ 或 ] 或 { 或 } } 复制到段首或段尾 yi{ ( 或 ) 或 [ 或 ] 或 { 或 } } 复制括号内的内容 y0 复制到当前行的开始 y;h y^ 复制到当前行首第一个非空字符 y;l y$ 剪切当前行到行尾 p 在当前位置后粘贴 P 在当前位置前粘贴 ;c 注释/反注释当前行或选中内容 ;w :w 保存 ;q :q 退出
窗口与跳转
快捷键 原指令 描述 CTRL-O或CTRL-I 返回光标上一个/下一个所在位置 ;n :NERDTreeToggle 打开目录 ;m :TagbarToggle 打开tag列表 ;[1-9] 转到第n个buffer Tab 下一个buffer S-Tab 上一个buffer ;b :bd 关闭当前buffer gt 跳转到下一个tab gT 跳转到上一个tab ;t :shell 打开新终端,在终端中使用CTRL-W使用vim窗口控制 CTRL {h或j或k或l} CTRL-W {h/j/k/l} 在多个窗口跳转 CTRL-W {H/J/K/L} 将当前窗口移动到某一方向 CTRL-W o 仅保留当前窗口,关闭其他所有窗口 CTRL-W = 将所有窗口的高度宽度设置为与当前窗口一样 CTRL-W [count]+或- 增加或减少[count]单位的当前窗口高度 CTRL-W _ 将当前窗口的高度设置为尽可能最高 CTRL-W [count]<或> 增加或减少[count]单位的当前窗口宽度 CTRL-W | 将当前窗口的宽度设置为尽可能最宽
C/C++、LSP、代码提示补全等
快捷键 原指令 描述 CTRL-] 跳转到定义,需要ctag生成tags文件 gf 跳转到头文件,找不到则需要在.vimrc中设置path ;g :ALEGoToDefinition 跳转到定义,需要LSP ;f :ALEFindReferences 查找引用出现的地方 ;s :ALESymbolSearch 查找系统符号 ;space :ALEHover 显示详细信息 ;rn :ALERename 重命名 完善中 完善中 完善中