[TOC]
这是一款具有极强针对性的Vim配置,可以作为C-family、HTML、CSS、JS这几种语言的开发编辑器。该配置使用尽可能少的插件,在保证Vim本身作为一个文本编辑器的简洁、迅速特性的前提下,使其功能向IDE(除编译、调试功能)靠拢,包括语法检查、文件导航等。
需要nvim 3.0
及以上版本,nodejs
,yarn
,gcc 7.2
及以上版本并安装以下库:
sudo apt install cmake libncurses-dev python3-pip python3-dev clang-format
请不要使用sudo
来启动脚本!
# 将$NDSLVIM_BASE替换为仓库的路径
cd $NDSLVIM_BASE && ./install.sh
# 或者通常情况下,你需要一个代理来避免网络错误
cd $NDSLVIM_BASE && proxychains ./install.sh
键名 | 操作 |
---|---|
<F3> |
是否显示换行符 |
<F4> |
是否折叠行 |
<F5> |
是否开启PASTE模式 |
<F6> |
是否开启语法高亮 |
<ctrl-c> |
相当于<ESC> ,任何模式下都有效 |
,/ |
取消高亮(通常是指搜索的高亮) |
; |
相当于按下了: ,省去按住shift的烦恼 |
上下左右键 | 在窗口中上下左右导航,适用于split党 |
,<number> |
跳到其中一个tab,适用于tabedit党 |
<ctrl-t> |
打开一个新的tab |
<ctrl-n> |
打开目录树 |
<ctrl-f> |
打开文件搜索和导航功能 |
<ctrl-e> |
emmet代码扩展 |
<ctrl-h> |
前往前一个tab |
<ctrl-l> |
前往后一个tab |
{n},c<space> |
(反)注释n行(n可选),或选中区域 |
,<space> |
清除文件中多余的空格 |
,n |
前往文件中下一个被修改过的地方(基于git diff) |
,N |
前往文件中上一个被修改过的地方(基于git diff) |
gd |
go to definitions |
gh |
go to references |
<ctrl-j> 和<ctrl-k> |
补全后可以在snippet内部进行跳转 |
使用vim-plug作为插件管理工具;以下插件均可以使用
:help <插件名>
来获取更多帮助(忽略大小写)
一个非常友好的底部状态栏,显示诸如文件类型、行数、文件是否已保存等信息
用于在当前项目、缓冲区、编辑记录中快速寻找和打开文件,拥有自己的LRU算法和缓冲区管理算法,免去了用户自己去关闭缓冲区的烦恼。
当前项目的定义是:
使用,f
来打开文件搜索功能
一个目录树显示插件,还以进行简单的文件系统操作(创建,删除等)。
使用ctrl-n来打开或关闭,使用:help NERDTree来获取更多帮助
使用coc.nvim
来作为标准的Language Client,使用ccls
作为C语言补全工具,你可以
自行添加其他的语言功能,详情请见。
另外,ccls
可以使用额外的项目级别的配置来自定义你自己的项目编译方式,详情见
你也可以使用如下命令来屏蔽语言支持功能:
alias vimp="vim --cmd \"let g:ignore_language_support=1\""
安装过程中需要下载最新版本的llvm
,在比较慢情况下,你可以参考install.sh
中
相关部分手动下载并解压放置到对应的位置。
Web开发中非常著名的编码辅助工具,其使用方式可以参见emmet的官方文档。
使用ctrl-e
来触发代码扩展操作。
快速代码注释工具,使用,c<space>
来切换代码的注释状态(普通和选择模式下)。
用红色标出多余的空格,可以使用,<space>
来全局清除多余的空格。
帮你自动补全成对括号之类的符号
增强%
匹配跳转命令的功能,使它可以配对诸如HTML、LaTeX等标签语,甚至可以用来匹配begin end
这样的配对
用于显示文件的修改状态的插件
Vim的git-wrapper插件,可以在Vim中轻松地执行各种git命令。
:Gstatus
来执行git status
,并且你可以在对应行上按p
或-
来分别执行git add
或git reset
:Gcommit
来执行git commit
:Gmove
来执行git mv
:Gdelete
来执行git rm
:Ggrep
来执行git grep
:Gdiff
来执行git diff
,个人感觉不好用,有gitgutter就够用了:Gread
来执行git checkout --filename
使用:help fugitive
来获取更多帮助
基于google的vim-codefmt
感谢k-vim带给我的启发,还有VimAwesome这个超棒插件站。