配置vim,打造C IDE
在網上看到大神們玩Vim,頓時產生興趣,想要模仿一下,目的是要轉至linux下學習C程式設計
1.下載vim及基本配置
終端下
- $sudo apt-get install vim
輸入命令
- $vim ~/.vimrc
建立vim環境設定檔案
基本配置如下:
- :set nu "設定顯示行號
- :set backspace=2 "能使用backspace回刪
- :syntax on "語法檢測
- :set ruler "顯示最後一行的狀態
- :set bg=dark "背景色設定
- :set hlsearch "高亮度反白
- :set laststatus=2 "兩行狀態行+一行命令列
- :set cindent "設定c語言自動對齊
- :set t_Co=256 "指定配色方案為256
- :set mouse=a "設定可以在VIM使用滑鼠
- :set tabstop=4 "設定TAB寬度
- :set history=1000 "設定歷史記錄條數
- :set nocompatible "設定不相容
更多設定可以再vim中輸入:set all 查閱,可以設定的很多,我只需要設定部分就好了
2.選擇一個外掛管理軟體
有兩種比較流行的外掛管理,分別是Vundle和Pathogen.
pathogen使用簡單方便,有效,安裝外掛方式:
先建立兩個資料夾:
- mkdir -p ~/.vim/autoload ~/.vim/bundle
- curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
安裝成功,在./vimrc中加入:
- "PATHOGEN配置
- :execute pathogen#infect()
- :filetype plugin on "允許外掛
- :filetype plugin indent on "啟動智慧補全
再github中直接新增外掛的方法:
如:
- $cd ~/.vim/bundle #進入目錄
- $git clone git://github.com/tpope/vim-sensible.git #從github上下載
接著,在vim中輸入:Helptags 生成幫助檔案,就能夠輸入:help vim-sensible 檢視幫助文件
如此就安裝好了外掛,開啟幫助文件,再進行下一步 的詳細配置
3.安裝NERDTREE外掛
管理一個大的專案時,把程式碼分散到不同的檔案裡面是非常好的主意。也是一個基本的編碼原則。NERDTree 是一個不錯的可以直接在Vim裡使用的檔案瀏覽器,它可以讓你隨時想到所有的檔案。
安裝,在終端輸入命令:
- $cd ~/.vim/bundle
- $git clone https://github.com/scrooloose/nerdtree.git
安裝完後,重新開啟vim,輸入:helptags 再開啟 :help NERD_tree.txt 可以配置.vimrc了
在vim中輸入命令: NERDTree就可以瀏覽檔案了
我的.vimrc檔案添加了以下程式碼:
- "快捷鍵:使用F3開啟關閉
- map <F3> :NERDTreeMirror <CR>
- map <F3> :NERDTreeToggle <CR>
- NERDTree配置
- let NERDChristmasTree=1 "顯示增強
- let NERDTreeAutoCenter=1 "自動調整焦點
- let NERDTreeShowFiles=1 "顯示檔案
- let NERDTreeShowLineNumbers=1 "顯示行號
- let NERDTreeHightCursorline=1 "高亮當前檔案
- let NERDTreeShowHidden=0 "顯示隱藏檔案
- let NERDTreeMinimalUI=0 "不顯示'Bookmarks' label 'Press ? for help'
- let NERDTreeWinSize=31 "視窗寬度
Nerdtree快捷鍵
o 開啟關閉檔案或者目錄
t 在標籤頁中開啟
T 在後臺標籤頁中開啟
! 執行此檔案
p 到上層目錄
P 到根目錄
K 到第一個節點
J 到最後一個節點
u 開啟上層目錄
m 顯示檔案系統選單(新增、刪除、移動操作)
? 幫助
q 關閉
常常用到的是:ctrl+] ctrl+t o
4.自動補全:supertab外掛
用過vs2010和code::blocks ,它們的自動補全功能確實強大 ,supertab就有很好的語法補全功能(連結:supertab)
安裝命令:
- $cd ~/.vim/bundle
- $git clone https://github.com/ervandew/supertab
安裝完成後,在.vimrc中加入程式碼:
- "配置Supertab
- let g:SuperTabRetainCompletionType=2 "記住上次的補全方式,直到按Esc退出插入模式位置
- let g:SuperTabDefaultCompletionType="<c-x><c-o>" "按下tab後預設補全方式為<c-p>,現在改為<c-x><c-o>
還有很多補全方式,可以輸入 :help ins-completion 或:help compl-omni 檢視更多
開啟vim後輸入想輸入的詞的首幾個字母,按下Tab鍵就能補全.更多還是請參考手冊
5.Ctags和Taglist外掛
Ctags工具是用來遍歷原始碼檔案生成tags檔案,這些tags檔案能被編輯器或其它工具用來快速查詢定位原始碼中的符號(tag/symbol),如變數名,函式名等。比如,tags檔案就是Taglist和OmniCppComplete工作的基礎.ctags程式其是叫"Exuberant Ctags".
為了方便使用Vim閱讀原始碼,Tag List 這個Vim外掛不可或缺。這是一個用來瀏覽原始碼的Vim外掛,使用它我們可以概覽原始碼的結構並在各個原始檔中跳轉瀏覽,非常方便。Tag List外掛需要Ctags這個程式的支援(動態生成tag file).
安裝ctags方式有兩種:
輸入命令安裝: sudo apt-get install ctags
下載成功後解壓檔案編譯安裝:
進入資料夾,終端中依次輸入:
- $./configure
- $make
- $sudo make install
使用方法:
在你的工程的原始碼資料夾內輸入命令:
- $ctags -R
“$ ctags –R *”:“-R”表示遞迴建立,也就包括原始碼根目錄(當前目錄)下的所有子目錄。“*”表示所有檔案。這條命令會在當前目錄下產生一個“tags”檔案,當用戶在當前目錄中執行vi時,會自動載入此tags檔案。
解壓後直接放在~/.vim/bundle之下,(遇到的問題是打開不了:helptags) 可以開啟taglist.txt根據裡面的資訊進行配置
同樣的在.vimrc加上如下配置程式碼
- "taglist配置資訊
- let Tlist_Auto_Open=1 " Let the tag list open automatically
- let Tlist_Auto_Update=1 " Update the tag list automatically
- let Tlist_Compact_Format=1 " Hide help menu
- let Tlist_Ctags_Cmd='ctags' " Location of ctags
- let Tlist_Enable_Fold_Column=0 "do show folding tree
- let Tlist_Process_File_Always=1 " Always process the source file
- let Tlist_Show_One_File=1 " Only show the tag list of current file
- let Tlist_Exist_OnlyWindow=1 " If you are the last, kill yourself
- let Tlist_File_Fold_Auto_Close=0 " Fold closed other trees
- let Tlist_Sort_Type="name" " Order by name
- let Tlist_WinWidth=30 " Set the window 40 cols wide.
- let Tlist_Close_On_Select=1 " Close the list when a item is selected
- let Tlist_Use_SingleClick=1 "Go To Target By SingleClick
- let Tlist_Use_Right_Window=1 "在右側顯示
- "開啟關閉快捷鍵
- map <silent> <F2> :TlistToggle<CR>
這樣使用起來就很方便:使用命令:$ctags -R 進入vim開啟關閉 F2
今天就先配置到這裡,程式設計水平不高,還未到改進IDE來提高效率的階段,還是先去學程式設計,先挖坑有空再回來填........
6.我的.vimrc檔案和實際效果圖
我的.vimrc檔案:
- :set nu "設定顯示行號
- :set backspace=2 "能使用backspace回刪
- :syntax on "語法檢測
- :set ruler "顯示最後一行的狀態
- :set bg=dark "背景色設定
- :set hlsearch "高亮度反白
- :set laststatus=2 "兩行狀態行+一行命令列
- :set cindent "設定c語言自動對其
- :set t_Co=256 "指定配色方案為256
- :set mouse=a "設定可以在VIM使用滑鼠
- :set tabstop=4 "設定TAB寬度
- :set history=1000 "設定歷史記錄條數
- "PATHOGEN配置
- :execute pathogen#infect()
- :filetype plugin on "允許外掛
- :filetype plugin indent on "啟動智慧補全
- "配置nerdtree使用F3開啟關閉
- map <F3> :NERDTreeMirror <CR>
- map <F3> :NERDTreeToggle <CR>
- "NERDTree配置
- let NERDChristmasTree=1 "顯示增強
- let NERDTreeAutoCenter=1 "自動調整焦點
- let NERDTreeShowFiles=1 "顯示檔案
- let NERDTreeShowLineNumbers=1 "顯示行號
- let NERDTreeHightCursorline=1 "高亮當前檔案
- let NERDTreeShowHidden=0 "顯示隱藏檔案
- let NERDTreeMinimalUI=0 "不顯示'Bookmarks' label 'Press ? for help'
- let NERDTreeWinSize=31 "視窗寬度
- "配置Supertab
- let g:SuperTabRetainCompletionType=2 "記住上次的補全方式,直到按Esc退出插入模式位置
- "let g:SuperTabDefaultCompletionType="<c-x><c-o>" "按下tab後預設補全方式為<c-p>,現在改為<c-x><c-o>
- "預設最大化視窗開啟
- au GUIEnter * simalt ~x
- "taglist配置資訊
- let Tlist_Auto_Open=1 " Let the tag list open automatically
- let Tlist_Auto_Update=1 " Update the tag list automatically
- let Tlist_Compact_Format=1 " Hide help menu
- let Tlist_Ctags_Cmd='ctags' " Location of ctags
- let Tlist_Enable_Fold_Column=0 "do show folding tree
- let Tlist_Process_File_Always=1 " Always process the source file
- let Tlist_Show_One_File=1 " Only show the tag list of current file
- let Tlist_Exist_OnlyWindow=1 " If you are the last, kill yourself
- let Tlist_File_Fold_Auto_Close=0 " Fold closed other trees
- let Tlist_Sort_Type="name" " Order by name
- let Tlist_WinWidth=30 " Set the window 40 cols wide.
- let Tlist_Close_On_Select=1 " Close the list when a item is selected
- let Tlist_Use_SingleClick=1 "Go To Target By SingleClick
- let Tlist_Use_Right_Window=1 "在右側顯示
- map <silent> <F2> :TlistToggle<CR>
- "開啟關閉快捷鍵
實際效果圖如下,熱鍵F2,F3(開啟關閉目錄樹和taglist),tab鍵(自動補全)
還有很多優秀的外掛,此坑待填,等水平上來了再修改
更多的指令可以在vim 中輸入:help 檢視各種manual reference
轉自:
https://blog.csdn.net/liangsir_l/article/details/50608350