前言:
我們知道VScode是一個(gè)非常強(qiáng)大和輕量級(jí)的開(kāi)發(fā)工具,插件的運(yùn)作模式很大程度上模仿另外一個(gè)開(kāi)發(fā)工具Sublime代碼編輯器,而VSCode的強(qiáng)大之處本身集成了終端窗口和調(diào)試功能.只要使用標(biāo)配的Code Runner+對(duì)應(yīng)開(kāi)發(fā)語(yǔ)言的編譯器或者解析器就可以運(yùn)行/調(diào)試整個(gè)工程項(xiàng)目了.
我這里會(huì)介紹有關(guān)如何讓VSCode自帶的命令行窗口和Bash腳本交互自動(dòng)化地完成項(xiàng)目(調(diào)試前)的一些設(shè)置操作.例如版本控制和調(diào)試前的備份操作,重新初始化測(cè)試數(shù)據(jù)庫(kù)等一系列操作,我們都可以通過(guò)Bash腳本或者Python腳本和VSCode交互來(lái)完成,閱讀本文前.
- 我假設(shè)你有基本的Bash腳本或者Python腳本編寫(xiě)能力
- CMake的基本配置
- 熟悉VSCode的操作
首先VSCode剛完成一個(gè)工程項(xiàng)目創(chuàng)建的話,在當(dāng)前工作空間新建一個(gè)叫.vscode的文件夾并會(huì)自動(dòng)生成三個(gè)json文件
- c_cpp_properties.json:這是C/C++程序開(kāi)發(fā)的環(huán)境設(shè)置,例如include頭文件的設(shè)置.
- launch.json:這個(gè)文件跟調(diào)試器或程序運(yùn)行的設(shè)置有關(guān)
- tasks.json: 這個(gè)文件項(xiàng)目的編譯器的配置有關(guān)
- setting.json:這個(gè)文件跟當(dāng)前工作空間的環(huán)境設(shè)置有關(guān)
我們這里的重點(diǎn)是講述setting.json這個(gè)配置文檔,因?yàn)檫@個(gè)配置與terminal.integrated有關(guān),我們先打開(kāi)settings.json這個(gè)文檔
首先我們按照VSCode的幫助文檔將以下命令copy到settings.json中然后保存即可.而我這里要解釋的是這里配置指令,每當(dāng)我們?cè)赩SCode打開(kāi)集成的終端窗口,就會(huì)觸發(fā)以下的配置指令.
"terminal.integrated.shellArgs.linux": ["-l"]
這條這令所作的動(dòng)作其實(shí)等價(jià)于以下bash的操作,如果在當(dāng)前用戶的配置目錄下存在~/.bash_profile,它會(huì)加載bash_profile里面的腳本設(shè)置,并完成一個(gè)bash終端會(huì)話的環(huán)境設(shè)置.
/bin/bash -l
工程項(xiàng)目自動(dòng)初始化
我們?cè)贑/C++項(xiàng)目中經(jīng)常要用到CMake重建項(xiàng)目,那么我們可以在~/.bash_profile文件中,將平時(shí)經(jīng)常執(zhí)行的操作寫(xiě)成腳本條目,讓我們啟動(dòng)一個(gè)終端會(huì)話的時(shí)候自動(dòng)執(zhí)行這些初始化設(shè)置.
下面的腳本寫(xiě)入~/.bash_profile文件,每次啟動(dòng)termimal窗口后會(huì)自動(dòng)執(zhí)行重定向到cmake指定的build目錄,再將之前的cmake緩存的舊文件刪除,然后再執(zhí)行cmake ..和make命令
export PS1='\u@it-dog:'
PROJECT_PATH=""
if [[ "$OSTYPE" == "linux-gnu" ]]; then
PROJECT_PATH="/media/yening/Seagate/cool"
elif [[ "$OSTYPE" == "darwin"* ]]; then
PROJECT_PATH="/Volumes/Seagate/cool/"
fi
source "$PROJECT_PATH/project.sh"
echo "camke開(kāi)始重建工程...請(qǐng)稍等~~"
read -p "你確定刪除?(Y/N)" -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]
then
rm -rf "${PRJECT_PATH}/app/*"
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
fi
項(xiàng)目根目錄下的project.sh
if [[ "$OSTYPE" == "linux-gnu" ]]; then
cd /media/yening/Seagate/cool/build
elif [[ "$OSTYPE" == "darwin"* ]]; then
cd /Volumes/Seagate/cool/build/
fi
這里只是一個(gè)簡(jiǎn)單的案例,當(dāng)然更復(fù)雜的開(kāi)發(fā)應(yīng)用我們可以往~/.bash_profile文件整合python腳本和git等工具,創(chuàng)建符合實(shí)際的開(kāi)發(fā)環(huán)境.