TurtleEditの使い方
TurtleEditのウィンドウは、上下二つの区画に分かれています。 上側がプログラム等を編集するためのエディタ、下側はコンパイル結果やプログラムの実行結果が表示される区画になります。 下側の区画を編集することはできません。 ウィンドウは下図のような構成になっており、同時に開くことのできるファイルはひとつだけです。
テキストエディタとしては最低限の機能しか備えていませんので、使い方について注意すべき事項は特にありません。 他のエディタと異なるのは、日本語文字(全角文字)は常にオレンジ色の四角で囲まれて表示されるようになっている点くらいです。
外部プログラムの起動設定
TurtleEditは、ボタンやメニューからコンパイラー等の「外部プログラム」をすぐに起動することができます。 それを行うためには、あらかじめ外部プログラムを正しく登録しておく必要があります。 実行メニューの設定を選んで、以下のようなウィンドウを開いてください。
コンパイルコマンドの欄には、
ボタンを押した際に実行すべきコマンドを記述します。 %f と書くと、その箇所が、現在編集中のファイルの名前に自動的に置換されます。 また、%b はファイル名から拡張子を除いた部分( program.c なら program )、%d はファイルの保存先の ディレクトリ名、%c は実行中のTurtleEditが置かれているディレクトリ名、そして、%h はホームディレクトリに、 それぞれ置換されます。コマンドの引数の中に空白文字を含めたい場合は %s を使うか、空白を含む引数全体をシングルクォートで囲ってください。
ファイルの保存先ディレクトリを作業ディレクトリに設定した後、そのコマンドが実行されます。
以下は、Cのコンパイラを動かす場合の設定例です:
cc %f -lm
実行コマンドの欄には、
ボタンを押した際に実行すべきコマンドを記述します。追加の実行パスの欄には、外部コマンドが実行される際に、環境変数PATHに追加しておくべき項目を、コロン":"で区切って並べておきます (Windows版をお使いの場合はセミコロン";"で区切ります)。
なお、コンパイル・実行コマンドの代表的な設定は、プリセット値プルダウンメニューからも選べるようになっています。
亀場のパスと亀場を自動起動は、亀場サーバーを使ったタートルグラフィックスを行う際に設定しておくと便利です。通常のプログラミング学習の際には、設定する必要はありません。
文字コードは、使用している環境に合わせて、適切に設定しておきます(さもないと、文字化けを起こすでしょう)。
2014年公開版からは編集画面のフォントサイズも選べるようになっています。
フォント名の欄では、使用したい日本語フォント("MS ゴシック"等)を選んでおきます。 欧米語用のフォントを設定すると日本語表示が乱れる場合があるのでご注意ください。
最後に
を押すと、設定は保存され、次回にTurtleEditを起動した際にも、同じ設定で使うことができます。例えば、/opt/local/binにインストールされたLaTeX用に設定する場合は
コンパイルコマンド: /opt/local/bin/platex %f 実行コマンド: /opt/local/bin/xdvi %b 追加の実行パス: /opt/local/bin
のように記述します。
ここで、TurtleEdit起動時に/opt/local/binにパスが設定されていなかった場合、 追加の実行パスに/opt/local/binを設定してあっても、 実行コマンド /opt/local/bin/xdvi 中の /opt/local/bin の部分は省略できないことに注意してください。 追加された実行パスは xdvi がさらに別のプログラムを起動する際に参照されるものだからです。
TIPS
Windowsでは、パス名は "C:/Users/daresore" ではなく、"C:\Users\daresore"のように、バックスラッシュを 使って区切ってください。バックスラッシュ \ を入力するには、キーボードの ¥ キーを押します。
TurtleEditのコンソール画面(下側の区画)ではなく、OSにインストールされた端末(ターミナル)上でコマンドを実行したい場合には、実行コマンドの欄を
Macの場合: open -a Terminal コマンド名 KDEが動いているLinuxの場合: konsole -e コマンド名 Windowsの場合: CMD コマンド名
のように設定してください。
シェル上で、コマンド /bin/bash -c "dvipdfmx ファイル名.dvi && acroread ファイル名.pdf"
を実行するのと同様の動作をさせたい場合、
対応するTurtleEditの実行コマンド欄の書き方は
/bin/bash -c 'dvipdfmx %b.dvi&&acroread %b.pdf'
となります。コマンドに空白を含むパラメータを渡す場合、その箇所全体をシングルクォート( ' )で囲んでください。 (クォートで囲む代わりに、空白の箇所を%sに置き換えることで、全体をひとつの文字列であると表現することも可能です)。 なお、この例で、%bは開いているファイル名から拡張子を除いた部分に置換されます。
プログラミング学習での利用
以上の設定が済んでしまえば、TurtleEditの内部だけで、プログラミング等の作業を行うことができます。
- エディター(上側の区画)でプログラムを作成する
- 保存する(ファイル メニューの「保存」)
- ボタンを押す。エラーがあれば、下の区画に表示されるので、メッセージを手がかりに修正する。
- コンパイルに成功したら ボタンを押す。うまく停止してくれないときは ボタンを押して強制終了。
なお、ファイルを開いた後、コンパイルを1回は行わないと、
には進めないようになっています(注)。 コンパイルが不要な言語では、コンパイルボタンに「実行」の機能を割り当てるか、 文法チェック(Rubyですと "ruby -cw %f" など)を割り当てておくのが良いでしょう。注:より正確には,コンパイルを実行し,その終了コードが0の(コンパイルに成功した)場合,になります。これは,TurtleEditが コンパイル → エラー箇所修正 → 実行 というプログラム開発の流れを想定しているためです。
キー入力を伴うプログラムを作成する際の注意
キーボードから値をプログラムに渡すには、下側の区画をクリックして、赤いカーソル(キャレット)が表示されるのを確認してから、 キー入力を行なってください。
入力を求めるようなプログラムを作成する際には、注意が必要です。例えば
#include <stdio.h> main(){ int x ; printf("x? ") ; scanf("%d",&x) ; printf("x=%d\n",x) ; }
バッファリングに関する問題について、プログラムに修正を加える必要のない別の解決法を別ページに紹介してあります。
のようなCプログラムを実行すると、入力を促す "x?" が、期待するタイミングで下側の区画に表示されないはずです。 それは、Cプログラムの出力がバッファーされているためです。このようなプログラムを書く際には、
printf("x? ") ; fflush(stdout) ; scanf("%d",&x) ;
のように出力をその都度フラッシュするか、printf()関数を呼び出す前に
setbuf(stdout,NULL) ; printf("x? ") ; scanf("%d",&x) ;
のように、バッファリングを禁止しておく必要があります。
暴走対策
外部プログラム(の標準出力)が下側の区画に出力することができる文字数は最大でおよそ100万文字に制限されています (予期せぬ暴走対策のため)。
標準出力に書き込み続けるようなコードを実行してしまった場合、中断ボタンの「効き」が悪くなることがあります。何度か
ボタンを押してみてください。正規表現の学習
TurtleEditの正規表現はJava言語の仕様に依存しています。 詳細はJavaの オンラインマニュアル 等を参照してください。
フィルターメニューの中の正規表現フィルターを選ぶと、正規表現を入力する枠の付いたウィンドウが現れます。 ここに正規表現を入力し、OKを押すと、編集用の区画のテキスト中で、正規表現にマッチした箇所が、下側の区画 に表示されます。正規表現の書式についてはJavaのマニュアル等を参照してください。
マッチした文字列を選ぶと、正規表現にマッチした文字列が出力されます。 このとき、ドット"."は改行文字にはマッチしない点にご注意ください。
マッチした行を選ぶと、正規表現に完全にマッチした行が出力されます。
パターンを含む行を選ぶと、行の中に正規表現にマッチする箇所を含んでいる各行が出力されます。
行番号にチェックを入れると、マッチした箇所に対応する行番号も表示されます。
また、フィルターメニューで正規表現で置換を選ぶと、マッチしたパターンを一括置換した結果が下側の区画に出力されます (このとき、編集画面(上側の区画)は変更されません)。 正規表現の中の丸括弧で指定したn番目のグループの内容は、置換文字列の中で、$nで参照できます($1,$2,...,$9まで)。
さらに、よく使うであろうフィルター機能(sort, uniq, tr, 文字数カウント)もフィルターメニューの中に組み込まれています。
フィルターメニューから外部コマンド実行すると、編集画面の内容を awk などの外部コマンドを使ってフィルターし、 その結果を下側の区画に出力することが可能です。 その場合、「編集テキストから入力」にチェックが入っている必要があります。
フィルターメニューの最後のバッファの内容を交換を選ぶと、上下ふたつの区画の内容が入れ替わります (つまり、続けて2回実行すれば、元通りになるわけです)。 このメニュー項目は、上側の区画の内容を正規表現で加工して、その結果をまた、別の正規表現で加工して・・・、を繰り返す際に使用します。