配置Vim為一個輕便的IDE
前言
關於IDE就不用對多說了,那麼在Linux下怎麼把vim配置成一個輕量級的“IDE”呢?今天就教大家方法。(⊙o⊙)…其實百度一下就可以出來了,不過我這裡吧我在配置時遇到了些問題寫出來,避免繞彎路。。。。
貌似還有一個比較NB的 YouCompleteMe 。。
下載外掛
說白了,配置vim其實就是安裝外掛,也就是指令碼。O(∩_∩)O~
先來看看我們要去下載那些外掛??
(注意,我是用vim8)
Pathogen,這是一個用來管理外掛的外掛
github: https://github.com/tpope/vim-pathogengit clone https://github.com/tpope/vim-pathogen.git
Syntastic,用來檢測語法錯誤的
github: https://github.com/vim-syntastic/syntasticgit clone https://github.com/vim-syntastic/syntastic.git
Auto Pairs,自動補全括號,如()、{}
github: https://github.com/jiangmiao/auto-pairsgit clone https://github.com/jiangmiao/auto-pairs.git
NERD Commenter,程式碼註釋作用
github: https://github.com/scrooloose/nerdcommentergit clone https://github.com/scrooloose/nerdcommenter.git
用法(摘自網際網路:
\cc 註釋當前行和選中行
\cn 貌似和 \cc一樣。。
\c<空格> 如果被選區域有部分被註釋,則對被選區域執行取消註釋操作,其它情況執行反轉註釋操作
\cm 對被選區域用一對註釋符進行註釋,前面的註釋對每一行都會添加註釋
\ci 執行反轉註釋操作,選中區域註釋部分取消註釋,非註釋部分添加註釋
\cs 新增性感的註釋,程式碼開頭介紹部分通常使用該註釋
\cy 添加註釋,並複製被添加註釋的部分
\c$ 註釋當前游標到改行結尾的內容
\cA 跳轉到該行結尾添加註釋,並進入編輯模式
\ca 轉換註釋的方式,比如: //和//
\cl \cb 左對齊和左右對其,左右對其主要針對//
\cu 取消註釋
Snipmate,這玩意相當與補全吧
git clone https://github.com/garbas/vim-snipmate.git
NERDTree 和 Taglist
nerdtree:git clone https://github.com/scrooloose/nerdtree.git
taglist 官網: http://www.vim.org/scripts/script.php?script_id=273 ,我下載的是 4.6 版本的NERDTree用法(摘自網際網路:
檔案相關操作
o : 在游標所在的上一個視窗開啟檔案,並將游標置於新開啟的視窗
go : 預覽檔案,游標停留在NERDTree視窗中
t : 在新標籤中開啟檔案並激活
gt : 在新標籤開啟檔案,游標留在NERDTree視窗中
i : 水平分割開啟檔案
gi : 水平分割預覽
s : 垂直分割開啟檔案
gs : 垂直分割預覽
目錄樹相關操作
o : 展開/關閉目錄
O : 遞迴展開目錄。慎用,如果目錄層級多,開啟會很慢
x : 關閉父目錄
C : 切換游標所在目錄為根目錄
u : 切換目錄樹的根目錄為上層目錄
U : 切換目錄樹的根目錄為上層目錄,並保持舊的目錄樹的狀態
r : 重新整理當前目錄
R : 重新整理當前根目錄(這個在新加入檔案後會用到)
cd : 切換vim工作目錄為游標所在目錄(命令模式下:pwd可檢視當前工作目錄)
快捷鍵
ctrl + w + w 游標自動在左右視窗切換
ctrl + w + l 游標 移動到右側視窗
ctrl + w + h 游標移動到左側視窗
ctrl + w + r 切換NERDTree視窗位置(左或右)
或
ctrl+w+(↑ 、↓ 、← 、→)
SuperTab(這貨挺好的,按下tab鍵就可以補全變數名或函式名,不過卻不能通過tab鍵輸入製表符了(然後可以對映其他鍵輸出製表符),所以我沒用)
github: https://github.com/ervandew/supertabgit clone https://github.com/ervandew/supertab.git
當然,還有一些像 MiniBufferExplorer、UndoTree、GDBMgr 大家可以百度百度。。。。。。(⊙﹏⊙)b,其實我也木有用到這幾個
正文
把上面這些外掛下載完成後,就可以開始配置了。。。
等等,在開始之前,請先安裝這幾個(debian)!!!!
apt-get install vim-addon-mw-utils
apt-get install vim-tlib
apt-get install ctags
假定我把這些外掛放在 ~/vim_plugins 目錄下
cd ~/vim_plugins
先安裝 pathogen
1.把 pathogen/autoload 的資料夾複製到 ~/.vim/ 下
2.mkdir ~/.vim/bundle #以後只需把外掛資料夾放到這個bundle資料夾接著 Syntastic
cp -r syntastic/ ~/.vim/bundle/
Auto Pairs
cp -r auto-pairs/ ~/.vim/bundle/
NERD Commenter
cp -r nerdcommenter/ ~/.vim/bundle/
Snipmate
cp -r snipMate/ ~/.vim/bundle/
NERDTree 和 Taglist
cp -r nerdtree/ ~/.vim/bundle/
cp -r taglist/ ~/.vim/bundle/OmniComplete
cp -r omnicppcomplete/ ~/.vim/bundle/
這時別忘了那個解壓下來的cpp_src資料夾,進入到cpp_src目錄
cd ~/vim_plugins/cpp_src
執行如下命令ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++
生成 tags 檔案,再把cpp_src資料夾複製到~/.vim/tags/下(tags直接新建)
最後,再來看下 .vimrc 檔案
"設定 cpp_src/tags 檔案的路徑
set tags+=~/.vim/tags/cpp_src/tags
set modelines=0
"設定更好的刪除
set backspace=2
syntax on "語法高亮
"用淺色高亮當前行
autocmd InsertLeave * se nocul
autocmd InsertEnter * se cul
set smartindent "智慧對齊
set autoindent "自動對齊
set confirm "在處理未儲存或只讀檔案的時候,彈出確認框
set tabstop=4 "tab鍵的寬度
set softtabstop=4
set shiftwidth=4 "統一縮排為4
set expandtab "不要用空格替代製表符
set number "顯示行號
set history=50 "歷史紀錄數
set hlsearch
set incsearch "搜素高亮,搜尋逐漸高亮
set gdefault "行內替換
set encoding=utf-8
set fileencodings=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936,utf-16,big5,euc-jp,latin1 "編碼設定
set guifont=Menlo:h16:cANSI "設定字型
set langmenu=zn_CN.UTF-8
set helplang=cn "語言設定
set ruler "在編輯過程中,在右下角顯示游標位置的狀態行
set laststatus=1 "總是顯示狀態行
set showcmd "在狀態行顯示目前所執行的命令,未完成的指令片段也會顯示出來
set scrolloff=3 "游標移動到buffer的頂部和底部時保持3行的距離
set showmatch "高亮顯示對應的括號
set matchtime=5 "對應括號高亮時間(單位是十分之一秒)
set autowrite "在切換buffer時自動儲存當前檔案
set wildmenu "增強模式中的命令列自動完成操作
set linespace=2 "字元間插入的畫素行數目
set whichwrap=b,s,<,>,[,] "開啟normal 或visual模式下的backspace鍵空格鍵,左右方向鍵,insert或replace模式下的左方向鍵,右方向鍵的跳行功能
filetype plugin indent on "分為三部分命令:file on,file plugin on,file indent on 分別是自動識別檔案型別, 用用檔案型別指令碼,使用縮排定義檔案
set foldenable "允許摺疊
set cursorline "突出顯示當前行
set magic "設定魔術?神馬東東
set ignorecase "搜尋忽略大小寫
filetype on "開啟檔案型別檢測功能
set background=dark
set t_Co=256 "256色
set mouse=v "允許滑鼠
"===============================
execute pathogen#infect()
syntax on
filetype plugin indent on
filetype plugin on
"啟動vim顯示nerdtree
autocmd VimEnter * NERDTree
" 按下 ctrl+b 顯示/隱藏 NERDTree
map <C-b> :NERDTreeToggle<CR>
" 將 NERDTree 的視窗設定在 vim 視窗的右側(預設為左側)
let NERDTreeWinPos="left"
"設定 NERDTree 視窗寬度
let NERDTreeWinSize=30
"這個設定 ctags 的路徑,如果是 apt-get install 安裝的,省略
" let Tlist_Ctags_Cmd = ...
let Tlist_Show_One_File=1 "只展示一個檔案的taglist
let Tlist_Exit_OnlyWindow=1 " 當taglist是最後以個視窗時自動退出
let Tlist_Use_Right_Window=1 " 在右邊顯示taglist視窗
let Tlist_Sort_Type="name" " tag按名字排序
let Tlist_Auto_Open=1 "自動開啟 taglist
"讓當前不被編輯的檔案的方法列表自動摺疊起來
let Tlist_File_Fold_Auto_Close=1
"按Ctrl+M鍵顯示/隱藏Taglist
map <C-m> :TlistToggle<CR>
autocmd VimEnter * TlistToggle
"只有安裝了supertab外掛才管用
"let g:SuperTabMappingBackward= "<tab>"
"let g:SuperTabMappingForward = "c-tab"
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " 顯示函式引數列表
let OmniCpp_MayCompleteDot = 1 " 輸入 . 後自動補全
let OmniCpp_MayCompleteArrow = 1 " 輸入 -> 後自動補全
let OmniCpp_MayCompleteScope = 1 " 輸入 :: 後自動補全
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]
set completeopt=menuone,menu,longest
"================================
I’m Frazer ! fantabulous!!!