開始用vim差不多有兩個月的時間, 一開始用makefile 編譯一整個專案無壓力, 但是當寫到單個檔案的時候, 編譯就比較麻煩了, 每次都得
:w :!gcc -o 1.exe 1.c
:!1非常麻煩...所以我都直接用的code::blocks...其實比vim快多了哈哈...
但是昨晚折騰病發作, 想好好來配置一下, 於是花了乙個晚上...改了乙個能看得過去的一鍵編譯.
原來的**出自: 這個網域名稱好羨慕...
覺得他考慮的東西太多而且不好用, 自己折騰了折騰.
所幸vim的幫助檔案非常全面, 改動他並不是難事.
**及注釋如下:
1"單個檔案編譯 linux 下大概有問題2"
3"4 map :call do_onefilemake()5
"判斷作業系統
6if(has("
win32
") || has("
win95
") || has("
win64
") || has("
win16"))
7 let g:iswindows=1
8else
9 let g:iswindows=0
10endif11"
函式體12
function do_onefilemake()13"
關閉之前可能存在的qucikfix視窗
14 execute "
cclose"15
"判斷檔案路徑和工作目錄是否相同(其實我也不知道為什麼要判斷
16if expand("
%:p:h
")!=getcwd()
17 echohl warningmsg | echo "
fail to make! this file is not in the current dir!
" |echohl none
18return
19endif20"
sourcefilename 功能未知, 判斷該型別是否被支援
21 let sourcefileename=expand("
%:t")22
if (sourcefileename=="" || (&filetype!="
cpp" && &filetype!="c"
))23 echohl warningmsg | echo "
fail to make! please select the right file!
" |echohl none
24return
25endif26"
編譯前先儲存
27 exec "w"
28"設定make引數,29"
linux 和 windows的情況不同, linux的執行是./*.out windows的是 *.exe linux 下的沒有經過測試o30"
makeprg 是 make的引數, 如果 makeprg=make 就執行真正的make.exe, 尋找目錄下的makefile, 如果不是make的話這個引數就相當於makefile 的內容, 但是無論如何錯誤資訊都會被送到quickfix視窗.(暫時的粗淺理解31"
makeprg中空格和雙引號都需要用反斜槓
"\"轉義
32if &filetype=="c"
33if g:iswindows==1
34set makeprg=gcc\ -o\ \"
%<.exe\"\ \"%\"
35else
36set makeprg=gcc\ -o\ \"
%<\"\ \"%\"
37endif
38 elseif &filetype=="
cpp"
39if g:iswindows==1
40set makeprg=g++\ -o\ \"
%<.exe\"\ \"%\"
41else
42set makeprg=g++\ -o\ \"
%<\"\ \"%\"
43endif
44endif45"
刪除舊檔案, outfilename是生成程式的完整路徑
46 let outfilename=expand("
%:r")."
.exe"47
iffilereadable(outfilename)
48if(g:iswindows==1
)49 let outdeletedsuccess=delete(outfilename)
50else
51 let outdeletedsuccess=delete("
./".outfilename) "
doesn't work
52endif53"
如果檔案刪除不了報錯
54if(outdeletedsuccess!=0)55
set makeprg=make
56 echohl warningmsg | echo "
fail to make! i cannot delete the
".outfilename |echohl none
57return
58endif
59endif60"
靜默編譯, silent 關鍵字用於靜默執行
61 execute "
silent make"62
set makeprg=make 63"
編譯後如果檔案存在,說明編譯成功, 執行之
64if
filereadable(outfilename)
65if(g:iswindows==1
)66 execute "
!\"%<.exe\""67
return
68else
69 execute "
!\"./%<.out\""70
return
71endif
72endif73"
不成功彈出錯誤資訊, 即quickfix視窗
74 execute "
silent copen 6
"75 endfunction
以上.
MySQL編譯安裝 指令碼一鍵安裝
bin bash author zhangheng time 2020 5 12 company version v1 編譯安裝mysql 5.7.29 os centos7.8.2003 第1步 假定mysql的原始碼包已經上傳到linux伺服器裡的當前目錄下 安裝解決軟體依賴關係的包 yum i...
一鍵回家 Excel一鍵美化報表
報表做得太普通,怎麼美化?就像下面 excel一鍵美化報表,早點回家不加班,看這裡!具體操作 1 選中報表 2 同時按住ctr t,一鍵美化報表。備註 按住 ctrl t 一鍵美化報表!以上就是用excel一鍵美化報表的方法!動手試試吧小夥伴們!往期文章 1.excel自動記錄資料登記時間和修改時間...
安卓apk一鍵反編譯工具
安卓apk反編譯工具,一鍵反編譯androidmainfest.xml layout res等資源以及class檔案 1 複製apk檔案到android apk decompile所在目錄 2 windows 直接把apk檔案拖入bat即可 mac 執行shell指令碼 sh users x and...