強大的vim配置,讓編程更隨意__編程

來源:互聯網
上載者:User

花了很長時間整理的,感覺用起來很方便,共用一下。

我的vim配置主要有以下優點:

1.按F5可以直接編譯並執行C、C++、java代碼以及執行shell指令碼,按“F8”可進行C、C++代碼的調試

2.自動插入檔案頭 ,建立C、C++源檔案時自動插入表頭:包括檔案名稱、作者、連絡方式、建立時間等,讀者可根據需求自行更改

3.映射“Ctrl + A”為全選並複製快速鍵,方便複製代碼

4.按“F2”可以直接消除代碼中的空行

5.“F3”可列出目前的目錄檔案,開啟樹狀檔案目錄

6. 支援滑鼠選擇、方向鍵移動

7. 代碼高亮,自動縮排,顯示行號,顯示狀態行

8.按“Ctrl + P”可自動補全

9.[]、{}、()、""、' '等都自動補全

10.其他功能讀者可以研究以下檔案

 vim本來就是很強大,很方便的編輯器,加上My Code後肯定會如虎添翼,或許讀者使用其他程式設計語言,可以根據自己的需要進行修改,設定檔裡面已經加上注釋。

讀者感興趣的話直接複製下面的代碼到文字檔,然後把檔案改名為“ .vimrc” (不要忘記前面的“.”),然後把檔案放到使用者檔案夾的根目錄下面即可。重新開啟vim即可看到效果。

為方便管理,源碼託管到了github,後期增加了好多新功能,

具體詳見:https://github.com/ma6174/vim

 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  顯示相關  
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" set shortmess=atI    " 啟動的時候不顯示那個援助烏幹達兒童的提示  
" winpos 5 5           " 設定視窗位置  
" set lines=40 columns=155     " 設定視窗大小  
" set nu               " 顯示行號  
set go=              "  不要圖形按鈕  
" color asmanian2      " 設定背景主題  
set guifont=Courier_New:h10:cANSI    "  設定字型  
" syntax on            " 文法高亮  
autocmd InsertLeave * se nocul   "  用淺色高亮當前行  
autocmd InsertEnter * se cul     "  用淺色高亮當前行  
" set ruler            " 顯示尺規  
set showcmd          "  輸入的命令顯示出來,看的清楚些  
" set cmdheight=1      " 命令列(在狀態行下)的高度,設定為1  
" set whichwrap+=<,>,h,l    " 允許backspace和游標鍵跨越行邊界(不建議)  
" set scrolloff=3      " 游標移動到buffer的頂部和底部時保持3行距離  
set novisualbell     "  不要閃爍(不明白)  
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\ " %d/%m/%y\ -\ %H:%M\")}    "狀態行顯示的內容  
set laststatus= 1     "  啟動顯示狀態行(1),總是顯示狀態行(2)  
set foldenable       "  允許摺疊  
set foldmethod=manual    "  手動摺疊  
" set background=dark  "背景使用黑色 
set nocompatible   " 去掉討厭的有關vi一致性模式,避免以前版本的一些bug和局限  
"  顯示中文協助
if version >=  603
     set helplang=cn
     set encoding=utf- 8
endif
"  設定色彩配置
" colorscheme murphy
" 字型 
" if (has( "gui_running " )) 
"    set guifont=Bitstream\ Vera\ Sans\ Mono\ 10 
" endif 

  set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8
set fileencodings=ucs-bom,utf-8,cp936
set fileencoding=utf-8 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""" 新檔案標題 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 建立.c,.h,.sh,.java檔案,自動插入檔案頭 
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec  " :call SetTitle() " 
""定義函數SetTitle,自動插入檔案頭 
func SetTitle() 
     " 如果檔案類型為.sh檔案 
     if &filetype ==  ' sh ' 
        call setline( 1, " \######################################################################### ") 
        call append(line( " . "),  " \# File Name:  ".expand( " % ")) 
        call append(line( " . ")+ 1,  " \# Author: ma6174 ") 
        call append(line( " . ")+ 2,  " \# mail: ma6174@163.com ") 
        call append(line( " . ")+ 3,  " \# Created Time:  ".strftime( " %c ")) 
        call append(line( " . ")+ 4,  " \######################################################################### ") 
        call append(line( " . ")+ 5,  " \#!/bin/bash ") 
        call append(line( " . ")+ 6,  "") 
     else 
        call setline( 1,  " /************************************************************************* ") 
        call append(line( " . "),  "     > File Name:  ".expand( " % ")) 
        call append(line( " . ")+ 1,  "     > Author: ma6174 ") 
        call append(line( " . ")+ 2,  "     > Mail: ma6174@163.com  ") 
        call append(line( " . ")+ 3,  "     > Created Time:  ".strftime( " %c ")) 
        call append(line( " . ")+ 4,  "  ************************************************************************/ ") 
        call append(line( " . ")+ 5,  "")
    endif
     if &filetype ==  ' cpp '
        call append(line( " . ")+ 6,  " #include<iostream> ")
        call append(line( " . ")+ 7,  " using namespace std; ")
        call append(line( " . ")+ 8,  "")
    endif
     if &filetype ==  ' c '
        call append(line( " . ")+ 6,  " #include<stdio.h> ")
        call append(line( " . ")+ 7,  "")
    endif
     " 建立檔案後,自動定位到檔案末尾
    autocmd BufNewFile * normal G
endfunc 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 鍵盤命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>

"  映射全選+複製 ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
map <F12> gg=G
"  選中狀態下 Ctrl+c 複製
vmap <C-c>  " +y
" 去空行  
nnoremap <F2> :g/^\s*$/d<CR> 
" 比較檔案  
nnoremap <C-F2> :vert diffsplit 
" 建立標籤  
map <M-F2> :tabnew<CR>  
" 列出目前的目錄檔案  
map <F3> :tabnew .<CR>  
" 開啟樹狀檔案目錄  
map <C-F3> \be  
" C,C++ 按F5編譯運行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
    exec  " w "
     if &filetype ==  ' c '
        exec  " !g++ % -o %< "
        exec  " ! ./%< "
    elseif &filetype ==  ' cpp '
        exec  " !g++ % -o %< "
        exec  " ! ./%< "
    elseif &filetype ==  ' java ' 
        exec  " !javac % " 
        exec  " !java %< "
    elseif &filetype ==  ' sh '
        :!./%
    endif
endfunc
" C,C++的調試
map <F8> :call Rungdb()<CR>
func! Rungdb()
    exec  " w "
    exec  " !g++ % -g -o %< "
    exec  " !gdb ./%< "
endfunc
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""實用設定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"  設定當檔案被改動時自動載入
set autoread
"  quickfix模式
autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
" 代碼補全 
set completeopt=preview,menu 
" 允許外掛程式  
filetype plugin on
" 共用剪貼簿  
set clipboard+=unnamed 
" 從不備份  
set nobackup
" make 運行
:

相關文章

聯繫我們

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