vim配置 重量級外掛程式

2021-07-05 02:35:30 字數 3418 閱讀 1761

vundle是vim中很好的外掛程式管理器,其安裝及使用見鏈結[1]。

youcompleteme是vim的自動補全神器,其安裝比較麻煩,見如下,

在vim.rc中新增bundle 'valloric/youcompleteme',之後在vim中執行:bundleinstall

cd ~/.vim/bundle/youcompleteme  

./install.py --clang-completer

cd ~

mkdir ycm_build

cd ycm_build

cmake -g

"unix makefiles" -dpath_to_llvm_root=~/ycm_temp/llvm_root_dir . ~/.vim/bundle

/youcompleteme/third_party/ycmd/cpp

ycm_core

安裝完ycm後,會產生預設的.ycm_extra_conf.py,不過還必須對此檔案進行相應設定。若不設定,ycm強大的補全、語法檢查功能不能完全施展。比如,將以下幾行新增到該檔案的flags部分(即設定c++庫檔案的路徑),即可在c、c++程式中實現ycm的全部功能。

'-i',

'.',

'-isystem',

'../boostparts',

'-isystem',

'/usr/include',

'-isystem',

'/usr/include/c++/',

不過,要使該檔案生效,必須得在每個專案下放乙個,或是在vim中進行如下配置let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/youcompleteme/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' "配置預設的ycm_extra_conf.py檔案路徑

""

"""外掛程式youcompleteme配置

bundle 'valloric/youcompleteme'

let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/youcompleteme/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py' "配置預設的ycm_extra_conf.py檔案路徑

let mapleader = ","

" 將leader就對映為逗號「,」

nnoremap jd :ycmcompleter gotodefinitionelsedeclaration"按,jd 會跳轉到定義

let g:ycm_confirm_extra_conf=0

"開啟vim時不再詢問是否載入ycm_extra_conf.py配置

let g:ycm_collect_identifiers_from_tag_files = 1 "使用ctags生成的tags檔案

let g:ycm_error_symbol = '>>'

"錯誤的顯示符號

let g:ycm_warning_symbol = '>*' "警告的顯示符號

syntastic是很好的語法檢查外掛程式,安裝完後在vim中做如下配置即可

set statusline+=%#warningmsg#

set statusline+=%

set statusline+=%*

let g:syntastic_always_populate_loc_list = 1

let g:syntastic_auto_loc_list = 1

let g:syntastic_check_on_open = 1

let g:syntastic_check_on_wq = 0

可在(v3.7.0) syntax checkers檢視syntastic對所有語言所支援的語法檢查器,包含安裝及配置。

vim中的統一格式化外掛程式,不過該外掛程式只是個框架,需要為各語言安裝單獨的格式化程式,預設按f3進行格式化。

比如為python進行格式化配置:autopep8、yapf均可實現對python的格式化,都可通過pip命令安裝,任用其一就好。如下設定是採用了autopep8,並且支援對選定行進行注釋。

"*****外掛程式vim-autoformat配置

noremap :autoformatlet g:autoformat_verbosemode=1

let g:formatters_python = ['

autopep8']

let g:formatdef_autopep8 = "'autopep8 - --range '.a:firstline.'

'.a:lastline"

執行格式化時,若出現錯誤:autopep8: error: no such option: --range,說明當前的autopeps版本不支援對選定行格式化,使用命令pip install --upgrade autopep8公升級即可。

vim-markdown是對markdown檔案語法高亮的外掛程式,安裝很簡單,直接在.vimrc中加上plugin 'plasticboy/vim-markdown',之後在vim中執行:bundleinstall即可。

vim-instant-markdown是通過瀏覽器對markdown檔案進行實時預覽的外掛程式.不過此外掛程式在安裝前需安裝node.js和npm.在fedora21中直接通過以下**安裝:

sudo yum install nodejs npm
不過安裝完成後執行node會找不到該命令,切換到root即可.

執行npm會出現cannot find module 'inherits',嘗試了github此問題解答的所有方法後都不行,仍然出現同樣錯誤.後在stackoverflow此問題解答中找到乙個解決辦法--sudo yum install nodejs-inherits*,採用此辦法後雖然安裝了模組"inherits",但又出現找不到其他模組的問題,索性將與nodejs相關聯的模組一併安裝--sudo yum install nodejs*,問題解決.

[1]. 使用vundle管理vim外掛程式

[2]. vim自動補全神器:youcompleteme+syntastic

[3]. ubuntu13.04配置:vim+syntastic+vundle+youcompleteme

[4]. vim智慧型補全外掛程式youcompleteme安裝

輕量級重量級

輕量級重量級某種程度上是以啟動程式需要的資源來決定。比如,ejb啟動的時候,需要消耗大量的資源,記憶體,cpu等,所以是重量級。而spring則不,所以是輕量級框架。量級主要是看對容器的依賴性所決定的,依賴性越小,越輕量.ejb往往內部做了很多服務,網上的說法是買一得三 而且你不想要就不行!比方說我...

重量級鎖 synchronized

synchronized關鍵字並非一開始就該物件加上重量級鎖,也是從偏向鎖,輕量級鎖,再到重量級鎖的過程。這個過程也告訴我們,假如我們一開始就知道某個同步 塊的競爭很激烈 很慢的話,那麼我們一開始就應該使用重量級鎖了,從而省掉一些鎖轉換的開銷。互斥鎖 重量級鎖 也稱為阻塞同步 悲觀鎖 重量級鎖是依賴...

偏向鎖 輕量級鎖 重量級鎖

首先簡單說下先偏向鎖 輕量級鎖 重量級鎖三者各自的應用場景 偏向鎖 只有乙個執行緒進入臨界區 輕量級鎖 多個執行緒交替進入臨界區 重量級鎖 多個執行緒同時進入臨界區。還要明確的是,偏向鎖 輕量級鎖都是jvm引入的鎖優化手段,目的是降低執行緒同步的開銷。比如以下的同步 塊 synchronized l...