【vim】极简完美配置b-vim(一)安装教程及目录说明

目录

如果觉得好,记得点个赞哦,👍!
如果使用了,记得在 b-vimstar 一下哦。


前言

我的全部配置文件 b-dotfiles
最开始接触 vim时,总是羡慕别人的vim可以做的事情远远多于我。于是自己去找网上已有的好配置,先后用过比较出名的:
spf13-vim
k-vim

但他们都有自己的缺点,spf13 里面的插件太多且组织有点乱,并不是按照每个插件的配置紧跟着插件。所以对于初用者来说,你根本不知道想改一个东西在哪里改!而 k-vim 里主要的面向对象是python,对C/C++的支持很烂,而且看起来结构挺好的,但也有插件配置和基础配置混合的问题,这个问题导致你只能用他定义好的,想改的话,很难!

所以在自己的学习过程中,逐渐构造,吸收好的配置,更改差的,形成了自己的 vim 配置 b-vim,也在同学同事中使用后获得了较好的评价。但他们反映,如果有个说明文档的话可能会更好,于是直到现在打算写一下配置文档。

b-vim 隶属于我的所有配置文件仓库b-dotfiles中的一个。(b-dotfiles配置包括 shelltmuxgitman 配置,接下来会在另外的文档中说明)。b-vim 主要插件的配置为 C/C++ 、python、go等服务的。如果有其他使用的,可以在插件里进行增加相应插件。

这里只说一下 b-vim :
https://github.com/nine2/b-vim

安装教程

由于b-vim是一个子配置,所以需要按下面方法进行配置:

git clone https://github.com/nine2/b-vim
或 git clone git@github.com:nine2/b-vim

cd b-vim/install-shell
./install-vim.sh    # 安装简洁版,插件即下即用,不熟悉vim的话,建议先使用这个,有时间折腾YCM的话就用下面👇的安装方式
或 ./install-vim.sh --complex    #  安装完整强大版,主要是使用了 YouCompleteMe

注: 以前的脚本可能会出现下面的问题,目前的新脚本已经不会了。
在首次安装时,会出现以下错误界面,这是正常情况,可直接按 Enter 键继续即可,下载插件时间和具体网络有关,如果更新第一个插件 gmarik/vundle 时间比较长,等待即可。如果很长时间后无反应(10分钟后),可以 ctrl + c 关闭,等网络好时打开 vim (此时会报各种错误,继续即可),输入指令 :BundleInstall! 手动安装。

Receiving objects: 100% (3085/3085), 923.16 KiB | 387.00 KiB/s, done.
Resolving deltas: 100% (1077/1077), done.
Checking connectivity... done.
Step 5: update/install plugins using Vundle -------- Vim
Error detected while processing /root/.vimrc.bundles:
line 42:
E185: Cannot find color scheme 'molokai'
Press ENTER or type command to continue

建议如果是自己的机器的话,尝试安装下 ./install-vim.sh --complex 版,这个需要手动去编译安装 YouCompleteMe , 这个网上教程很多,就不多说。
如果是服务器或者不需要、不想那么麻烦的去编译的话,建议使用默认方式 ./install-vim.sh,脚本跑完就可以直接使用,简单高效。

安装后,在 $HOME 目录下只会有一个 .vimrc 文件,其他的相关文件并没有在 $HOME 下,真因为这一点,后面可以实现同账号下使用多种 vim 配置并存,这个后面再细说。

安装脚本会在 .bashrc 里导入两个环境变量:

# vim 使用配置文件的目录,为 b-vim/config 所在的绝对路径
export VIM_CONFIG_PATH=/Users/long/mydotfiles/b-dotfiles/b-vim/config
# vim 运行时使用的插件目录等,即原来相对于 $HOME/.vim 的 目录
export VIM_TMP_PATH=/Users/long/mydotfiles/b-dotfiles/b-vim/.vim

通过将这两个环境变量修改为你自己 b-vim 所在位置,就可以使用了,如果你本身没有 .bashrc.local 的话,可以将上面的配置写入到 .bashrc 里,然后 source ~/.bashrc 即可生效。

b-vim 目录结构:

目录结构
  • README.md中简单说明了b-vim的相关内容;

  • install-shell : 存放使用 b-vim 配置的安装脚本。

    • install-vim.sh : vim 安装配置文件安装脚本,默认配置的 vimrc.bundles 文件内容;使用参数 --complex 来安装配置 vimrc.bundles_complex 文件。
  • config 目录为主要的vim 配置文件,目录内容为:

    • vimrc : vim 配置的主文件
    • vimrc.config_base : vim 基本配置文件,里面只有vim的基本配置内容,不包含任何插件配置;
    • vimrc.config_filetype : vim 对于特定文件类型的特定配置;
    • vimrc.bundles_base : vim 中使用的 简单版和复杂版公用的 插件;
    • vimrc.bundles_simple : vim中使用的简易服务器版插件配置,包含使用的插件和其对应的配置,插件是在 vimrc.bundles_base 基础上不同于 complex 版的部分;
    • vimrc.bundles_complex : vim 复杂版本也是功能最强大的版本,自动补全使用的是YouCompleteMe ,如果是自己的电脑,建议安装这个版本的插件,有点麻烦,但绝对值得,下面详细说明,插件是在 vimrc.bundles_base 基础上不同于 simple 版的部分。
    • vimrc.workspace : 重点,可针对不同的项目配置不同的 vim 配置,如在 python 项目中关闭 tab 转换为空格,其他项目正常转换,同时,设置项目使用 tags 好 path ,这个下面细说。
  • projects : 里面包含了给具体项目使用的配置文件

    • tags_list_linux 放置默认给ctags使用的系统include头文件目录,用以生成对应的系统级include头文件的tags文件, linux上的默认include头文件目录;
    • tags_list_mac : mac上的默认include头文件目录,包含STL
    • workspace.vim: 配合上面说的 vimrc.workspace 使用的东西,下面细说。
    • workspace_syntax.vim:配合插件 nine2/vim-custom-syntax 使用的文件,可以设置项目对应的语法配置,具体查看项目:https://github.com/nine2/vim-custom-syntax
    • ycm_simple_conf_mac_cpp_base_dir.xml: 配合插件 tdcdev/ycm_simple_conf 使用的,这个使用查看插件即可,同时这个只有在 complex 时才生效,因为是配合 YouCompleteMe 的。

下面说下上面的重点部分:

vimrc.workspace

平时在自己的机子上,不可能所有项目使用的vim配置都是一样的,特别是每个项目使用的 tags 就可能不一样,同时有些项目如果使用了第三方库,也可能会引入对应库的 tags,这样就可以完成从当前项目的标识符跳转到第三方库上去。因此不太可能把所有的这些都配置到一个 vimrc 配置里,这里的解决方式是:从打开文件所在目录向前查找文件 .workspace.vim,直到找到 $HOME 目录或 / 目录为止,找到的第一个 .workspace.vim 会被加载起来。因此,只需在当前项目的根目录增加一个 .workspace.vim 文件即可,至于 .workspace.vim 的内容,默认可以直接 :

copy pathTo-b-vim/projects/workspace.vim pathToYourProject/.workspace.vim

注意: .workspace.vim 是所有 vim 配置中最后加载起来的,因此可以在里面改写之前的默认设置。

projects/workspace_syntax.vim

这个文件需要使用到我的另一个插件: nine2/vim-custom-syntax ,其主要作用即是开启语法高亮等,特别是可以自定义语法高亮,加载方式和 .workspace.vim 一样,但会先加载 bundle/vim-custom-syntax/after/syntax/workspace_syntax.vim,然后再加载项目目录中出现的 .workspace_syntax.vim。关于插件的说明,请参考:https://github.com/nine2/vim-custom-syntax,这里不再细说。

ycm_simple_conf_mac_cpp_base_dir.xml

文件里有使用说明,这里不再细说。

<!-- " ###### 配置自己当前项目的特殊vim 配置 -->
<!-- "  使用方法,将此配置文件copy 到要使用的项目目录下, -->
<!-- "  并更名为 .ycm_simple_conf.xml  即可 -->
<!-- "  或使用本配置的 shell 配置,加载后使用命令:proconf 即可, -->
<!-- "  命令可参见 bash_alias.sh 文件 -->
<!-- "  这里默认是 c++ ,路径默认的是 mac 的,可根据自己的实际情况更改添加 -->
<!-- "  路径不存在并不影响 -->

同时,自定义项目的文件部分,可以配合 b-dotfiles 仓库中 b-shell 使用,效果会更好。

vim 的两个环境变量

上面提到的两个环境变量 VIM_CONFIG_PATH,VIM_TMP_PATH 控制着vim 使用的配置以及运行时目录的具体位置,因此可以通过修改这两个变量来控制vim启用的配置。这有个巨大的好处:在同一用户下,同时拥有多个完全不同版本的vim配置,而切换他们只需要修改 两个环境变量 VIM_CONFIG_PATH,VIM_TMP_PATH 的值即可,因此,可在 .bashrc.zshrc(如果使用了 zsh) 中增加下面的代码来控制:

alias bvim="export VIM_CONFIG_PATH=new_config_dir; export VIM_TMP_PATH=new_tmp_dir;"
alias bvimde="export  VIM_CONFIG_PATH=$HOME; export VIM_TMP_PATH=$HOME/.vim;"

这个方式不仅仅是可用在 b-vim 上,其他的配置通过稍微的修改变通,一样能达到相同的效果。

具体配置信息留待后面再细说吧。

如果觉得好,记得点个赞哦,👍!
如果使用了,记得在 b-vimstar 一下哦。

目录

freepic-1523850343802.jpg

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,392评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,258评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,417评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,992评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,930评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,199评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,652评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,327评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,463评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,382评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,432评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,118评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,704评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,787评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,999评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,476评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,057评论 2 341

推荐阅读更多精彩内容