TurtleEdit
Updated on July 24, 2016

# TurtleEditの使い方

TurtleEditのウィンドウは、上下二つの区画に分かれています。 上側がプログラム等を編集するためのエディタ、下側はコンパイル結果やプログラムの実行結果が表示される区画になります。 下側の区画の内容を編集することはできません。 ウィンドウは下図のような構成になっており、同時に開くことのできるファイルはひとつだけです。

テキストエディタとしては最低限の機能しか備えていませんので、使い方について注意すべき事項は特にありません。 他のエディタと異なるのは、日本語文字（全角文字）は常にオレンジ色の四角で囲まれて表示されるようになっている点くらいです。

## 外部プログラムの起動設定

TurtleEditは、ボタンやメニューからコンパイラー等の「外部プログラム」をすぐに起動することができます。 それを行うためには、あらかじめ外部プログラムを正しく登録しておく必要があります。 実行メニューの設定を選んで、以下のようなウィンドウを開いてください。

コンパイルコマンドの欄には、【コンパイル】ボタンを押した際に実行すべきコマンドを記述します。 %f と書くと、その箇所が、現在編集中のファイルの名前に自動的に置換されます。 また、%b はファイル名から拡張子を除いた部分（ foo.c なら foo ）、%d はファイルの保存先の ディレクトリ名、%c は実行中のTurtleEditが置かれているディレクトリ名、そして、%h はホームディレクトリに、 それぞれ置換されます。 また、コマンドの引数が空白文字を含む場合、その箇所をシングルクォートで囲むか，空白文字を %s と表記します。

ファイルの保存先ディレクトリがコマンドの作業ディレクトリとして設定されるようになっています。

以下は、編集ファイルをCでコンパイルする際の、コンパイルコマンド欄の記述例です：

    cc %f -lm

実行コマンドの欄には、【実行】ボタンを押した際に実行すべきコマンドを記述します。

追加の実行パスの欄には、外部コマンドが実行される際に、環境変数PATHに追加しておくべき項目を、コロン":"で区切って並べておきます （Windows版をお使いの場合はセミコロン";"で区切ります）。

なお、コンパイル・実行コマンドの代表的な設定は、プリセット値プルダウンからも選べるようになっています。

亀場のパスと亀場を自動起動は、亀場サーバーを使ったタートルグラフィックスを行う際に設定しておくと便利です。通常のプログラミング学習の際には、設定する必要はありません。

文字コードは、使用している環境に合わせて、適切に設定しておきます（さもないと、文字化けを起こすでしょう）。

フォント名の欄では、日本語フォント（"MS ゴシック"等）を選んでおきます。 欧米語用のフォントを設定すると日本語表示が乱れる場合があるのでご注意ください。

最後にOKを押すと、設定が保存され、次回にTurtleEditを起動した際も、同じ設定で使うことができます。

プログラミングに限らず、ソースコードを処理して、その結果をプログラムで処理する作業にTurtleEditを用いることができます。 以下は、/opt/local/binにインストールされたLaTeXを起動する場合の設定例です：

    コンパイルコマンド：  /opt/local/bin/platex %f
    実行コマンド：       /opt/local/bin/xdvi %b
    追加の実行パス：     /opt/local/bin

この例で、実行コマンド欄の /opt/local/bin/xdvi のうち、/opt/local/bin の部分は追加の実行パスに設定してあるからといって 省略できないことに注意してください。 PATH環境変数への変更は xdvi がさらに別のプログラムを起動する際に参照されるものだからです。

#### TIPS

Windows版では、パス名は "C:\Users\daresore"のように、バックスラッシュを 使って区切ってください。バックスラッシュ \ を入力するには、キーボードの ¥ キーを押します。

コマンドをTurtleEditの下側の区画（ダムターミナル）ではなく、外部のターミナル上で実行したい場合には、実行コマンドの欄を

    Macの場合：　　　　　　　　　 open -a Terminal コマンド名
    KDEが動いているLinuxの場合：　Konsole -e コマンド名
    Windowsの場合：　　　　　　　 CMD コマンド名

のように設定します。

## プログラミング学習での利用

以上の設定が済んでしまえば、TurtleEditの内部だけで、プログラミングの作業を行うことができます。

1. エディター（上側の区画）でプログラムを作成する
2. 保存する（ファイルメニューの保存）
3. 【コンパイル】ボタンを押す。エラーがあれば、下の区画に表示されるので、メッセージを手がかりに修正する。
4. コンパイルに成功したら【実行】ボタンを押す。うまく停止してくれないときは【中断】ボタンを押して強制終了。

なお、ファイルを開いた後、コンパイルを１回は行わないと、【実行】には進めないようになっています。 コンパイルが不要な言語では、コンパイルボタンに「実行」の機能を割り当てるか、 文法チェック（Rubyですと "`ruby -cw %f`" など）を割り当てておくのが良いでしょう。

入力を求めるようなプログラムを作成する際には、注意が必要です。例えば

    #include <stdio.h>
    main(){
    	int x ;
    	printf("x? ") ;
    	scanf("%d",&x) ;
    	printf("x=%d\n",x) ;
    }

のようなCプログラムを実行すると、入力を促す "x?" が、期待するタイミングで下側の区画に表示されないはずです。 それは、プログラムの出力がバッファーされているためです。このようなプログラムを書く際には、

    	printf("x? ") ;
    	fflush(stdout) ;
    	scanf("%d",&x) ;

のように出力をその都度フラッシュするか、printf()関数を呼び出す前に

    	setbuf(stdout,NULL) ;
    	printf("x? ") ;
    	scanf("%d",&x) ;

のように、バッファリングを禁止しておく必要があります。

こうしたプログラムの書き換えが面倒と感じる方は、別の対応方法も提供されています。詳しくは、
http://seaotter.cite.tohoku.ac.jp/coda/tedit/simple-launcher.html
をご覧ください。

#### 注意

キーボードから値を入力してプログラムに渡すには、下側の区画をクリックして、赤いカーソル（キャレット）が表示 されている状態にしてから、キー入力を行います。

外部プログラムの実行結果が下側の区画に出力することができる文字数は最大で約1メガバイトまでに制限されています （予期せぬ暴走対策）。

## 正規表現の学習

フィルターメニューの中の正規表現フィルターを選ぶと、正規表現を入力する枠の付いたウィンドウが現れます。 ここに正規表現を入力し、OKを押すと、編集用の区画のテキスト中で、正規表現にマッチした箇所が、下側の区画 に表示されます。正規表現の書式についてはJavaのマニュアル等を参照してください。

マッチした文字列を選ぶと、正規表現にマッチした文字列が出力されます。 このとき、ドット"."は改行文字にはマッチしない点にご注意ください。

マッチした行を選ぶと、正規表現に完全にマッチした行が出力されます。

パターンを含む行を選ぶと、行の中に正規表現にマッチする箇所を含んでいる各行が出力されます。

行番号にチェックを入れると、マッチした箇所に対応する行番号も表示されます。

また、フィルターメニューで「正規表現で置換」を選ぶと、マッチしたパターンを一括置換した結果が下側の区画に出力されます （このとき、編集画面（上側の区画）は変更されません）。 正規表現のn番目の丸括弧（グループ）にマッチした文字列は、置換後の文字列の中で$nによって（nは1から9まで）参照する ことができます。

フィルターメニューから外部コマンド実行すると、編集画面の内容を sort, uniq, wc, awk といった外部コマンドを使ってフィルターし、 その結果を下側の区画に出力することが可能です。 その際に、編集テキストから入力にチェックが入っていることを確認してください。

フィルターメニューのおしまいの項目バッファの内容を交換を選ぶと、上下ふたつの区画の内容が入れ替わります （つまり、続けて２回実行すれば、元通りになるわけです）。 このメニュー項目は、上側の区画の内容を正規表現で加工して、その結果をまた、別の正規表現で加工して・・・、を繰り返す際に使用します。