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...