在網上看到大神們玩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
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
下載安裝:http://ctags.sourceforge.net
下載成功後解壓文件編譯安裝:
進入文件夾,終端中依次輸入:
$./configure
$make
$sudo make install
使用方法:
在你的工程的源碼文件夾內輸入命令:
$ctags -R
“$ ctags –R *”:“-R”表示遞歸創建,也就包括源代碼根目錄(當前目錄)下的所有子目錄。“*”表示所有文件。這條命令會在當前目錄下產生一個“tags”文件,當用戶在當前目錄中運行vi時,會自動載入此tags文件。
安裝taglist :下載地址http://www.vim.org/scripts/script.php?script_id=273
解壓後直接放在~/.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
一些參考的博文:
所需即所獲:像 IDE 一樣使用 vim
推薦學習vim指令資料:鳥哥的linux私房菜,網易雲課堂上的魚C工作室