美文网首页Linux/Unix知识点编程基础知识Vim
【vim】极简完美配置b-vim(一)安装教程及目录说明

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

作者: 乾九二 | 来源:发表于2015-11-01 23:10 被阅读3541次
    目录

    如果觉得好,记得点个赞哦,👍!
    如果使用了,记得在 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

    相关文章

      网友评论

      • 丨灬花为伊人醉:let g:file_copyright_name = 'GuoTao'
        let g:file_copyright_name = '864143597@qq.com'

        # Author : 864143597@qq.com
        # Email : 在 vimrc 文件中添加 let g:file_copyright_name = 'your email'

        大哥,为啥我在VIMRC里面按照提示添加之后,出现这个情况
        乾九二:@丨灬花为伊人醉
        1. 因为你没有配置自动启动,执行以下命令:
        echo "if [ -f ~/.bashrc.local ];then source ~/.bashrc.local; fi" >> $HOME/.bashrc

        2. 不知道你的 END 键是啥,不过我在 vimrc.config_base 里配置了 跳到行首为H,行尾为L

        3. 你那个是一个插件的功能,这里没配,你想用,可以自己配。

        另外建议你看看 具体的文件配置,配置里改了东西,你不能完全按照默认的使用,另外看看配置才能更好的学习,然后你觉得不好的,你可以改改。
        建议你在 github 上 fork 一份到你自己的账号下,然后你就可以自己改了。
        丨灬花为伊人醉:嗯嗯,好的,谢谢大哥,

        还有就是,
        1. 我已经执行了source .bashrc.local 可是当我新打开一个终端,如果再打开旧文件,还是会出现提示信息,如果打开一个新文件,除了出现提示信息外,不会在文件首部添加文件相关
        信息

        2. 插入模式下我使用END键,光标不会跳至行尾,而是转成非编辑模式,但也不是命令模式

        3. 输入main 再按空格键 ,不会自动生成 main函数,这个是没有配置吗,我应该在哪个文件里进行配置
        乾九二:let g:file_copyright_name = '864143597@qq.com'
        这句改成:
        let g:file_copyright_email = '864143597@qq.com'
      • 丨灬花为伊人醉:. Plugin 'Valloric/YouCompleteMe' |~
        + Plugin 'tdcdev/ycm_simple_conf' |~
        + Plugin 'guns/xterm-color-table.vim' |~
        * Helptags

        大哥,你看下这个YouCompleteMe是安装成功还是失败了?
        我前几天因为把Ibus框架卸载了,导致桌面啥的都连带着没有了,所以又重新装的系统,这次配置的时候很顺利,只是YCM插件下载编译的时候不会弄,好象是clang语法什么的没有配置上吧,现在VIM里执行BundleInstall结果显示YCM和起它插件不一样,但也没有报错,我不知道这是什么意思,请大哥指点
        乾九二:b-vim的Readme里有说明,你参考一下吧
        乾九二:@丨灬花为伊人醉 https://github.com/Valloric/YouCompleteMe
        乾九二:这个只是下载插件,对大部分插件来说都是可以直接使用的,但YCM是另外需要编译的,这个比较复杂。你自己查资料编译吧。
      • 丨灬花为伊人醉:大哥,我按照你说的把YCM编译安装好了,现在有三个问题:

        1.不知道YCM安装是不是正确的,是按照一篇帖子里面说的,执行了./install.py --clang-completer ,期间出了一些问题,说是没有相关文件,然后系统提示更新递归克隆了一些文件,最终又执行上面命令的时候执行成功了

        2.我用VIM打开文件时会提示你那篇帖子里提到的继续、ENTER等信息,我不知道具体应该改动哪些配置文档,以及具体将那句命令添加到文档里的什么位置

        3.解决完如上问题后,我是不是还要在.vimrc文件里执行PluginInstall命令?还是说有其它命令,另外,这个命令具体是在家目录的.vimrc文件里执行,还是在~/b-vim/config/vimrc文件里执行

        以上问题,请指导,thanks!!!
        乾九二:@丨灬花为伊人醉 如果你按照脚本安装的,可能你没source ~/.bashrc.local,你执行下面这句,就自动在开启终端时启动了:echo 'if [ -f ~/.bashrc.local ];then source ~/.bashrc.local; fi' >> ~/.bashrc; source ~/.bashrc.local
        丨灬花为伊人醉:恩恩,我现在卡在第二个问题了,
        因为对你帖子里讲的 “在 .vimrc 相关配置文件中添加:let g:rooter_silent_chdir = 1”这句话不是很理解,所以我也就没敢做任何修改,加上之前并不知道你已经在git上更新了文件,
        还有就是对文档里提到的如下在.bashrc里的操作
        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;"
        这个我也没有操作,

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

        是不是这些导致的问题
        乾九二:@丨灬花为伊人醉 第一个,这个不好说,你可以找个 c++ 文件,看看能不能正常的进行补全提示,如果可以那应该就没有问题。如果不能用的话,你就要好好看看编译过程的输出log,哪里有问题了。这个只能自己搞了。第二个,我帖子里说的,我已经加到配置里了,应该是你其他地方有错的,才导致这样,你自己检查一下吧。第三个,任何的vim窗口都可以使用 vim 命令。
      • 丨灬花为伊人醉:补充一下,这个是克隆的时候出现的,然后我又重新执行了一次克隆命令,
        结果问题解决了

        以下第一次克隆出现现象
        gt@gt:~$ sudo git clone https://github.com/nine2/b-vim
        [sudo] gt 的密码:
        正克隆到 'b-vim'...
        remote: Counting objects: 82, done.
        remote: Compressing objects: 100% (44/44), done.
        error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
        fatal: The remote end hung up unexpectedly
        fatal: early EOF
        fatal: unpack-objects failed

        以下是第二次执行克隆命令的结果
        gt@gt:~$ sudo git clone https://github.com/nine2/b-vim
        [sudo] gt 的密码:
        正克隆到 'b-vim'...
        remote: Counting objects: 82, done.
        remote: Compressing objects: 100% (44/44), done.
        remote: Total 82 (delta 45), reused 71 (delta 34), pack-reused 0
        展开对象中: 100% (82/82), 完成.
        检查连接... 完成。

        请问楼主,以上过程是不是造成我下载的文件内容什么的不完整,导致安装失败,因为我检查了文件夹,相应的文件都存在
        乾九二:如果编译YCM失败,你可以先使用简单版,只需要改一下b-vim/.vim/下的vimrc.bundles链接的目标就好了,然后打开vim,使用指令:BundleInstall安装插件即可。
        丨灬花为伊人醉:@乾九二 好的好的,非常感谢,刚开始学Linux,之前这些插件,配置文件类的东西都没敢想,这段时间也看了写关于VIM及相关插件安装配置的总结文档,还是会有各种安装失败,关键是没有一个相对完整、系统、细节的描述,突然发现你的帖子,感觉就像一下子见到了宝,谢谢你的系统总结,应该会让我认知有所提高,很兴奋,也很期待你后续的更新:heart: :heart: :heart:
        乾九二:@丨灬花为伊人醉 谢谢使用,这个有个bug,单词拼写错了,你重新在 b-vim 目录里 git pull 一下再使用 ./install-vim.sh --complex 就好了,另外,我看你使用了 sudo ,如果是你自己的账户,不是root账户,是不需要使用sudo的。
      • 丨灬花为伊人醉:gt@gt:~/b-vim/install-shell$ sudo ./install-vim.sh --complex
        /home/gt/b-vim/install-shell
        Step 1: add config to /home/gt/.bashrc.local
        Step 12 bucking up current config
        Step 2: setting tu symlinks
        Step 3: vim bk and undo dir and swp and view
        Step 4: install plugins
        grep: /home/gt/b-vim/config/vimrc.bundle_complex: 没有那个文件或目录
        Step 5: link tags_list

        楼主你好,克隆下来之后查看过提示没有问题,对比目录树图,也没有缺失文件,这个情况是什么原因呢?需要给相应文件执行权限吗
      • Faustest:请问是直接安装就好了吗,后面的内容是文件介绍吗
        乾九二:@Faustest 是的
      • Mr_右:安装插件过程中,前面带感叹号的是不是已失效?Ubuntu16.04,vim支持python3,不支持python。
      • 32b501f8174d: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
        乾九二:@Robot_ 这几个插件不算多啊,我打开一直都很快,确认不是你打开的文件太大?
        32b501f8174d:@乾九二 好了。谢谢博主,请问打开文件的时候有卡顿,是不是因为插件装多了的原因呢
        乾九二:@Robot_ 打开Vim,然后输入指令“ :BundleInstall ”手动安装插件
      • f87a154642b6:您好,我平时在办公室使用Xshell登陆实验室的Linux服务器集群工作,如果想配置b-vim的话,是不是需要管理员权限呀?:anguished:而且用管理员权限配置b-vim后,不只是我还有其他所有登录Linux服务器的用户都要使用b-vim吗?
        f87a154642b6:@乾九二 谢谢:stuck_out_tongue_winking_eye:
        乾九二:@九天and揽月 不需要管理员权限,不建议使用root用户装,装在自己用户目录下就好了,只能当前用户用。

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

      本文链接:https://www.haomeiwen.com/subject/rnufhttx.html