此處略去在windows中配置gcc的方法。默認你已經可以在命令提示符下直接使用gcc了。vim
其實就是寫了一個vimscript的.vim文件,而後在 _vimrc 中使用source命令引用進來。windows
如下是源代碼(OneKeyMake.vim)ui
----------------------------------------------------------------------------編碼
"這是一個一鍵執行c或cpp的腳本,用source引入到vimrc便可
"源文件的路徑中有空格也不要緊
"在插入模式或者normal模式時使用F5一鍵運行(不自動保存)
"使用Ctrl+F5運行,運行會自動使用:w保存文件
nmap<C-F5> :w<CR>:call Do_OneKeyMake()<CR>
imap<C-F5> <Esc>:w<CR>:call Do_OneKeyMake()<CR>
nmap<F5> :call Do_OneKeyMake()<CR>
imap<F5> <Esc>:call Do_OneKeyMake()<CR>
function Do_OneKeyMake()
let sF=expand('%:p')
let oF=expand('%:p:h').'\a.exe'
let fE=expand('%:e')
"echo oF
"echo filereadable(sF)
if fE!='cpp' && fE!='c'
echohl WarningMsg | echo '文件擴展名必須是 cpp 或者 c' | echohl None
return
endif
if filereadable(oF)
if delete(oF)
echohl WarningMsg | echo '沒法刪除以前生成的可執行文件,多是沒有權限' | echohl None
return
endif
endif
let cmd='cls & g++ -static -Wall "'.sF.'" -o "'.oF.'" && "'.oF.'" &pause'
silent execute 'normal :'
silent execute '!'.cmd
if !filereadable(oF)
echohl WarningMsg | echo '沒有生成新的可執行文件,可能編譯失敗,或者沒有權限' | echohl None
return
endif
"原本把編譯和運行放到不一樣窗口的,可是那樣可能會有多餘的操做
"下面的命令用於產生執行時的窗口,現已註釋掉
"let cmd='cls & "'.oF.'" &pause'
"silent execute 'normal :'
"silent execute '!'.cmd
endfunction
----------------------------------------------------------------------------orm
順便備份一下我用的樣式(mystyle.vim)ip
"用於我的的一些個性化設定
set number
set tabstop=4
set autoindent
colo slate
set guifont=Consolas\ 12
set fileencodings=utf-8,cp936
"把F3映射成自動調整編碼,實際沒啥用
nmap<F3> :call ChangeEncoding()<CR>
function ChangeEncoding()
let encodings=['utf-8','cp936']
let w:myEncoding=exists('w:myEncoding')?(w:myEncoding+1):0
let w:myEncoding=(w:myEncoding>=len(encodings))?0:(w:myEncoding)
let &encoding=encodings[w:myEncoding]
endfunction
----------------------------------------------------------------------------utf-8
ps:嘗試過gvim打開大文件的速度,發現其表現不如notepad++cmd