開発ツールの最近のブログ記事

 今日は、ブログも書かれている種田さんに夕食に誘われました。

 帰宅の電車が一緒という事もあり、帰りに種田さんと夕食に行ってきました。チームが違いますが、以前、6月からの常駐前までは週1回の組み込み同好会を開催していただき、私も参加していました。

 4月から一番忙しかった9月が終り、疲れていないかという事で食事に誘えって頂き、話の話題にも出てきました。お店の中では、MacやEmacsなどの話をしていましたが、Macを所有しておきながらMacを全然使用していなかったり、Linuxなども使用していなかったので、種田さんがMacでEmacsの実演をしていただきました。

 仕事やJavaを使用するときはEclipseを主に使っていましたが、Eclipseで出来る事はEmacsでも出来る事を教えていただき、他にもマウスを動かさないキー操作を教えていただきました。

 種田さんにはいろいろな技術を教えてもらい、少しづつですが、MacやEmacsを使用していこうと思います。

 プログラムを開発するのに、開発ツールを利用していませんか?私はJavaでよく利用されているEclipseの履歴機能が気に入って、Eclipseを利用しています。

 Eclipseの履歴機能には、

「元に戻す」
「ファイルを保持する日数」
「ファイル当たりの最大のエントリー数」
「最大ファイル・サイズ」

という機能があるのですが、それぞれ簡単に設定できるので、よければお試しあれ!


 動作環境には、

OS:Mac OS X 10.5.3 Leopard
Eclipse:3.3.2(Europa)

を利用していますが、OSにWindowsやEclipseには、3.2などの3.X系でも利用できます。

Eclipseの「設定」から履歴機能を変更できます。
私の環境では、「Eclipse」メニューから「Preferences」をクリックすると「設定画面」ウィンドウが表示されます。
WindowsのEclipse 3.2なら「ウィンドウ(W)」メニューから「設定(P)」をクリックすると「設定画面」ウィンドウが表示されます。
画面で確認してみましょう!

設定画面.jpg


「元に戻す」という機能は、一般的な入力の戻りや取り消しが行える回数の事で次のように、設定します。

テキスト・エディター.jpg
表示をクリックすると拡大されて表示されます。

「ローカル・ヒストリー」の中にある「ファイルを保持する日数」、「ファイル当たりの最大のエントリー数」、「最大ファイル・サイズ」の機能を画像で確認してみましょう。

ローカル・ヒストリー.jpg
表示をクリックすると拡大されて表示されます。

 「ファイルを保持する日数」に、最大値を入れて再度設定画面を開くと、画像のような数になりますが、ここまで保持する必要があるかは微妙ですけど、私にはありがたいです。
 「ファイル当たりの最大のエントリー数」、「最大ファイル・サイズ」も画面の値が最大値で、警告が表示されるまで入力してみました。


 試しに、ローカル・ヒストリーから操作を戻してみましょう!比較もできるので、履歴をみることでどうのように変化したかも確認できます。

ローカル・ヒストリーへ.jpg
表示をクリックすると拡大されて表示されます。

ローカル・ヒストリーをクリックすと、比較画面が表示されます。
比較.jpg
表示をクリックすると拡大されて表示されます。

 時刻をクリックすると現在の比較が表示されます。ねえ、便利でしょ?

 Eclipseの良さは、他にもあると思いますが、後々戻せるので、私の場合は安心して作業に取り込めます。操作性は、Eclipseが現在と差はないので、履歴機能の設定を最大限にしても損はないと思います。

やっぱりvi(2)

|

前回、viに関する記事を書いたので、それに続けて、私がよく使う機能を紹介したいと思います。

コーディングを行っているとよくコピー&ペーストを行うと思います。
その際は、単純にマウスで範囲選択して、コピー&ペーストを行うと言うのが一般的ではないかと思いますが、viの機能でもそのような事が出来ます。
利点は、キーボードから手を離す必要がなく、複数のコピーを保持しておけると言う点です。

まずは、単純に複数行をコピー&ペーストする例です。

例として、次のような3行が記述されているファイルを想定します。
---------------
ABC
DEF
GHI
---------------

この3行をコピーして、最終行の後にペーストします。
[Esc]キーを押してコマンドモードになっていると言う状態から始めます。

1. [1G] キーを押す。
意味: ファイルの先頭にカーソルを移動する。

2. [3yy] キーを押す。
意味: カーソル位置から3行を記憶する。

3. [G] キーを押す。
意味: ファイルの最終行にカーソルを移動する。

4. [p] キーを押す。
意味: 先程記憶した3行をカーソル位置の次の行に貼り付ける。

結果:
---------------
ABC
DEF
GHI
ABC
DEF
GHI
---------------

この方法ですと、別の行を記憶した場合、前述の3行は上書きされてしまいます。
コピー内容を保持しておく為には、名前付きのバッファにコピーする必要があります。
バッファの名前としては、アルファベット1文字が割り当てられています。

次にバッファbに3行をコピーしてペーストする例を記述します。
(条件は最初の例と同様です。)

1. [1G] キーを押す。
意味: ファイルの先頭にカーソルを移動する。

2. ["b3yy] キーを押す。
意味: バッファbにカーソル位置から3行を記憶する。

3. [G] キーを押す。
意味: ファイルの最終行にカーソルを移動する。

4. ["bp] キーを押す。
意味: バッファbに記憶した3行をカーソル位置の次の行に貼り付ける。

これにより、別の行を名前なしのバッファにコピーしてもバッファbの内容は保持されます。
これを応用し、複数のコピー&ペーストを行う例を記述します。

1行目と3行目をそれぞれバッファbとバッファcにコピーしてペーストします。
(条件は最初の例と同様です。)

1. [1G] キーを押す。
意味: ファイルの先頭にカーソルを移動する。

2. ["byy] キーを押す。
意味: バッファbにカーソル位置の行を記憶する。

3. [2j] キーを押す。
意味: 現在行から2行下にカーソルを移動する。

4. ["cyy] キーを押す。
意味: バッファcにカーソル位置の行を記憶する。

5. ["bp] キーを押す。
意味: バッファbに記憶した行をカーソル位置の次の行に貼り付ける。

6. ["cp] キーを押す。
意味: バッファcに記憶した行をカーソル位置の次の行に貼り付ける。

結果:
---------------
ABC
DEF
GHI
ABC
GHI
---------------

最後に複数行をコピーする場合の別の方法を紹介します。
前述では、3行をコピーしましたが、行数が多くなると、何行コピーしたいと言うよりはここからここまでコピーしたいと考えると思います。
その例として、ABCの行からGHIの行までをバッファbにコピーしてペーストする方法を記述します。
(条件は最初の例と同様です。)

1. [1G] キーを押す。
意味: ファイルの先頭にカーソルを移動する。

2. [ma] キーを押す。
意味: マークaにカーソル行の位置を記憶する。

3. [2j] キーを押す。
意味: 現在行から2行下にカーソルを移動する。
(実際は、何行下にあるか解らないので、jキー等の移動キーで、GHIの行まで移動する。)

4. ["by'a] キーを押す。
意味: バッファbにマークaの行からカーソル行までを記憶する。

5. [G] キーを押す。
意味: 最終行にカーソルを移動する。

6. ["bp] キーを押す。
意味: バッファbに記憶した行をカーソル位置の次の行に貼り付ける。

結果:
---------------
ABC
DEF
GHI
ABC
DEF
GHI
---------------

上記2で、カーソル行の位置を記憶しましたが、これは、コピーの場合だけでなく、カーソルの移動にも使用出来ます。使用方法は、'+マーク名で、上記の例ですと['a]を入力する事で、ABCの行にカーソルを移動出来ます。

長くなりましたが、この機能を使う事で、複数個所のコードを一箇所にまとめたり、記憶した内容を繰り返し利用する場合などに便利だと思います。

やっぱりvi

|

先日、mtaneda君の「道具にこだわろう(1) エディタ編前編」と言う記事で、Emacsの紹介がありましたね。
Emacsも人気があるエディタですが、私が最初に使ったのはviで、それ以降、現在までviを愛用しています。
当時は(10年以上前)、unix系での開発がメインだったと言うのもありますが、
飽きっぽい私が10年以上も使い続けていると言う事は、やはり、良いエディタなんだと思います。
そんなviの操作を紹介したいと思います。

まずは、mtaneda君の記事の事例1をviでやってみたいと思います。

「"ABCDEF" という文字列を 256回貼り付けたいとき」

ABCDEFと言う文字列が入力されていて、カーソルが行末にあり、
[Esc]キーを押してコマンドモードになっていると言う状態から始めます。

1. [0] キーを押す。
意味: 文字列 "ABCDEF" を選択するためにカーソルを行頭に戻す。


2. [y$] キーを押す。
意味: カーソル位置から行末までを記憶する。


3. [$] キーを押す。
意味: カーソル位置を行末に移動する。


4. [256p] キーを押す。
意味: 先程記憶した文字列 "ABCDEF"をカーソル位置の次から256回貼り付ける。


結果:
ABCDEFABCDEFABCDEF...(以下、254個省略)

ついでに"ABCDEF"と言う行を256回貼り付ける場合も書いてみます。

ABCDEFと言う文字列が入力されていて、カーソルが次の行の行頭にあり、
[Esc]キーを押してコマンドモードになっていると言う状態から始めます。

1. [1G] キーを押す。
意味: 文字列 "ABCDEF" を選択するためにカーソルをファイルの先頭に戻す。


2. [yy] キーを押す。
意味: カーソル行を記憶します。


3. [256p] キーを押す。
意味: カーソル行の下に"ABCDEF"を256行貼り付けます。


結果:
ABCDEF
ABCDEF
ABCDEF
...(以下、254行省略)


如何でしょうか?
viも結構簡単ですね。

viは編集モードとコマンドモードと言う2つのモードに分かれているのが特徴的ですね。
非常に画期的なアイデアだと思います。
そのお陰でコマンドを入力する際に[Ctrl]キーを押しながらと言う事をしなくて済みます。
その反面、初心者には使い辛い、理解し辛いと言う事があるのではないかと思います。

「最初は使い辛いエディタだが、慣れると最高のエディタ」と言うのがviだと、私は思います。

DTDとかXML Schemaとか

|

DBの無い環境でのデータ保持や、設定ファイルを作る時などにXMLを利用することがあります。

私は特に設定ファイルにおいて、iniファイルよりXMLにする方が好きなのでよくXML形式の設定ファイルを作成しています。

そんなXMLをプログラムで読み込んだ時
形式チェックにはDTDやXML Schemaを使うと簡単にできますよね。

しかし、慣れていないとDTDやXML Schemaの作り方がわからなかったり、慣れていても面倒臭かったりします。。

そんな時、役に立つツールがTrangです。

このTrangにxmlを読み込ませると、そのxmlに即したDTDやXML Schemaを出力してくれるのです!
もちろん、出力後に一意キー制約や型の指定などの細かい部分は修正しないといけませんが、スキーマを作成するほとんどの手間を省くことができるのです。

さらにDTDからXML Schemaへの変換も可能です。
便利ですね~

ちなみにTrangは実行形式jarとRPM形式が用意されているので、javaの実行環境があればどこでも利用できますし、Linuxであればjavaの実行環境無しでも動作します。

実行形式jarのコマンド例(XML Schema):
java -jar trang.jar sample.xml sample.xsd

こんな感じで実行できます。
拡張子に依存するので、最後のsample.xsdを.dtdにすればDTDができます。

 

XML Schema書くのめんどくさーいという人はぜひ使ってみてください。