目的:達到我自己自定義安裝插件的目的
安裝YCM(YouCompleteMe)自動補全神器之前的准備
先安裝編譯環境:
1
2
|
sudo
apt-get
install
build-essential cmake
sudo
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
$HOME
git clone https:
//github
.com
/spf13/spf13-vim
.git
|
克隆好項目后,HOME目錄中就會有一個名為“spf13-vim”的文件夾進入這個文件夾,並運行
1
|
.
/bootstrap
.sh
|
就會按照自己的配置進行安裝了。
YCM編譯安裝:在全部插件安裝完成后(下載YCM的時,可能需要點時間),然后在進行編譯安裝:
-
在編譯安裝YCM之前,需要Clang和LLVM這個環境進行編譯。我們建立一個目錄用來存放臨時編譯的文件,(安裝YCM的東東全部在建立的目錄下進行執行,執行命令)有兩種方式進行安裝:第一,使用官方源進行安裝
-
1
mkdir
ycm_build
-
1
cd
ycm_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=ON
to 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-nox
sudo
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進行自己的配置設置
后續遇到的問題,會繼續添加