最近喜歡折騰各類編輯器。c++
用了vscode官方的c/c++插件,配好launch.json和tasks.json以後用debug仍是感受很不錯的。json
可是感受對於acm有些用不上,反而不太靈敏,用起來也不太方便。vim
就想配成像subliime自帶的那樣:數組
一、編譯以後直接運行bash
二、能夠把輸出顯示在下面這種編輯器
考慮到vscode默認ctrl+shift+B是build,只要在tasks.json裏寫"build"的task就好了,像這樣優化
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "tasks": [ { "taskName": "build", "command": "g++", "isShellCommand": true, "args": [ "-o", "${workspaceRoot}/main", "${workspaceRoot}/main.cpp" ], "showOutput": "always" } ] }
咱們就能夠把運行的命令也寫進去。ui
可是嘗試了許多辦法,都不行,好比:spa
一、args裏後面加上「&&」和"${workspaceRoot}/main"插件
二、tasks數組中寫兩個task字典,分別是不一樣的task,一個是build一個是run。後來看了看微軟的文檔,貌似只是定義不一樣的任務,我一開始還覺得是順序執行(也許是我沒看徹底吧)。
這兩個辦法都不行,最後想了個辦法,直接自定義一個新的bash命令,把編譯和運行的命令全都寫進去就好了。
一、新建一個文件,命名爲gbr(g++ build and run,本身瞎起),隨便放在哪,假設在~(家目錄)
touch gbr
二、編輯這個文件,隨便用什麼編輯器gedit,vim,sublime,vscode無所謂,反正內容很少,gedit就夠了。
輸入一下內容。
g++ -o $1 $1.cpp $1
$1表示外面傳的參數
好比說你要編譯並運行的文件是~/main.cpp
只要輸入 gbr ~/main 就好了。
三、把文件設置爲可執行文件,我直接給了755權限。
chmod 755 ~/gbr
四、這個時候你在~目錄下已經能夠經過./gbr ~/main運行了,可是要讓vscode可以使用這個命令,咱們直接把這個文件移動到/usr/bin就行啦。
sudo mv ~/gbr /usr/bin/gbr
這時候在終端裏就能用gbr ~/main 運行這條命令了。
五、最後在vscode中修改tasks.json配置便可。
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "0.1.0", "tasks": [ { "taskName": "build", "echoCommand": true, "command": "gbr", "isShellCommand": true, "args": [ "${workspaceRoot}/main" ], "showOutput": "always" } ] }
echoCommand參數是讓命令在下面顯示出來。
這個方法只是我本身的一個小小探索,不過我想確定有更加簡便的方法,或許往後會發現。
一、編譯c++14
二、計算並輸出程序運行時間。
修改gbr文件便可:
#!/bin/bash # get start time start=$(date +%s%N) start_ms=${start:0:16} # build g++ -o $1 $1.cpp -std=c++14 # run $1 # get end time end=$(date +%s%N) end_ms=${end:0:16} #output printf "[Finished in %.1fs]\n" $(echo "scale=1; ($end_ms - $start_ms)/1000000" | bc)