GEDIT外部工具

首先通過編輯-首選項-插件-外部命令來打開外部命令,然後在工具-Manage External Tools來添加新工具,工具程式碼使用bash語言。

程式碼使用方式:+添加新插件,在編輯框中粘貼程式碼,快捷鍵:自定義,保存為:當前文檔,輸入為:當前文檔,輸出為:在下方面板中顯示,適用範圍為:所有文檔 C++

下面提供兩種程式碼:

程式碼一

#!/bin/sh
dir=$GEDIT_CURRENT_DOCUMENT_DIR
name=$GEDIT_CURRENT_DOCUMENT_NAME
pre=${name%.*}
g++ $dir/$name -o $pre -g -Wall
if test $? -eq 0; then
    gnome-terminal -x bash -c "$dir/$pre;echo;read;"
fi

這種程式碼會打開一個終端,然後需要手動輸入。調試程式碼時,比較繁瑣。
那麼我們就搞了一個更簡單的方式。程式碼如下:
程式碼二

#!/bin/sh
fullname=$GEDIT_CURRENT_DOCUMENT_NAME
dir=$GEDIT_CURRENT_DOCUMENT_DIR
name=${fullname%.*}
inname=${name}.input
outname=${name}.output
ansout=${name}.ansout
cd $dir
cat $fullname | awk 'BEGIN{a=0} /\*\//{a=1} a==0{print $0}' | grep -v "\/\*" | cat > $inname
cat $fullname | awk 'BEGIN{a=0} /\*\//{a++} a==1{print $0}' | grep -v ["*\/""\/*"]| cat >$outname
g++ $fullname -o $name && ./$name <$inname >$ansout
diff -a -b -B -c -q $ansout $outname && echo Accept || echo Wrong Answer
cat $ansout
rm $ansout $outname $inname $names -rf

這個版本無需文件輸入輸出,只需要在文件頭加入兩個注釋,第一個為樣例輸入,第二個為樣例輸出。

舉個例子:

/*
6
1 30 3 2 3 4
2 16 2 5 6
3 5 0
4 4 0
5 11 0
6 5 0
*/
/*
25
*/
#include <iostream>
using namespace std;
....<code>

這樣在編譯時會在下方面板輸出

Running tool: 運行命令

25
Done.
Tags: