VIm設定檔(全平台可用)

來源:互聯網
上載者:User

原文連結:http://www.oschina.net/code/snippet_103341_9644

Linux:

" -----------------   Author: Ruchee" -----------------    Email: my@ruchee.com" -----------------  WebSite: http://www.ruchee.com" -----------------     Date: 2012-05-01" Ctrl + H                   --游標移當前行行首" Ctrl + J                   --游標移下一行行首" Ctrl + K                   --游標移上一行行尾" Ctrl + L                   --游標移當前行行尾" Ctrl + C                   --編譯 [支援C/C++、Java、Haskell]" Ctrl + R                   --運行 [支援C/C++、Java、Haskell、Lua、Perl、Python、Ruby]" Ctrl + ]                   --轉到函數定義" Ctrl + T                   --返回調用函數" Ctrl + E                   --一步載入文法模板和作者、時間資訊" <C-P>                      --單詞補全" <C-X><C-L>                 --整行補全" Tab鍵                      --插入模式下的全功能文法結構補全 [snipMate外掛程式]" Shift + Insert             --向Vim中粘貼從別處複製的內容" u [小寫]                   --單步複原 [非插入模式]" U [大寫]                   --整行複原 [非插入模式]" jj                         --儲存檔案並留在插入模式 [插入模式]" kk                         --返回Normal模式 [插入模式]" nt                         --開啟NERDTree [非插入模式]" tl                         --開啟TagList [非插入模式]" za                         --開啟或關閉當前摺疊" zM                         --關閉所有摺疊" zR                         --開啟所有摺疊" :set syntax=cpp            --手動選擇文法高亮 [或 :set filetype=cpp]" :%!xxd                     --轉儲二進位檔案,以十六進位形式顯示" :%!xxd -r                  --還原二進位檔案" ---------- 主要外掛程式詳細用法說明 ---------------------" :Tlist                     --呼出變數和函數列表 [TagList外掛程式]" :LoadTemplate              --呼出文法模板 [Load_Template外掛程式]" :AuthorInfoDetect          --添加作者、時間等資訊 [NERD_commenter && authorinfo外掛程式]" ---------- a.vim [自動切換C/C++同名標頭檔] ----------"" :A                         --切換同名標頭檔並獨佔整個螢幕" :AS                        --切換同名標頭檔並垂直分屏,標頭檔在上" :AV                        --切換同名標頭檔並水平分割,標頭檔在左" ---------- NERDTree [智慧型檔案瀏覽器] ----------------"" :NERDTree                  --啟動NERDTree外掛程式" o [小寫]                   --切換當前檔案或目錄的開啟、關閉狀態" u                          --開啟上層目錄" p [小寫]                   --返回上層目錄" P [大寫]                   --返回根目錄" K                          --轉到目前的目錄第一個節點" J                          --轉到目前的目錄最後的節點" m                          --顯示檔案系統菜單 [增、刪、移]" ?                          --彈出協助菜單" q                          --退出該外掛程式" 將所有以.html結尾的文檔以Django Template文法進行渲染" 本配置語句必須放在所有配置的最前面au BufNewFile,BufRead *.html setf htmldjangocolorscheme elflord          " 著色模式set guifont=Monaco:h10       " 字型 && 字型大小set tabstop=4                " 設定tab鍵的寬度set shiftwidth=4             " 換行時行間交錯使用4個空格set autoindent               " 自動對齊set backspace=2              " 設定退格鍵可用set cindent shiftwidth=4     " 自動縮排4空格set smartindent              " 智能自動縮排set ai!                      " 設定自動縮排set nu!                      " 顯示行號"set showmatch               " 顯示括弧配對情況set mouse=a                  " 啟用滑鼠set ruler                    " 右下角顯示光線標位置的狀態行set incsearch                " 開啟即時搜尋功能set hlsearch                 " 開啟高亮顯示結果set nowrapscan               " 搜尋到檔案兩端時不重新搜尋set nocompatible             " 關閉相容模式set vb t_vb=                 " 關閉提示音"set cursorline              " 反白當前行set hidden                   " 允許在有未儲存的修改時切換緩衝區set list                     " 顯示Tab符,使用一高亮豎線代替set listchars=tab:\|\ ,syntax enable                " 開啟文法高亮syntax on                    " 開啟檔案類型偵測filetype indent on           " 針對不同的檔案類型採用不同的縮排格式filetype plugin on           " 針對不同的檔案類型載入對應的外掛程式filetype plugin indent on    " 啟用自動補全set writebackup              " 設定無備份檔案set nobackupset autochdir                " 設定檔案瀏覽器目錄為目前的目錄"set nowrap                  " 設定不自動換行set foldmethod=syntax        " 選擇程式碼摺疊功能類型set foldlevel=100            " 禁止自動摺疊set laststatus=2             " 開啟狀態列資訊set cmdheight=2              " 命令列的高度,預設為1,這裡設為2" 每行超過80個的字元用底線標示au BufRead,BufNewFile *.s,*.asm,*.h,*.c,*.cpp,*.cc,*.java,*.cs,*.erl,*.hs,*.sh,*.lua,*.pl,*.pm,*.php,*.py,*.rb,*.erb,*.vim,*.js,*.css,*.xml,*.html,*.xhtml 2match Underlined /.\%81v/" 設定編碼set fenc=utf-8set encoding=utf-8set fileencodings=utf-8,gbk,cp936,latin-1" For Haskell:let hs_highlight_delimiters=1            " 高亮定界符:let hs_highlight_boolean=1               " 把True和False識別為關鍵字:let hs_highlight_types=1                 " 把基本類型的名字識別為關鍵字:let hs_highlight_more_types=1            " 把更多常用類型識別為關鍵字:let hs_highlight_debug=1                 " 高亮調試函數的名字:let hs_allow_hash_operator=1             " 阻止把#高亮為錯誤" ======= 引號 && 括弧自動匹配 ======= ":inoremap ( ()<ESC>i:inoremap ) <c-r>=ClosePair(')')<CR>:inoremap { {}<ESC>i:inoremap } <c-r>=ClosePair('}')<CR>:inoremap [ []<ESC>i:inoremap ] <c-r>=ClosePair(']')<CR>":inoremap < <><ESC>i":inoremap > <c-r>=ClosePair('>')<CR>:inoremap " ""<ESC>i:inoremap ' ''<ESC>i:inoremap ` ``<ESC>ifunction ClosePair(char)    if getline('.')[col('.') - 1] == a:char        return "\<Right>"    else        return a:char    endifendf" MiniBufExplorer     多個檔案切換 可使用滑鼠雙擊相應檔案名稱進行切換let g:miniBufExplMapWindowNavVim=1let g:miniBufExplMapWindowNavArrows=1let g:miniBufExplMapCTabSwitchBufs=1let g:miniBufExplModSelTarget=1" :Tlist              調用TagListlet Tlist_Show_One_File=1                    " 只顯示當前檔案的tagslet Tlist_Exit_OnlyWindow=1                  " 如果Taglist視窗是最後一個視窗則退出Vimlet Tlist_Use_Right_Window=1                 " 在右側視窗中顯示let Tlist_File_Fold_Auto_Close=1             " 自動摺疊" TxtBrowser          高亮TXT文字檔au BufRead,BufNewFile *.txt setlocal ft=txt" :LoadTemplate       根據檔案尾碼自動載入模板let g:template_path='/home/ruchee/.vim/template/'" :AuthorInfoDetect   自動添加作者、時間等資訊,本質是NERD_commenter && authorinfo的結合let g:vimrc_author='Ruchee'let g:vimrc_email='my@ruchee.com'let g:vimrc_homepage='http://www.ruchee.com'" Ctrl + H            將游標移到當前行的行首imap <c-h> <ESC>I" Ctrl + J            將游標移到下一行的行首imap <c-j> <ESC>jI" Ctrl + K            將游標移到上一行的末尾imap <c-k> <ESC>kA" Ctrl + L            將游標移到當前行的行尾imap <c-l> <ESC>A" Ctrl + E            一步載入文法模板和作者、時間資訊map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Giimap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Givmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi" jj                  儲存檔案並留在插入模式 [插入模式]imap jj <ESC>:w<CR>li" kk                  返回Normal模式 [插入模式]imap kk <ESC>l" nt                  開啟NERDTree [非插入模式]map nt :NERDTree<CR>" tl                  開啟Taglist [非插入模式]map tl :Tlist<CR><c-l>" ======= 編譯 && 運行 ======= "" 編譯源檔案func! CompileCode()        exec "w"        if &filetype == "c"            exec "!gcc -Wall -std=c99 %<.c -o %<"        elseif &filetype == "cpp"            exec "!g++ -Wall -std=c++98 %<.cpp -o %<"        elseif &filetype == "java"            exec "!javac %<.java"        elseif &filetype == "haskell"            exec "!ghc --make %<.hs -o %<"        elseif &filetype == "lua"            exec "!lua %<.lua"        elseif &filetype == "perl"            exec "!perl %<.pl"        elseif &filetype == "python"            exec "!python %<.py"        elseif &filetype == "ruby"            exec "!ruby %<.rb"        endifendfunc" 運行可執行檔func! RunCode()        exec "w"        if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell"            exec "! ./%<"        elseif &filetype == "java"            exec "!java %<"        elseif &filetype == "lua"            exec "!lua %<.lua"        elseif &filetype == "perl"            exec "!perl %<.pl"        elseif &filetype == "python"            exec "!python %<.py"        elseif &filetype == "ruby"            exec "!ruby %<.rb"        endifendfunc" Ctrl + C 一鍵儲存、編譯map <c-c> :call CompileCode()<CR>imap <c-c> <ESC>:call CompileCode()<CR>vmap <c-c> <ESC>:call CompileCode()<CR>" Ctrl + R 一鍵儲存、運行map <c-r> :call RunCode()<CR>imap <c-r> <ESC>:call RunCode()<CR>vmap <c-r> <ESC>:call RunCode()<CR>

Winodws:

" -----------------   Author: Ruchee" -----------------    Email: my@ruchee.com" -----------------  WebSite: http://www.ruchee.com" -----------------     Date: 2012-05-01" Ctrl + H                   --游標移當前行行首" Ctrl + J                   --游標移下一行行首" Ctrl + K                   --游標移上一行行尾" Ctrl + L                   --游標移當前行行尾" Ctrl + C                   --編譯 [支援C/C++、Java、Haskll]" Ctrl + R                   --運行 [支援C/C++、Java、Haskell、Lua、Perl、Python、Ruby]" Ctrl + ]                   --轉到函數定義" Ctrl + T                   --返回調用函數" Ctrl + E                   --一步載入文法模板和作者、時間資訊" <C-P>                      --單詞補全" <C-X><C-L>                 --整行補全" Tab鍵                      --插入模式下的全功能文法結構補全 [snipMate外掛程式]" Shift + Insert             --向Vim中粘貼從別處複製的內容" u [小寫]                   --單步複原 [非插入模式]" U [大寫]                   --整行複原 [非插入模式]" jj                         --儲存檔案並留在插入模式 [插入模式]" kk                         --返回Normal模式 [插入模式]" nt                         --開啟NERDTree [非插入模式]" tl                         --開啟TagList [非插入模式]" za                         --開啟或關閉當前摺疊" zM                         --關閉所有摺疊" zR                         --開啟所有摺疊" :set syntax=cpp            --手動選擇文法高亮 [或 :set filetype=cpp]" :%!xxd                     --轉儲二進位檔案,以十六進位形式顯示" :%!xxd -r                  --還原二進位檔案" ---------- 主要外掛程式詳細用法說明 ---------------------" :Tlist                     --呼出變數和函數列表 [TagList外掛程式]" :LoadTemplate              --呼出文法模板 [Load_Template外掛程式]" :AuthorInfoDetect          --添加作者、時間等資訊 [NERD_commenter && authorinfo外掛程式]" ---------- a.vim [自動切換C/C++同名標頭檔] ----------"" :A                         --切換同名標頭檔並獨佔整個螢幕" :AS                        --切換同名標頭檔並垂直分屏,標頭檔在上" :AV                        --切換同名標頭檔並水平分割,標頭檔在左" ---------- mark.vim [追蹤高亮指定關鍵字] ------------"" \m                         --normal模式下,在想要高亮的單詞上面敲擊\m即可高亮或取消高亮該單詞" :Mark                      --取消所有高亮" :Mark abc                  --指定高亮單詞 abc 或取消高亮 abc" ---------- NERDTree [智慧型檔案瀏覽器] ----------------"" :NERDTree                  --啟動NERDTree外掛程式" o [小寫]                   --切換當前檔案或目錄的開啟、關閉狀態" u                          --開啟上層目錄" p [小寫]                   --返回上層目錄" P [大寫]                   --返回根目錄" K                          --轉到目前的目錄第一個節點" J                          --轉到目前的目錄最後的節點" m                          --顯示檔案系統菜單 [增、刪、移]" ?                          --彈出協助菜單" q                          --退出該外掛程式" 將所有以.html結尾的文檔以Django Template文法進行渲染" 本配置語句必須放在所有配置的最前面au BufNewFile,BufRead *.html setf htmldjangocolorscheme blackboard       " 著色模式:藍色背景set guifont=Monaco:h10       " 字型 && 字型大小set tabstop=4                " 設定tab鍵的寬度set shiftwidth=4             " 換行時行間交錯使用4個空格set autoindent               " 自動對齊set backspace=2              " 設定退格鍵可用set cindent shiftwidth=4     " 自動縮排4空格set smartindent              " 智能自動縮排set ai!                      " 設定自動縮排set nu!                      " 顯示行號"set showmatch               " 顯示括弧配對情況set mouse=a                  " 啟用滑鼠set ruler                    " 右下角顯示光線標位置的狀態行set incsearch                " 開啟即時搜尋功能set hlsearch                 " 開啟高亮顯示結果set nowrapscan               " 搜尋到檔案兩端時不重新搜尋set nocompatible             " 關閉相容模式set vb t_vb=                 " 關閉提示音"set cursorline              " 反白當前行set hidden                   " 允許在有未儲存的修改時切換緩衝區set list                     " 顯示Tab符,使用一高亮豎線代替set listchars=tab:\|\ ,syntax enable                " 開啟文法高亮syntax on                    " 開啟檔案類型偵測filetype indent on           " 針對不同的檔案類型採用不同的縮排格式filetype plugin on           " 針對不同的檔案類型載入對應的外掛程式filetype plugin indent on    " 啟用自動補全if has("gui_running")    au GUIEnter * simalt ~x  " 視窗啟動時自動最大化    "winpos 20 20            " 指定視窗出現的位置,座標原點在螢幕左上方    "set lines=20 columns=90 " 指定視窗大小,lines為高度,columns為寬度    "set guioptions-=m       " 隱藏功能表列    "set guioptions-=T       " 隱藏工具列    "set guioptions-=L       " 隱藏左側捲軸    "set guioptions-=r       " 隱藏右側捲軸    "set guioptions-=b       " 隱藏底部捲軸    "set showtabline=0       " 隱藏Tab欄endifset writebackup              " 設定無備份檔案set nobackupset autochdir                " 設定檔案瀏覽器目錄為目前的目錄"set nowrap                  " 設定不自動換行set foldmethod=syntax        " 選擇程式碼摺疊功能類型set foldlevel=100            " 禁止自動摺疊set laststatus=2             " 開啟狀態列資訊set cmdheight=2              " 命令列的高度,預設為1,這裡設為2" 每行超過80個的字元用底線標示au BufRead,BufNewFile *.s,*.asm,*.h,*.c,*.cpp,*.cc,*.java,*.cs,*.erl,*.hs,*.sh,*.lua,*.pl,*.pm,*.php,*.py,*.rb,*.erb,*.vim,*.js,*.css,*.xml,*.html,*.xhtml 2match Underlined /.\%81v/" 設定編碼set fenc=utf-8set encoding=utf-8set fileencodings=utf-8,gbk,cp936,latin-1" 解決菜單亂碼source $VIMRUNTIME/delmenu.vimsource $VIMRUNTIME/menu.vim" 解決consle輸出亂碼language messages zh_CN.utf-8" For Haskell:let hs_highlight_delimiters=1            " 高亮定界符:let hs_highlight_boolean=1               " 把True和False識別為關鍵字:let hs_highlight_types=1                 " 把基本類型的名字識別為關鍵字:let hs_highlight_more_types=1            " 把更多常用類型識別為關鍵字:let hs_highlight_debug=1                 " 高亮調試函數的名字:let hs_allow_hash_operator=1             " 阻止把#高亮為錯誤" ======= 引號 && 括弧自動匹配 ======= ":inoremap ( ()<ESC>i:inoremap ) <c-r>=ClosePair(')')<CR>:inoremap { {}<ESC>i:inoremap } <c-r>=ClosePair('}')<CR>:inoremap [ []<ESC>i:inoremap ] <c-r>=ClosePair(']')<CR>":inoremap < <><ESC>i":inoremap > <c-r>=ClosePair('>')<CR>:inoremap " ""<ESC>i:inoremap ' ''<ESC>i:inoremap ` ``<ESC>ifunction ClosePair(char)    if getline('.')[col('.') - 1] == a:char        return "\<Right>"    else        return a:char    endifendf" MiniBufExplorer     多個檔案切換 可使用滑鼠雙擊相應檔案名稱進行切換let g:miniBufExplMapWindowNavVim=1let g:miniBufExplMapWindowNavArrows=1let g:miniBufExplMapCTabSwitchBufs=1let g:miniBufExplModSelTarget=1" :Tlist              調用TagListlet Tlist_Show_One_File=1                    " 只顯示當前檔案的tagslet Tlist_Exit_OnlyWindow=1                  " 如果Taglist視窗是最後一個視窗則退出Vimlet Tlist_Use_Right_Window=1                 " 在右側視窗中顯示let Tlist_File_Fold_Auto_Close=1             " 自動摺疊" TxtBrowser          高亮TXT文字檔au BufRead,BufNewFile *.txt setlocal ft=txt" :LoadTemplate       根據檔案尾碼自動載入模板let g:template_path='D:/Apps/Gvim/vimfiles/template/'" :AuthorInfoDetect   自動添加作者、時間等資訊,本質是NERD_commenter && authorinfo的結合let g:vimrc_author='Ruchee'let g:vimrc_email='my@ruchee.com'let g:vimrc_homepage='http://www.ruchee.com'" Ctrl + H            將游標移到當前行的行首imap <c-h> <ESC>I" Ctrl + J            將游標移到下一行的行首imap <c-j> <ESC>jI" Ctrl + K            將游標移到上一行的末尾imap <c-k> <ESC>kA" Ctrl + L            將游標移到當前行的行尾imap <c-l> <ESC>A" Ctrl + E            一步載入文法模板和作者、時間資訊map <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Giimap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Givmap <c-e> <ESC>:LoadTemplate<CR><ESC>:AuthorInfoDetect<CR><ESC>Gi" jj                  儲存檔案並留在插入模式 [插入模式]imap jj <ESC>:w<CR>li" kk                  返回Normal模式 [插入模式]imap kk <ESC>l" nt                  開啟NERDTree [非插入模式]map nt :NERDTree<CR>" tl                  開啟Taglist [非插入模式]map tl :Tlist<CR><c-l>" ======= 編譯 && 運行 ======= "" 編譯源檔案func! CompileCode()        exec "w"        if &filetype == "c"            exec "!gcc -Wall -std=c99 %<.c -o %<"        elseif &filetype == "cpp"            exec "!g++ -Wall -std=c++98 %<.cpp -o %<"        elseif &filetype == "java"            exec "!javac %<.java"        elseif &filetype == "haskell"            exec "!ghc --make %<.hs -o %<"        elseif &filetype == "lua"            exec "!lua %<.lua"        elseif &filetype == "perl"            exec "!perl %<.pl"        elseif &filetype == "python"            exec "!python %<.py"        elseif &filetype == "ruby"            exec "!ruby %<.rb"        endifendfunc" 運行可執行檔func! RunCode()        exec "w"        if &filetype == "c" || &filetype == "cpp" || &filetype == "haskell"            exec "! %<.exe"        elseif &filetype == "java"            exec "!java %<"        elseif &filetype == "lua"            exec "!lua %<.lua"        elseif &filetype == "perl"            exec "!perl %<.pl"        elseif &filetype == "python"            exec "!python %<.py"        elseif &filetype == "ruby"            exec "!ruby %<.rb"        endifendfunc" Ctrl + C 一鍵儲存、編譯map <c-c> :call CompileCode()<CR>imap <c-c> <ESC>:call CompileCode()<CR>vmap <c-c> <ESC>:call CompileCode()<CR>" Ctrl + R 一鍵儲存、運行map <c-r> :call RunCode()<CR>imap <c-r> <ESC>:call RunCode()<CR>vmap <c-r> <ESC>:call RunCode()<CR>

另附以上兩個設定檔:

http://www.ruchee.com/download/Vim2012-04-01.7z

感謝作者

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.