摘要: 号称是 Vim 神级配置,这个是见仁见智的问题,姑且这么说吧。但想要优化 Vim 配置确实是非常方便。 这个配置仓储位于:https://github.com/amix/vimrc 安装很简单,首先是操作系统所需要的支持,包括 ack-grep 与 ctag...
号称是 Vim 神级配置,这个是见仁见智的问题,姑且这么说吧。但想要优化 Vim 配置确实是非常方便。
这个配置仓储位于:https://github.com/amix/vimrc
安装很简单,首先是操作系统所需要的支持,包括 ack-grep 与 ctags 。
sudo apt install -y ack universal-ctags vim
然后是 amix 的 Vim 配置:
git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh
常用命令
大部分是 Vim 常用的操作,有一些与这个配置有关。
全局查找文件(ctrlp插件)
- ctrl + f --打开全局文件搜索面板
- Esc --退出全局文件搜索面板
tab(标签)相关
- gt --后一个标签
- gT --前一个标签
- num + gt --跳转至第num个标签
- ,tl --上一次的标签
- :q --关闭标签
- :Te --新建标签,并打开当前文件目录
- ,tn --新建空白标签
目录树(NERD_tree插件)
- ,nn --打开目录树
- ,nn --关闭目录树
窗口相关
- ctrl + w + q --关闭窗口
- :q --关闭窗口,窗口只有一个tab的情况
- ctrl + w + w --切换窗口
- :sp --竖直方向上拆分当前窗口
- :vsp --水平方向上拆分当前窗口
如何打开一个工程
- 在某个工程的根目录下输入打开vim,则该vim窗口的文件操作默认为整个工程,比如全局搜索文件或字段
全局搜索字段(ack插件)
- ,g --打开全局字段搜索面板,默认大小写敏感,-i 不区分大小写,-w 全词匹配
- q --退出全局字段搜索面板
当前文件所在的目录
- :E --打开当前目录,一般用于切换当前目录的文件
- :Te --新建标签并打开当前目录,一般用于打开当前目录下的其它文件
查看最近打开的文件列表
- ,f --打开面板
- q --退出面板
当前文件下搜索
-
- --按下即可搜索光标所在的单词或当前选中的内容,不区分大小写
- gd --光标移动至单词,按下即可搜索该单词,区分大小写
- / --输入单词向下搜索
- ? --输入单词向上搜索,一般用于查log,配合G跳转至文件底部使食
显示行修改标志
- ,d --显示与不显示逐一切换
光标停留的位置记录
- ctrl + o --上一个时间点光标停留的位置
- ctrl + i --下一个时间点光标停留的位置
文件刷新,即重新载入
- :e --重新载入
- :e! --放弃当前修改,强制重新载入
- :e file_dir --载入 file_dir 路径下的某个文件
粘贴0号寄存器的内容
- ctrl + r + 0 --比如y复制选中的内容后粘贴到命令输入框
折叠命令
- za --打开或关闭当前折叠
- zM --关闭所有折叠
- zR --打开所有折叠
跳出双引号继续编辑 有些时候输入完字符串需要移动光标至双引号外继续输入 " --在 " 处输入 " ,即可将光标跳转至当前双引号之外
文件路径
- :f --查看当前文件路径
变量名补全
- ctrl + n --自动补全变量名,再次输入匹配下一个
代码块补全,只需输入部分代码,然后按tab键。lua为例:
- if + tab --if代码块
- forp + tab --for i,v in pairs() do end 代码块
- fori + tab --for i,v in ipairs() do end 代码块
- fun + tab --函数模板代码块
代码检错
- :ALEToggle --启动检错
代码注释
- gcc --注释当前行,再次输入则撤销注释
- num + gcc --注释num行
- gc --注释选中部分
取消搜索高亮
- :nohl
多窗口显示
- :sp --水平切分窗口
- :vsp --垂直切分窗口
vim 编辑相关
范围命令
- w --光标所在的位置至单词末尾的部分或一个单词,包括单词后的空格
- iw --光标所在位置的一个单词,不包括单词后的空格
- aw --光标所在位置的一个单词,包括单词后的空格
- b --与 w 相反
- e --end of word,至单词结尾
- $ --至当前行结尾
- 0 --至当前行开头
操作命令
- d: delete
- dd --删除当前行
- diw --删除光标所在单词
- dw --正向删除一个单词(光标后的部分)
- db --逆向删除一个单词(光标前的部分)
- d$ --删除光标所在的位置至本行末尾
- d0 --删除光标所在的位置至本行首部
- c: change, 与 d 的区别只在于操作后进入插入状态
- y: yank, 与 d 的区别在于跟范围命令组合后全部为复制操作
操作命令(少与范围命令组合)
- ~ --大小写字母转换
- s --删除一个字母,删除后进入插入模式
- x --删除一个字母,删除后处于命令模式
- r --即replace,修改替换一个字母,并且替换过后仍然处于命令模式
- R --修改替换无限多个在字母