你好,歡迎進入江蘇優(yōu)軟數(shù)字科技有限公司官網(wǎng)!
發(fā)布時間:2023-07-17
瀏覽次數(shù):0
【原創(chuàng),轉(zhuǎn)載請注明來自公眾號“數(shù)據(jù)挖掘機修煉筆記”】
前言
一年前,我在公眾號寫過一篇文章《用++、C/C++開發(fā)》,大致講了如何使用++外部運行命令來編譯運行相應(yīng)的程序。 現(xiàn)在看來,是有點明顯了。 狹窄
現(xiàn)在,給大家分享一個我想了一天想寫的++腳本。 它可以一鍵編譯或運行/C/C++/Java程序。 理論上可以根據(jù)你的需求擴展到更多語言。
談?wù)摼庉嬈骱?IDE
進入題外話之前,我們先說一下開發(fā)環(huán)境。 你可以根據(jù)實際情況選擇是否真的要使用++進行開發(fā)(用PS++打開文本文件的速度還是蠻快的,即使不使用它來開發(fā),也可以用它來打開文件) 。 出色的)
一般來說,開發(fā)環(huán)境無非就是兩種,編輯器(如++、vim、emacs)和IDE(如IDEA、、、),我來說說我對這三者的理解:
今天是中秋節(jié)。 如果把它比作愛情的話,小編就是一個單純無知的女孩。 你要“調(diào)教”她,告訴她你需要什么,挖掘她的潛力。 你帶來巨大的成就感; IDE 是一只狡猾的社交蝴蝶,它能讀懂你的言語和情緒,還能猜出你的想法。 你只需要給出一點提示,她就能幫助你直達巔峰。
因此,我建議:初學(xué)者可以先嘗試使用編輯器,熟悉語言的句型、編譯運行方法,打好基礎(chǔ)。 也可以用來快速測試一些簡單的碎片代碼; 但如果你開發(fā)的項目比較小,特別是需要同步協(xié)作的時候,使用IDE更加方便、穩(wěn)定、高效。
鑒于很多網(wǎng)站未經(jīng)授權(quán)抓取了我的原創(chuàng)文章,我決定在文章中插入二維碼以維護出處,希望不打擾您閱讀
要安裝并運行的腳本
以下操作均在++中進行,所以請先安裝++
步驟1。 安裝插件
++菜單欄->插件->->顯示,點擊進入,找到,安裝。安裝成功后重啟++,會出現(xiàn)在菜單欄->插件
第2步。 腳本:判斷文件是否存在
該腳本的作用是判斷文件是否存在。 之前我還以為句型和DOS的一樣,但是看了文檔后發(fā)現(xiàn)它只支持很少的DOS命令。因此,在DOS下需要通過一句就能完成的功能自己在DOS下寫的。
本節(jié)參考,具體為:點擊++菜單欄->插件->->,在腳本編輯框中輸入以下代碼:
set FILEEXISTS = 0
npe_console v+
cmd /c if exist $(ARGV) echo Exists
if "$(OUTPUTL)" != "Exists" goto ...
set FILEEXISTS = 1
:...
npe_console v-
單擊下面的按鈕保存腳本,并將其命名為
步驟3. 腳本:編譯并運行
高潮即將來臨。 這個腳本是我根據(jù)文檔的學(xué)習(xí)自己做的一個輪子。 它可以對不同后綴的程序文件進行不同的編譯和運行操作。 目前支持/C/C++/Java,并可自行擴展。 。
和上一節(jié)一樣,先進入腳本編輯框,輸入以下代碼(有興趣的可以閱讀代碼注釋,后面可以展開)
npp_console disable // 關(guān)閉顯示,否則執(zhí)行時腳本時會在console窗口顯示每條腳本語句,有礙觀感
cd "$(CURRENT_DIRECTORY)"
if $(EXT_PART) == .java goto java
if $(EXT_PART) == .py goto python
if $(EXT_PART) == .cpp goto cpp
if $(EXT_PART) == .c goto c
goto error1 // 當(dāng)非c/c++/python/java文件時,直接報錯
// 下面是java的編譯、執(zhí)行、報錯,與后面c/c++類似
label java
npp_save // 保存當(dāng)前程序文件
cmd /c if exist $(NAME_PART).class (del $(NAME_PART).class) // 調(diào)用cmd窗口刪除上次程序執(zhí)行時編譯的結(jié)果,/c是表示執(zhí)行完cmd指令后關(guān)閉窗口,不加/c會使窗口一直打開,無法向下執(zhí)行腳本
npp_console enable //打開顯示,可以查看下面語句執(zhí)行結(jié)果
javac -encoding UTF8 $(FILE_NAME) // 設(shè)置javac的編碼格式為UTF8,否則代碼中含有中文注釋會報錯
npp_console disable // 再次關(guān)閉顯示,因為下面的語句沒必要呈現(xiàn)在console窗口
npp_exec CheckFileExists $(NAME_PART).class // 調(diào)用自己寫的腳本判斷是否存在.class文件
if $(FILEEXISTS)==1 goto j1 // 編譯成功執(zhí)行運行,不成功拋錯
goto error2
label j1
npp_console enable
java $(NAME_PART)
npp_console disable
goto end
label cpp
npp_save
cmd /c if exist $(NAME_PART).exe (del $(NAME_PART).exe)
npp_console enable
g++ -o $(NAME_PART).exe $(FILE_NAME)
npp_console disable
npp_exec CheckFileExists $(NAME_PART).exe
if $(FILEEXISTS)==1 goto c1
goto error2
label c1
npp_console enable
$(NAME_PART)
npp_console disable
goto end
label c
npp_save
cmd /c if exist $(NAME_PART).exe (del $(NAME_PART).exe)
npp_console enable
gcc -o $(NAME_PART).exe $(FILE_NAME)
npp_console disable
npp_exec CheckFileExists $(NAME_PART).exe
if $(FILEEXISTS)==1 goto c2
goto error2
label c2
npp_console enable
$(NAME_PART)
npp_console disable
goto end
label python
npp_save
npp_console enable
python $(FILE_NAME)
npp_console disable
goto end
label error1
npp_console enable
echo 錯誤:非程序文件
npp_console disable
goto end
label error2
npp_console enable
echo 錯誤:編譯未通過
npp_console disable
goto end
label end
npp_console enable
保存腳本,我命名為,然后在++菜單欄找到 -> 運行 -> 管理快捷鍵 ->,并設(shè)置運行這個腳本的快捷鍵(如Ctrl+D),就大功告成了!
步驟4。 運行腳本
用++編輯代碼文件時,建議選擇UTF-8編碼,點擊菜單欄->格式-> in UTF-8 BOM 。以避免運行時編碼錯誤
當(dāng)您編輯以 .py 結(jié)尾且?guī)в?++ 的腳本時,請按 Ctrl+D
運行失?。?/p>
運行成功:
爪哇
如上,編輯以.java結(jié)尾的java文件時,按Ctrl+D
編譯失敗:
編譯運行成功:
C/C++
如上,編輯以.c結(jié)尾的C文件或以.cpp結(jié)尾的C++文件時sublime text 3 函數(shù)跳轉(zhuǎn),按Ctrl+D
編譯失敗:
編譯運行成功:
上述以外的程序文件
當(dāng)運行不以上述后綴結(jié)尾的程序文件時,按Ctrl+D:
理想與現(xiàn)實
說一下我為什么會產(chǎn)生寫這個腳本的想法,以及遇到的一些坑。 不感興趣的可以直接跳過~
原因
理想的
將DOS命令行寫入,而不是所有運行命令
現(xiàn)實
仔細(xì)閱讀文檔后,我發(fā)現(xiàn)它只支持一些DOS命令(if、del、goto),而和else一樣,exist根本不支持。 真是一團糟,我得想很多辦法才能完成; 另外del老提示找不到文件。 ,只能使用專門的腳本來判斷文件是否存在; 而如果判斷結(jié)束就必須使用goto跳轉(zhuǎn),減少代碼量和代碼邏輯。 ,終于解決了
所以,雖然這些天我更喜歡在 Mac 下使用 Text3,但 Mac 的方法很好;-P
獎金
最近寫了幾篇文章,可以直接生成pdf,但是公眾號平臺很難插入附件。 另外公眾號支持不太好,呈現(xiàn)的文章容易出現(xiàn)代碼縮進混亂,部分功能不支持。
所以我打算提供pdf下載鏈接sublime text 3 函數(shù)跳轉(zhuǎn),會在下周發(fā)表的《數(shù)據(jù)挖掘競賽通用框架》一文中發(fā)布,敬請關(guān)注
如有侵權(quán)請聯(lián)系刪除!
Copyright ? 2023 江蘇優(yōu)軟數(shù)字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服務(wù)提供商
13262879759
微信二維碼