VIM學習筆記 設定檔(vimrc)

來源:互聯網
上載者:User
VIM學習筆記 設定檔(vimrc)

在vim啟動過程中,首先將尋找設定檔並執行其中的命令。而這些初始設定檔案一般有vimrc、gvimrc和exrc三種。

利用:version命令,可以得到設定檔的詳細資料。

注意:如果執行gvim,那麼$VIMRUNTIME/menu.vim也會被執行。

設定檔位置

vimrc是主設定檔,它有全域和使用者兩種版本。

全域vimrc檔案,存放在Vim的安裝目錄中。可以使用以下命令,確定Vim的安裝目錄:

:echo $VIM

預設情況下,系統vimrc存放在以下位置:

Linux: /usr/share/vim/vimrc

Windows: c:\program files\vimrc

使用者vimrc檔案,存放在使用者主目錄中。可以使用以下命令,確定使用者主目錄:

:echo $HOME

預設情況下,使用者vimrc存放在以下位置:

Linux: /home/username/.vimrc

Windows: c:\documents and settings\username\_vimrc

注意:使用者設定檔優先於系統設定檔。

gvimrc是GVIM的設定檔,它也有全域和使用者兩種版本,並且存放在與vimrc相同的目錄中。

預設情況下,系統gvimrc存放在以下位置:

Linux: /usr/share/vim/gvimrc

Windows: c:\program files\vim\_gvimrc

預設情況下,使用者gvimrc存放在以下位置:

Linux: /home/username/.gvimrc

Windows: c:\documents and settings\username\_gvimrc

exrc檔案,僅用於向後相容olvi/ex,它的全域和使用者兩種版本也放置於vimrc相同的目錄裡。除非你使用vi-compatible模式,否則不需要關注exrc設定檔。

注意:在Unix和Linux下,vim的設定檔被命名為以點開頭的隱藏檔案;而在Windows下,設定檔則以底線開頭命名。

編輯設定檔

可以使用以下命令,建立緩衝區來編輯設定檔:

:edit $MYVIMRC

也可以使用以下命令,建立標籤頁來編輯設定檔:

:tabedit $MYVIMRC

例如,我們可以在設定檔中使用以下命令,來設定vim的選項:

:syntax on "開啟文法加亮功能

:set shiftwidth=4 "設定縮排寬度為4個空格

其中,單引號(")為注釋內容。

應用設定檔

修改設定檔後,需要重新啟動Vim,或使用:source命令來應用新的設定:

:source $MYVIMRC

我們可以在設定檔中增加以下命令,在儲存後自動應用配置:

autocmd bufwritepost .vimrc source $MYVIMRC

設定檔執行個體

以下是本人的vim設定檔內容,供各位參考:

set ignorecase smartcase " 搜尋時忽略大小寫,但在有一個或以上大寫字母時仍保持對大小寫敏感</p><p>set nu " 顯示行號<br />set ruler<br />set rulerformat=%55(%{strftime('%a\ %b\ %e\ %I:%M\ %p')}\ %5l,%-6(%c%V%)\ %P%)<br />set guioptions+=b<br />set guioptions-=T</p><p>set paste<br />"set clipboard=unnamed " 讓Vim和Win共用剪貼簿</p><p>set cursorline cursorcolumn</p><p>syntax enable " 開啟文法高亮<br />syntax on " 允許按指定主題進行文法高亮,而非預設高亮主題<br />colorscheme xoria256 " 指定色彩配置</p><p>set showcmd " 在命令列顯示當前輸入的命令</p><p>set langmenu=en_US " 將菜單和資訊設定為英文<br />let $LANG = 'en_US'<br />source $VIMRUNTIME/delmenu.vim<br />source $VIMRUNTIME/menu.vim</p><p>set fileencoding=utf-8 " 設定多編碼處理<br />set encoding=utf-8<br />set tenc=utf-8<br />set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1<br />"language message zh_CN.UTF-8</p><p>filetype on " 開啟檔案類型偵測<br />filetype plugin on " 根據偵測到的不同類型載入對應的外掛程式</p><p>if has("autocmd") && exists("+omnifunc")<br />autocmd Filetype *<br />\ if &omnifunc == "" |<br />\ setlocal omnifunc=syntaxcomplete#Complete |<br />\ endif<br />endif</p><p>set laststatus=2 " 設定狀態列<br />set statusline=%2*%n%m%r%h%w%*\ %F\ %1*[FORMAT=%2*%{&ff}:%{&fenc!=''?&fenc:&enc}%1*]\ [TYPE=%2*%Y%1*]\ [COL=%2*%03v%1*]\ [ROW=%2*%03l%1*/%3*%L(%p%%)%1*]\ [DATE=%2*%{strftime(\"%c\",getftime(expand(\"%%\")))}%1*]<br />"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]</p><p>function! InsertStatuslineColor(mode)<br /> if a:mode == 'i'<br /> hi statusline guibg=peru<br /> elseif a:mode == 'r'<br /> hi statusline guibg=blue<br /> else<br /> hi statusline guibg=black<br /> endif<br />endfunction</p><p>au InsertEnter * call InsertStatuslineColor(v:insertmode)<br />au InsertLeave * hi statusline guibg=orange guifg=white<br />hi statusline guibg=black</p><p>hi User1 guifg=gray<br />hi User2 guifg=red<br />hi User3 guifg=white</p><p>set winaltkeys=no</p><p>" map<br />nmap <tab> V><br />nmap <s-tab> V<<br />vmap <tab> >gv<br />vmap <s-tab> <gv<br />" 開啟另存新檔對話方塊<br />map <F2> <Esc>:browse saveas<CR><br />" 使用NERDTree外掛程式查看工程檔案<br />nmap <F3> :NERDTreeToggle planning<CR><br />" 啟用/禁止折行<br />nmap <silent> <F5> <Esc>:call ToggleWrap()<CR><br />" 顯示/禁止行列游標<br />nmap <silent> <F6> <Esc>:call ToggleCursor()<CR><br />" 建立標籤頁<br />map <F10> <Esc>:tabnew<CR><br />" 顯示/禁止尋找高亮度<br />nmap <silent> <A-f> <Esc>:call ToggleHLSearch()<CR></p><p>function! ToggleWrap()<br /> if &wrap<br /> set nowrap<br /> else<br /> set wrap<br /> endif<br />endfunction</p><p>function! ToggleHLSearch()<br /> if &hls<br /> set nohls<br /> else<br /> set hls<br /> endif<br />endfunction</p><p>function! ToggleCursor()<br /> if &cursorcolumn<br /> set nocursorline nocursorcolumn<br /> else<br /> set cursorline cursorcolumn<br /> endif<br />endfunction</p><p>let mapleader=";" " 定義快速鍵的首碼,即<Leader><br />nmap <leader>v :tabedit $MYVIMRC<CR></p><p>" 設定檔<br />autocmd bufwritepost _vimrc source $MYVIMRC</p><p>" 設定檔案格式<br />set fileformats=unix,dos,mac</p><p>" Template<br />autocmd! BufNewFile * silent! 0r $VIM/vimfiles/skel/Template.%:e</p><p>" 指定備份檔案目錄<br />set backupdir=F:\Bak<br />set backupskip=D:/Temp/*</p><p>" 取消代碼自動摺疊<br />autocmd! BufNewFile,BufRead * setlocal nofoldenable<br />" 開啟/關閉程式碼摺疊功能<br />nnoremap <space> za</p><p>" 最佳化大檔案編輯<br />let g:LargeFile=10</p><p>" 自動負載檔案<br />set autoread</p><p>set list!<br />set listchars=nbsp:¬,tab:┈┈,precedes:«,extends:»,trail:<br />hi NonText ctermfg=247 guifg=#a73111 cterm=bold gui=bold<br />hi SpecialKey ctermfg=77 guifg=#654321</p><p>augroup filetypedetect<br /> au BufNewFile,BufRead *.mxl setf mxl<br />augroup END</p><p>

FROM: http://yyq123.blogspot.com/2012/01/vim-vimrc.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.