Vim 配置文件===/etc/vimrc

1.替換方法php

    替換對應的vimrc文件,定製本身的vimrc程序員

    /etc/vimrc              替換此文件;編程

    /home/lmy/.vimrc     只對當前用戶有效;vim

 

    Ubuntu9.10:替換/etc/vim/vimrc,能夠在新立得軟件包管理器,查看vim到安裝路徑;windows

    CentOS5.3:替換/etc/vimrc,vim安裝目錄:/usr/share/vim/vim70;瀏覽器

 

    taglist.vim、winmanager.vim、supertab.vim等插件copy到相應到位置plugin目錄;函數

 

1.1 vim錯誤學習

 

    Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.字體

    經過新立得安裝「ctags」ui

 

1.2 SuperTab代碼補全

 

    下載插件http://www.vim.org/scripts/script.php?script_id=1643

    將supertab.vim拷貝到/usr/share/vim/vim72/plugin/

    須要補全代碼時用"tab"

 

 

 

1.3 Ctags 在程序中跳來跳去

 

    Tag文件(標籤文件)但是程序員的看家寶呀, tags 文件是由ctags程序產生的一個索引文件, ctags程序其是叫"Exuberant Ctags", 是Unix上面ctags程序的替代品, 而且比它功能強大, 是大多數Linux發行版上默認的ctags程序。

    那麼tags文件是作什麼用的呢? 若是你在讀程序時看了一個函數調用, 或者一個變量, 或者一個宏等等, 你想知道它們的定義在哪兒, 怎麼辦呢? 用grep? 那會搜出不少不相干的地方. 如今流行用是的<C-]>, 誰用誰知道呀, 當光標在某個函數或變量上時, 按下"Ctrl+]", 光標會自動跳轉到其定義處, 若是此時你還想再跳回剛纔的位置, 你還能夠按<C-T>。

 

用下面的命令解壓安裝:

 

$ tar -xzvf ctags-5.6.tar.gz

$ cd ctags-5.6

$ make

# make install   // 須要root權限

 

 

而後去你的源碼目錄, 若是你的源碼是多層的目錄, 就去最上層的目錄, 在該目錄下運行命令: ctags -R

我如今以 vim71 的源碼目錄作演示,那麼會產生tags文件,能夠打開這個文件看一下,能夠看到哪些標識能夠定位;

 

$ cd /home/wooin/vim71

$ ctags -R

 

 

此時在/home/wooin/vim71目錄下會生成一個 tags 文件, 如今用vim打開 /home/wooin/vim71/src/main.c

 

$ vim /home/wooin/vim71/src/main.c

 

 

再在vim中運行命令,就是將vim中引用剛纔產生的tags

 

:set tags=/home/wooin/vim71/tags

 

 

此時在回頭學習一下第3節中說的vim手冊吧

 

:help usr_29

 

 

不過還有一個小瑕疵, 你修改程序後, 好比增長了函數定義, 刪除了變量定義, tags文件不能自動rebuild, 你必須手動再運行一下命令:

 

$ ctags -R

 

 

1.4 Taglist---幫你高效地瀏覽源碼

    下載地址:http://www.vim.org/scripts/script.php?script_id=273

    安裝方法:將taglist.vim拷貝到/usr/share/vim/vim72/plugin/

 

    在Windows平臺上用過Source Insight看程序的人確定很熟悉代碼窗口左邊那個Symbol窗口, 那裏面列出了當前文件中的全部宏, 全局變量, 函數名等, 在查看代碼時用這個窗口總攬全局, 切換位置至關方便, 今天告訴你一個vim的插件: Taglist, 能夠一樣實現這個功能.

    上一節已經告訴你ctags的用法了, ctags的基本原理是將程序程序中的一些關鍵字(好比:函數名, 變量名等)的名字, 位置等信息經過一個窗口告訴你, 若是你已經安裝好taglist, 則能夠用下面的命令看看taglist自帶的幫助文件:

 

:help taglist.txt

 

 

首先請先在你的vimrc文件中添加下面三句

 

let Tlist_Show_One_File=1

let Tlist_Exit_OnlyWindow=1

let Tlist_Use_Right_Window=1         

 

 

此時用vim打開一個c源文件試試:

 

$ vim ~/vim/src/main.c                     

 

 

進入vim後用下面的命令打開taglist窗口

 

:Tlist                                                   

 

 

<C-W>能夠在各打開窗口間切換

 

1.5 WinManager---文件瀏覽器和窗口管理器

 

下載地址:http://www.vim.org/scripts/script.php?script_id=95

安裝方法:將wintagexplorer.vim、winmanager.vim、winfileexplorer.vim拷貝到/usr/share/vim/vim72/plugin/

WinManager幫助手冊:

 

:help winmanager                   

 

 

注意:<C-W>能夠在各打開窗口間切換

注意:輸入命令:WMToggle打開關閉下圖的窗格

 

在vimrc中加入下面語句:

 

let g:winManagerWindowLayout= 'FileExplorer|TagList'      

let g:winManagerWidth = 20                

let g:defaultExplorer = 0                      

nmap <C-w><C-b> :BottomExplorerWindow<cr>    " 切換到最下面一個窗格

nmap <C-w><C-f> :FirstExplorerWindow<cr>          " 切換到最上面一個窗格

nmap wm:WMToggle<cr>                                           " 輸入命令:WMToggle打開關閉

 

 

 

 

 

 

 

 

2.個人vim配置文件vimrc

 

"==================================================

"    Filename:     vimrc                     " Ubuntu下路徑爲/etc/vim/vimrc

"    Author:     myswirl

"    Email:     myswirl@163.com

"    Created:     2010-05-18

"==================================================

set fileencodings=ucs-bom,utf-8,cp936     " 打開文件時會根據fileencodings選項來識別文件編碼

set fileencoding=utf-8                     " 保存新建文件時會根據fileencoding的設置編碼來保存

set encoding=utf-8                        " Vim的內部使用編碼

set termencoding=utf-8                    " Vim終端所使用的編碼

set guifont=Luxi\ Mono\ 9                 " 設置字體,字體名稱和字號

set tabstop=4                             " 設置tab鍵的寬度

set backspace=2                           " 設置退格鍵可用

set nu                                    " 顯示行號

set nocompatible                          " 去掉兼容性bug,上下左右能夠使用

"set vbt_vb=                              " vim進行編輯時,若是命令錯誤,會發出一個響聲,該設置去掉響聲

set wrap                                 " 自動換行

"set nowrap                               " 不自動換行

set linebreak                             " 整詞換行

set whichwrap=b,s,<,>,[,]                 " 光標從行首和行末時能夠跳到另外一行去

"set list                                 " 顯示製表符

"set listchars = tab:>-,trail:-           " 將製表符顯示爲'>---',將行尾空格顯示爲'-'

"set listchars=tab:.\ ,trail:.             " 將製表符顯示爲'.    '

"set autochdir                            " 自動設置目錄爲正在編輯的文件所在的目錄

set hidden                                " 沒有保存的緩衝區能夠自動被隱藏

set scrolloff=5                           " scrolloff

"--------------------------------------------------------------------------------

" 查找/替換相關的設置

"--------------------------------------------------------------------------------

set hlsearch                             " 高亮顯示搜索結果

set incsearch                            " 查詢時很是方便,如要查找book單詞,當輸入到/b時,會自動找到

                                        " 第一個b開頭的單詞,當輸入到/bo時,會自動找到第一個bo開頭的

                                         " 單詞,依次類推,進行查找時,使用此設置會快速找到答案,當你

                                         " 找要匹配的單詞時,別忘記回車

set gdefault                             " 替換時全部的行內匹配都被替換,而不是隻有第一個

"--------------------------------------------------------------------------------

" 狀態欄相關的設置

"--------------------------------------------------------------------------------

set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]

set laststatus=2                         " 老是顯示狀態行

set ruler                                " 在編輯過程當中,在右下角顯示光標位置的狀態行

"--------------------------------------------------------------------------------

" 編程相關的設置

"--------------------------------------------------------------------------------

set completeopt=longest,menu              " 關掉智能補全時的預覽窗口

filetype plugin indent on               " 加了這句才能夠用智能補全

:set tags=/home/lmy/ipmsg/tags

syn on                                   " 打開語法高亮

set showmatch                            " 設置匹配模式,相似當輸入一個左括號時會匹配相應的那個右括號

set smartindent                          " 智能對齊方式

set shiftwidth=4                         " 換行時行間交錯使用4個空格

set autoindent                           " 自動對齊

set ai!                                  " 設置自動縮進

colorscheme desert                       " 配色方案/usr/share/vim/vim72/colors

"--------------------------------------------------------------------------------

" 代碼摺疊

"--------------------------------------------------------------------------------

set foldmarker={,}

set foldmethod=syntax                    " maker syntax

set foldlevel=100                        " Don't autofold anything (but I can still fold manually)

"set foldopen-=search                    " don't open folds when you search into them

"set foldopen-=undo                      " don't open folds when you undo stuff

"set foldcolumn=4                        "

"--------------------------------------------------------------------------------

" 模仿MS Windows中的快捷鍵

"--------------------------------------------------------------------------------

vmap <C-c> "yy

vmap <C-x> "yd

nmap <C-v> "yp

vmap <C-v> "yp

nmap <C-a> ggvG$         "

"--------------------------------------------------------------------------------

" 窗口操做的快捷鍵

"--------------------------------------------------------------------------------

nmap wv      <C-w>v                      " 垂直分割當前窗口

nmap wc      <C-w>c                      " 關閉當前窗口

nmap ws      <C-w>s                      " 水平分割當前窗口

"--------------------------------------------------------------------------------

" 模仿MS Windows中的保存命令: Ctrl+S

"--------------------------------------------------------------------------------

imap <C-s> <Esc>:wa<cr>i<Right>

nmap <C-s> :wa<cr>

"################################################

" The following is the Plugins' setting

"################################################

"--------------------------------------------------------------------------------

" TagList :Tlist

"--------------------------------------------------------------------------------

let Tlist_Show_One_File= 1        "

let Tlist_Exit_OnlyWindow = 1     "

let Tlist_Use_Right_Window=1      "

"--------------------------------------------------------------------------------

" netrw 文件瀏覽器 :e <PATH>

"--------------------------------------------------------------------------------

let g:netrw_winsize = 20                 " 瀏覽器寬度

"--------------------------------------------------------------------------------

" QuickFix

"--------------------------------------------------------------------------------

nmap <F6> :cn<cr>    " 切換到下一個結果

nmap <F7> :cp<cr>    " 切換到上一個結果

"--------------------------------------------------------------------------------

" WinManager :WMToggle

"--------------------------------------------------------------------------------

let g:winManagerWindowLayout= 'FileExplorer|TagList'        "

let g:winManagerWidth = 20                  "

let g:defaultExplorer = 0                   "

nmap <C-w><C-b> :BottomExplorerWindow<cr>     " 切換到最下面一個窗格

nmap <C-w><C-f> :FirstExplorerWindow<cr>    " 切換到最上面一個窗格

nmap wm:WMToggle<cr>                        " 輸入命令:WMToggle打開

"--------------------------------------------------------------------------------

" MiniBufExp

"--------------------------------------------------------------------------------

"let g:miniBufExplMapWindowNavVim = 1

"let g:miniBufExplMapWindowNavArrows = 1

"let g:miniBufExplMapCTabSwitchBufs = 1

"let g:miniBufExplModSelTarget = 1

"--------------------------------------------------------------------------------

" cscope

"--------------------------------------------------------------------------------

cs add /home/nfs/microwindows/src/cscope.out /home/nfs/microwindows/src

":set cscopequickfix=s-,c-,d-,i-,t-,e-

":set cscopetag

" 按下面這種組合鍵有技巧,按了<C-_>後要立刻按下一個鍵,不然屏幕一閃

" 就回到nomal狀態了

" <C-_>s的按法是先按"Ctrl+Shift+-",而後很快再按"s"

nmap <C-_>s :cs find s <C-R>=expand("<cword>")<cr><cr> :cw<cr>

nmap <C-_>g :cs find g <C-R>=expand("<cword>")<cr><cr> :cw<cr>

nmap <C-_>c :cs find c <C-R>=expand("<cword>")<cr><cr> :cw<cr>

nmap <C-_>t :cs find t <C-R>=expand("<cword>")<cr><cr> :cw<cr>

nmap <C-_>e :cs find e <C-R>=expand("<cword>")<cr><cr> :cw<cr>

nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<cr><cr>

nmap <C-_>i :cs find i <C-R>=expand("<cfile>")<cr><cr> :cw<cr>

nmap <C-_>d :cs find d <C-R>=expand("<cword>")<cr><cr> :cw<cr>

"--------------------------------------------------------------------------------

" Grep

"--------------------------------------------------------------------------------

"直接按下<F3>鍵來查找光標所在的字符串

nnoremap <silent> <F3> :Rgrep<CR>

"--------------------------------------------------------------------------------

" A

"--------------------------------------------------------------------------------

nnoremap <silent> <F12> :A<CR>

"--------------------------------------------------------------------------------

" NERD_commenter

"--------------------------------------------------------------------------------

let NERD_c_alt_style = 1                             " 將C語言的註釋符號改成//, 默認是/**/

nmap <F5> ,cc

"--------------------------------------------------------------------------------

" SuperTab :SuperTabHelp

"--------------------------------------------------------------------------------

"let g:SuperTabRetainCompletionType = 2

"let g:SuperTabDefaultCompletionType = "<C-X><C-O>"

"--------------------------------------------------------------------------------

" CVim :help csupport

"--------------------------------------------------------------------------------

let g:C_Comments = "no"          " 用C++的註釋風格

let g:C_BraceOnNewLine = "no"    " '{'是否獨自一行

let g:C_AuthorName= "Lmy"                 "

let g:C_Project= 'F9'                         "    

let g:Cpp_Template_Function = "c-function-description-Lmy"  "

let g:C_TypeOfH = "c"            " *.h文件的文件類型是C仍是C++

"#################################################

"########################## End Of Vimrc ##########################

"#################################################

" if filetype is C

" TODO

" fi

相關文章
相關標籤/搜索