1. 程式人生 > >配置Vim為一個輕便的IDE

配置Vim為一個輕便的IDE

前言


關於IDE就不用對多說了,那麼在Linux下怎麼把vim配置成一個輕量級的“IDE”呢?今天就教大家方法。(⊙o⊙)…其實百度一下就可以出來了,不過我這裡吧我在配置時遇到了些問題寫出來,避免繞彎路。。。。
貌似還有一個比較NB的 YouCompleteMe 。。
穀子脹萢了
門前大橋下,遊過一群鴨。。。。
哈哈

下載外掛


說白了,配置vim其實就是安裝外掛,也就是指令碼。O(∩_∩)O~
先來看看我們要去下載那些外掛??
(注意,我是用vim8)

用法(摘自網際網路:
\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/supertab
    git 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!!!