使用vim配置方案spf13中碰到的一些问题
目的:达到我自己自定义安装插件的目的
安装YCM(YouCompleteMe)自动补全神器之前的准备
先安装编译环境:
|
1
2
|
sudo apt-get install build-essential cmakesudo apt-get install python-dev |
在安装之前运行一下命令(后续会知道它的用途):
|
1
|
vim .vimrc.before.local |
在里面写入如下代码(是我自己的配置):
|
1
|
let g:spf13_bundle_groups=['general', 'writing', 'programming', 'python', 'misc', 'youcompleteme', ] |
上面代码会在安装spf13的时候默认根据配置去安装插件。最下面会解释为何要如此配置。
安装git软件(如果你没有安装的话,用来克隆spf13项目):
|
1
|
sudo apt-get install git |
切换到$HOME目录,然后运行:
|
1
2
|
cd $HOMEgit clone https://github.com/spf13/spf13-vim.git |
克隆好项目后,HOME目录中就会有一个名为“spf13-vim”的文件夹进入这个文件夹,并运行
|
1
|
./bootstrap.sh |
就会按照自己的配置进行安装了。
YCM编译安装:在全部插件安装完成后(下载YCM的时,可能需要点时间),然后在进行编译安装:
在编译安装YCM之前,需要Clang和LLVM这个环境进行编译。我们建立一个目录用来存放临时编译的文件,(安装YCM的东东全部在建立的目录下进行执行,执行命令)有两种方式进行安装:第一,使用官方源进行安装
- 1
mkdirycm_build - 1
cdycm_build apt-get install clang llvm
第二种,去clang的官方地址上去进行下载并进行安装,编译安装可参考http://howiefh.github.io/2015/05/22/vim-install-youcompleteme-plugin/
http://zuyunfei.com/2013/05/16/killer-plugin-of-vim-youcompleteme/
我这里只介绍通过官方源进行安装的(因为简单快捷):
确认安装的包完整性:
- 1
cd~/.vim/bundle/YoucompleteMe - 1
git submodule update --init --recursive 我们需要找到libclang.so的路径在哪里,一般是在/usr/目录下使用一下命令查找
- 1
find/usr/-name"libclang.so*"我查找到的目录为:
/usr/lib/llvm-3.5/lib/libclang.so.1
通过官方的知道得知需要运行一下命令
参考官方解释:
cmake -G "<generator>" . ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
For those who want to use the system version of boost, you would pass
-DUSE_SYSTEM_BOOST=ONto cmake. This may be necessary on some systems where the bundled version of boost doesn't compile out of the box.根据官方的解释,我们执行如下语句:
- 1
cmake -G"Unix Makefiles"-DEXTERNAL_LIBCLANG_PATH=/usr/lib/llvm-3.5/lib/libclang.so.1 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp
然后:
Now that configuration files have been generated, compile the libraries using this command:
cmake --build . --target ycm_support_libs --config Release
直接执行如上语句
cmake --build . --target ycm_support_libs --config Release
使用NeoCompleteEnable出现的如下问题
我使用的是tty1这种终端;
安装完成后发现不能自动提示,在命令模式“:”下输入“NeoCompleteEnable”发现不能启动提示
|
1
2
3
|
“It requires Vim 7.3.885 or later with Lua support ("+lua")” |
按照github上的方法安装vim-nox、vim-athena就可以解决问题{传送门}(https://github.com/spf13/spf13-vim/issues/773):(一般只需安装vim-nox[此为脚本语言的支持])
|
1
2
|
sudo apt-get install vim-noxsudo apt-get install vim-athena |
自动补全不能只能提示(针对NeoComplete插件)
在使用过程中,自动提示的东西不能显示,还是那种插件形式的。
解决方法{传送门}(https://github.com/spf13/spf13-vim/issues/819):
在.vimrc.loacl中添加如下代码:
|
1
|
inoremap <expr><CR> neosnippet#expandable() ? neosnippet#mappings#expand_or_jump_impl() : pumvisible() ? neocomplete#close_popup() : "\<CR>" |
不显示配色效果:
在.vimrc.loacl中添加如下代码【可参考(http://www.cnblogs.com/keepHack/archive/2012/04/09/2439361.html)】:
|
1
|
set t_Co=256 |
在spf13-vim作者的github中有个这样的文件.vimrc.bundles有着下面这段代码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
" In your .vimrc.before.local file" list only the plugin groups you will use if !exists('g:spf13_bundle_groups') let g:spf13_bundle_groups=['general', 'writing', 'neocomplete', 'programming', 'php', 'ruby', 'python', 'javascript', 'html', 'misc',] endif " To override all the included bundles, add the following to your " .vimrc.bundles.local file: " let g:override_spf13_bundles = 1 if !exists("g:override_spf13_bundles") " General { if count(g:spf13_bundle_groups, 'general') Bundle 'scrooloose/nerdtree' Bundle 'altercation/vim-colors-solarized' Bundle 'spf13/vim-colors' Bundle 'tpope/vim-surround' Bundle 'tpope/vim-repeat' Bundle 'jiangmiao/auto-pairs' Bundle 'ctrlpvim/ctrlp.vim' Bundle 'tacahiroy/ctrlp-funky' Bundle 'kristijanhusak/vim-multiple-cursors' Bundle 'vim-scripts/sessionman.vim' Bundle 'matchit.zip' if (has("python") || has("python3")) && exists('g:spf13_use_powerline') && !exists('g:spf13_use_old_powerline') Bundle 'Lokaltog/powerline', {'rtp':'/powerline/bindings/vim'} elseif exists('g:spf13_use_powerline') && exists('g:spf13_use_old_powerline') Bundle 'Lokaltog/vim-powerline' else Bundle 'bling/vim-airline' endif Bundle 'powerline/fonts' Bundle 'bling/vim-bufferline' Bundle 'Lokaltog/vim-easymotion' Bundle 'jistr/vim-nerdtree-tabs' Bundle 'flazz/vim-colorschemes' Bundle 'mbbill/undotree' Bundle 'nathanaelkane/vim-indent-guides' if !exists('g:spf13_no_views') Bundle 'vim-scripts/restore_view.vim' endif Bundle 'mhinz/vim-signify' Bundle 'tpope/vim-abolish.git' Bundle 'osyo-manga/vim-over' Bundle 'kana/vim-textobj-user' Bundle 'kana/vim-textobj-indent' Bundle 'gcmt/wildfire.vim' endif " } |
这段代码中有下面这段:
|
1
2
3
4
5
|
" In your .vimrc.before.local file" list only the plugin groups you will use if !exists('g:spf13_bundle_groups') let g:spf13_bundle_groups=['general', 'writing', 'neocomplete', 'programming', 'php', 'ruby', 'python', 'javascript', 'html', 'misc',] endif |
前面两句是注释,说:在.vimrc.before.local这个文件中列出了你将要使用的插件,下面那句代码意思就是如果不存在设置,那么就会默认使用下面的插件:
|
1
|
'general', 'writing', 'neocomplete', 'programming', 'php', 'ruby', 'python', 'javascript', 'html', 'misc' |
下面这段(我只截取的部分)是说明,如果spf_bundle_groups包含了general就安装下面的插件:
|
1
2
3
4
5
6
|
" General { if count(g:spf13_bundle_groups, 'general') Bundle 'scrooloose/nerdtree' Bundle 'altercation/vim-colors-solarized' Bundle 'spf13/vim-colors' …………………………………… |
|
1
|
<br> |
以下所有的设置都在.vimrc.local中:
设置颜色:set t_Co=256才能正确的显示配色的效果
参考网站:http://harrycode.logdown.com/posts/197145-simple-steps-to-build-cool-vim-development-environment
http://twocucao.xyz/2015/03/01/%E7%BC%96%E8%BE%91%E5%99%A8Vim/
http://www.cnblogs.com/274914765qq/p/4439189.html
https://github.com/Valloric/YouCompleteMe#c-family-semantic-completion-engine-usage
http://www.cnblogs.com/keepHack/archive/2012/04/09/2439361.html
可参考:http://blog.jobbole.com/58978/
可参考:k-vim进行自己的配置设置
后续遇到的问题,会继续添加
使用vim配置方案spf13中碰到的一些问题的更多相关文章
- 简洁vim配置方案Janus(1)
最近不想在编辑器上花太多的精力,所以找到个不错的解决方案. 在不懂vim配置的前提下也能用的很开心. 1,下载安装Janus(https://github.com/carlhuda/janus) 安装 ...
- Github上star和fork比较高的vim配置方案
https://github.com/amix/vimrchttps://github.com/humiaozuzu/dot-vimrchttps://github.com/spf13/spf13-v ...
- 配置使用ldap中碰到的各种问题 --- 吐血
1. LDAP Result Code 50 "Insufficient Access Rights" : 权限的问题: 解决: 使用docker部署吧, 看我其他的博客
- gVim 配置方案 采用Vundle管理插件
在Linux下配置vim非常简单,尤其是采用Vundle来管理插件,使得一切用起来得心应手. Maple大神在github上公布了自己的vim配置方案,相当方便好用.详见 https://github ...
- Vim常用命令及配置方案
Vim常用命令及配置方案 几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...
- web.config中sessionState节点的配置方案
web.config中sessionState节点的配置方案 web.config关于sessionState节点的配置方案,sessionState有五种模式:Custom,off,inProc,S ...
- Nginx+Php中限制站点目录防止跨站的配置方案记录
Nginx+Php中限制站点目录防止跨站的配置方案记录(使用open_basedir)-------------------方法1)在Nginx配置文件中加入: 1 fastcgi_param PH ...
- Vim配置(python版)
由于马上将用到django框架,需要有一个好的ide来coding,之前做C的开发时候体会到了vim的强大,所以编写python也决定采用vim. PS:除了vim,一般浏览代码多用atom和subl ...
- acm的ubuntu (ubuntu16.04 安装指南,chrome安装,vim配置,git设置和github,装QQ)
日常手贱把ubuntu14.04更新到了16.04,然后就game over了.mdzz,不然泥萌也看不到这篇博客了=.= 然后花了些时间重装了一个16.04版的,原来那个14.04的用可以用,就是动 ...
随机推荐
- javascript 函数介绍
javascript函数使用的时候,往往都比较单一,这里介绍几种不同于我们之前使用的函数调用方式! 1.函数表达式包含名称,用于递归 var f = function s(num) { if (num ...
- 深入浅出SQL注入
原文:深入浅出SQL注入 之前在做学生信息管理系统和机房收费系统的时候,对于SQL注入的问题已经是司空见惯,但是并没有真正的地形象生动的理解SQL注入到底是什么玩意儿.直到这次做牛腩才在牛老师的举例之 ...
- JQuery each详细用法
each()方法能使DOM循环结构简洁,不容易出错.each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组.多维数组.DOM, JSON 等等在javaScript开发过程中使用$ ...
- 【转】【Android应用开发详解】第01期:第三方授权认证(一)实现第三方授权登录、分享以及获取用户资料
转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9057257 由于公司项目的需要,要实现在项目中使用第三方授权登录以及分享文字 ...
- IS_EER分析
下面我们就来具体分析一下这段代码,看看内核中的巧妙设计思路. 要想明白IS_ERR(),首先理解要内核空间.所有的驱动程序都是运行在内核空间,内核空间虽然很大,但总是有限的,而在这有限的空间中,其最后 ...
- 开发框架(OrchardNoCMS)--BootStrap
基于ASP.NET MVC的热插拔模块式开发框架(OrchardNoCMS)--BootStrap 按照几个月之前的计划,也应该写一个使用Bootstrap作为OrchardNoCMS的UI库.之前这 ...
- Step one : 熟悉Unix/Linux Shell 常见命令行 (四)
4.了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息 了解/etc目录下的各种配置文章 /etc/hosts 主机配置文件 /etc/netwo ...
- JavaScript原生数组函数
有趣的JavaScript原生数组函数 在JavaScript中,可以通过两种方式创建数组,构造函数和数组直接量, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typ ...
- const与readonly的区别
const与readonly 很像,都是将变量声明为只读,且在变量初始化后就不可改写.那么,const与readonly 这两个修饰符到底区别在什么地方呢?其实,这个牵扯出C#语言中两种不同的常量类型 ...
- 从异步更新进度想起的事儿——IProgress
今天,在群里向大家请教了这样一个问题:“两个对象(类.窗体或什么)之间,要完成比较频繁的报告进度更新都有哪些好的方式”,Somebody 跳出来给出了个“IProgress”,没了解过,后面围绕着它讨 ...