Up: 目次   [Index]


NetBeans External Editor インターフェイス

*netbeans.txt*  For Vim バージョン 8.1.  Last change: 2019 May 05


                  VIMリファレンスマニュアル    by Gordon Prieur et al.

Vim NetBeans プロトコル: Vim と IDE を統合するためのソケットインターフェイス

1. はじめに|netbeans-intro|
2. NetBeans インターフェイスでできること|netbeans-integration|
3. NetBeans 用に configure する|netbeans-configure|
4. エラーメッセージ|netbeans-messages|
5. Vim を NetBeans モードで起動する|netbeans-run|
6. NetBeans プロトコル|netbeans-protocol|
7. NetBeans コマンド|netbeans-commands|
8. 既知の問題|netbeans-problems|
9. NetBeans プロトコルのデバッグ|netbeans-debugging|
10. NetBeans 外部エディタ
    10.1. NetBeans をダウンロードする|netbeans-download|
    10.2. NetBeans のキーバインド|netbeans-keybindings|
    10.3. NetBeans 側の準備|netbeans-preparation|
    10.4. External Editor モジュールの入手|obtaining-exted|
    10.5. NetBeans の設定|netbeans-setup|

{|+netbeans_intg| 機能つきでコンパイルされたときのみ利用可能}

1. はじめに

NetBeans インターフェイスは、最初は External Editor プラグインを使つて Vim と NetBeans Java IDE を統合するために開發されました。その NetBeans プラグインは今はもう NetBeans の新しいバージョンに對應してをらず、このプロトコルは任意の IDE と Vim を統合させるために開發されてゐます。

Vim の NetBeans プロトコルは、古典的な TCP ソケットを使つた、テキストベースの通信プロトコルです。Java や NetBeans にはまつたく依存してゐません。ソケットインターフェイスさえ備へてゐれば、どんな言語・環境でもこのプロトコルを使つて Vim をコントロールできます。C, C++, Python, Java の實裝がすでに存在してゐます。歷史的な理由により NetBeans の名前が今も殘されてゐます。

NetBeans プロトコルを使つたプロジェクトは現在のところ、以下のものがあります:

詳しくは、それぞれのプロジェクトページを參照してください。

別の方法としてチャネルを使ふ方法があります。詳しくは |channel| を參照してください。

このヘルプページの以降の部分で、NetBeans ソケットインターフェイスを使つて Vim をコントロールするプログラムのことを「Vim コントローラ」と呼びます。

NetBeans IDE について

NetBeans は、Sun Microsystems, Inc. と netbeans.org の開發者コミュニティが合同で開發してゐるオープンソースの統合開發環境 (IDE) です。最初は Java の IDE でしたが、今では C, C++, Fortran もサポートするやうになつてゐます。

NetBeans に關してより詳しくは http://www.netbeans.org を參照してください。The External Editor は殘念なことに obsolete と宣言されてゐます。

http://externaleditor.netbeans.org

Sun Microsystems, Inc. は NetBeans を Sun ONE Studio といふ名前でもリリースしてゐます。Sun ONE Studio に關しては http://www.sun.com を參照してください。

現在のところ、NetBeans は Java を完全サポート、C, C++, Fortran を限定的にサポートしてゐます。Sun ONE Studio は Java, C, C++, Fortran を完全サポートしてゐます。

2. NetBeans インターフェイスでできること

Vim の NetBeans ソケットインターフェイスを使ふと、Vim から情報を引き出したり、Vim に指定の動作をさせることができます:

Vim にキーストロークを送つたり、Vim の中で函數を評價するには |clientserver| インターフェイスを使ふ必要があります。

3. NetBeans 用に configure する

Vim のインストールについてより詳しくは、ユーザーマニュアルの |usr_90.txt| を讀んでください。

Unix では:

configure を引數なしで起動した場合、NetBeans インターフェイスを有效にできるか configure がチェックし、可能なら有效にします。

NetBeans インターフェイスを有效にしたくない場合は、Makefile の中の "‘--disable-netbeans’" の行のコメントアウトを解除すれば無效にできます。

現在 NetBeans インターフェイスは端末動作の Vim と GUI (GTK, GNOME, Windows, Athena, Motif) の GVim でのみサポートされてゐます。

Motif をサポートするためには XPM ライブラリが必要です。 XPM ライブラリは、Motif または Athena を使用して Vim內に畫像を表示するために必要です。それがなければ、ツールバーと目印 (sign) は無效になります。

XPM ライブラリは、フランス國立コンピュータ科學硏究所の Arnaud Le Hors によつて提供されてゐます。それは http://cgit.freedesktop.org/xorg/lib/libXpm からダウンロードすることができます。これを書いてゐる時點での現在のリリースは xpm-3.4k-solaris.tgz で、これは gzip された tar ファイルです。 ディレクトリ /usr/local/xpm を作成してそこにファイルを展開すると、Makefile のコメントアウトされてゐない行を變更せずに使用できます。 他の xpm ディレクトリを使用する場合は、src/Makefile の XPM_DIR を變更する必要があります。

MS-Windows では:

Win32 サポートは現在ベータ版の段階です。

Win32 で XPM signs を使ふ(NetBeans と使ふ場合など)ためには、XPM を自分自身でコンパイルするか、コンパイル濟みライブラリを使ふ必要があります。

デバッグを有效化する:

Vim と NetBeans プロトコルのデバッグを有效化するには、"NBDEBUG" マクロを定義する必要があります。お使ひのプラットフォーム用の Makefile の中から "NBDEBUG" を檢索し、どの行のコメントを解除すればよいかを調べてください。さうすればコンパイルコマンドに "-DNBDEBUG" が追加されます。|netbeans-debugging| も參照してください。

4. エラーメッセージ

以下のエラーメッセージは NetBeans ソケットプロトコルのものです:

Region is guarded, cannot modify
日本語版: 領域が保護されてゐるので, 變更できません

Vim コントローラがテキスト中に保護領域を設定してをり、そこを變更することはできません。必要に應じてカレントバッファもセットします。

The defineAnnoType highlighting color name is too long

defineAnnoType コマンドの "fg" と "bg" の色指定引數の最大長は 32 文字です。

バージョン 2.5 で新たに追加された仕樣。

Writes of unmodified buffers forbidden

Vim コントローラによつて開かれてゐる變更されてゐないバッファを書き出すことはできません。

Partial writes disallowed

Vim コントローラによつて開かれてゐるバッファの部分的な書き出しはできません。

Connection lost for this buffer
日本語版: バッファの NetBeans 接續が失はれました

Vim コントローラがこのファイルの狀態について混亂してしまひました。データを破損する危險を冒すよりも、このファイルに對する接續を切斷することを選びました。このファイルに對する變更を保存する責任は Vim が引き繼ぎ、Vim コントローラはもうそれらについて關知しません。

Read-only file
日本語版: NetBeans は讀込專用ファイルを變更することを許しません

通常の Vim では、讀み込み專用ファイルを變更することはでき、ファイルを書き出すときだけ讀み込み專用のルールが適用されます。しかし、NetBeans はユーザーが讀み込み專用ファイルに變更を施すことを許可しません。そのため、Vim が讀み込み專用ファイルを變更すると混亂してしまひます。そのため、NetBeans モードで動作してゐるときは、Vim でもファイルへの變更を許可しないやうにしてゐます。

5. Vim を NetBeans モードで起動する

Vim を NetBeans モードで實行するには 2 つの方法があります:

Vim は接續試行時に 3 秒のタイムアウトを用ゐます。

NetBeans 接續情報を指定する形式は 3 通りあります。コマンドラインで |-nb| 引數を指定するときは次のやうに指定します:

-nb={fname}ファイルから
-nb:{hostname}:{addr}:{password}直接指定
-nbファイルまたは環境變數から

Vim の中で |:nbstart| コマンドの引數として指定するときは次のやうに指定します:

={fname}ファイルから
:{hostname}:{addr}:{password}直接指定
<MISSING ARGUMENT>ファイルまたは環境變數から

NetBeans の開始をコマンドラインで指定するとき、セキュリティ上の理由からベストな方法は、情報をファイルに書き、自分だけが讀めるやうにしておくことです。ファイル名は "-nb={fname}" で渡すか、または "-nb" をパラメーターなしで使ふと環境變數 "__NETBEANS_CONINFO" が使はれます。このファイルは以下の 3 行を含んでゐなければなりません (順序は問はない):

host={hostname}
port={addr}
auth={password}

これ以外の行は無視されます。Vim コントローラが終了後にこのファイルを削除する責任を負ひます。

{hostname} は Vim コントローラが動作するマシンの名前です。省略されたときは、環境變數 "__NETBEANS_HOST" または既定値の "localhost" が使はれます。

{addr} は NetBeans インターフェイスのポート番號です。省略されたときは、環境變數 "__NETBEANS_SOCKET" または既定値の 3219 が使はれます。

{password} は NetBeans への接續のパスワードです。省略されたときは、環境變數 "__NETBEANS_VIM_PASSWORD" または "changeme" が使はれます。

Vim は起動時に、指定されたホスト・ポートへのソケット接續 (クライアント側) を初期化します。接續が確立されると、AUTH イベントによりパスワードが送信されます。

6. NetBeans プロトコル

Vim コントローラと Vim の通信にはプレーンテキストのメッセージが使はれます。このプロトコルは、最初は NetBeans の External Editor モジュールと協調して動作するやうに設計されました。その後、Agide (A-A-P GUI IDE, http://www.a-a-p.org を參照) と、そして他の IDE とも動作するやうに擴張されました。この擴張は "version 2.1" とバージョンづけられてゐます。

プロトコル version 2.2 は小さな變更で、NetBeans ユーザーにのみ影響し、Agide ユーザーには無關係なはずでした。しかし、あるバグが修正されました。netbeans_saved() 函數が "save" プロトコルコマンドを送信するのですが、プロトコル version 2.1 とそれ以前では、それが書き込みが行はれたことの通知であると誤解されてゐました。

實際は NetBeans に對して保存するやう通知するものだつたので、複數の書き込みが行はれました。これが樣々な問題を引き起こし、2.2 で修正されました。以降、同じ閒違ひが起こらないやうにするため、netbeans_saved() は netbeans_save_buffer() と名前が變更されました。

現在のバージョンは 2.5 です。2.4 と 2.5 の違ひは下記文章から "2.5" を檢索してください。

メッセージはソケットを通じて送られます。メッセージは UTF-8 のプレーンテキストなので、このプロトコルは他のどんな通信メカニズムでも使へます。

Netbeans メッセージは Vim がユーザー入力待ちでアイドル狀態のときに處理されます。Vim が非對話モードのとき (例へば Vim script による自動テストを實行してゐるときなど) は、アイドルループは頻繁には呼ばれないのでメッセージ處理が追ひつかないかもしれません。その場合は Vim script に |:sleep| コマンドを入れてください。|:sleep| コマンドは Netbeans メッセージの處理を呼び出します。

6.1 メッセージの種類|nb-messages|
6.2 用語|nb-terms|
6.3 コマンド|nb-commands|
6.4 函數と應答|nb-functions|
6.5 イベント|nb-events|
6.6 特別なメッセージ|nb-special|
6.7 プロトコルエラー|nb-protocol_errors|

6.1 メッセージの種類

メッセージには 4 つの種類があります:

種類方向コメント
コマンドIDE -> editor應答は必要ない
函數IDE -> editorエディタは應答を送信しなければならない
應答editor -> IDE函數への應答としてのみ送られる
イベントeditor -> IDE應答は必要ない

メッセージは、改行文字で終はる一行として送られます。引數は 1 つのスペースで區切られます。メッセージの最初の要素はメッセージの種類に依存します:

種類最初の要素
コマンドbufID:name!seqno11:showBalloon!123 "text"
函數bufID:name/seqno11:getLength/123
應答seqno123 5000
イベントbufID:name=seqno11:keyCommand=123 "S-F2"

6.2 用語

bufID

バッファ ID。メッセージは特定のバッファ向けの場合も、全體用の場合もあります。全體用のメッセージは bufID 0 を使ひます。

Note:
このバッファ ID は IDE によつて割り當てられるもので、Vim のバッファ番號とは異なります。

bufID は連續して增加する番號で、1 から始まります。’switchbuf’ オプションが "usetab" に設定されてゐる狀態で "bufID" のバッファが現在のタブページで見つからない場合に、netbeans コマンドおよび函數はカレントウィンドウでバッファを入れ替へる代はりに他のタブページに含まれるこのバッファのうち最初のものへジャンプし、それをカレントバッファとして設定します。

seqno

IDE が Vim にコマンド・函數を發行するときつけられる連續する番號です。應答は、その元メッセージと同じシーケンス番號を使はねばなりません。シーケンス番號 0 はイベント用に使はれます (最後に受け取つたコマンドまたは函數のシーケンス番號が使はれることもあります)。

string

ダブルクォートで圍まれた文字列。UTF-8 でエンコードされます。よつて ASCII 文字はそのままとなります。特殊文字はバックスラッシュをつけて表現されます:

\"ダブルクォート
\n改行
\r復歸
\tタブ (任意。そのままでも使へます)
\\バックスラッシュ

NUL 文字は使用できません。

boolean

次の 2 つの値のどちらかとなります。

Ttrue
Ffalse
number

10 進數の數値。

color

10 進數の數値か "none" (クォートなし) か色の名前 (クォートなし) のいづれか。色の名前は |highlight-ctermfg| と |gui-colors| で定義されてゐる名前。

バージョン 2.5 で新たに追加された仕樣。

offset

バッファ中のバイト位置を示す數値。第 1 バイト目のオフセットは 0 となります。改行は、ファイル中での表現と同じくカウントされます (CR/LF は 2 バイト)。

Note:
マルチバイト文字は、そのバイト數カウントされます。

lnum/col

行番號と桁番號。行番號は 1 から始まり、桁番號は 0 から始まるバイト位置となります。

Note:
マルチバイト文字は 2 桁以上を占めることに注意してください。

pathname

文字列: フルパスでのファイル名

6.3 Commands

actionMenuItem

未實裝。

actionSensitivity

未實裝。

addAnno serNum typeNum off len

このバッファに annotation をつけます。

引數:

serNumnumberこの annotation の通し番號。削除するときに使はれます。
typeNumnumberこのバッファに對して defineAnnoType で定義された annotation タイプの番號。
offnumberannotation をつける位置のオフセット
lennumber未使用

version 2.1 では "off" の代はりに "lnum/col" が使へます。

balloonResult text

未實裝。

close

バッファを閉ぢます。これを使ふとカレントバッファがない狀態になります。非常に危險です!

create

名前をつけてバッファを作成します。作成されたバッファがカレントバッファになります (元のバッファは、變更されてゐれば hidden 狀態になります)。

Vim コントローラは、開いてゐるファイルに對する最初のコマンドとしてこのコマンドを使ふべきです。一聯のコマンドの例は次のやうになります:

create
setCaretListener(無視される)
setModified(效果なし)
setContentType(無視される)
startDocumentListen
setTitle
setFullName
defineAnnoType typeNum typeName tooltip glyphFile fg bg

このバッファに對する annotation のタイプを定義します。

引數:

typeNumnumberシーケンス番號 (實際には使はれない)
typeNamestringこの annotation を識別するための名前
tooltipstring未使用
glyphFilestringアイコンのファイル名
fgcolor行の文字色
bgcolor行の背景色

Vim はこの annotation に對して目印を定義します。

色を數値で指定するときは "#rrggbb" で赤綠靑での色指定になり (|gui-colors| 參照) GVim でのみ定義されます。

色を名前で指定するときはその色はカラー端末上で動作する Vim と GVim の兩方で定義されたものです。

"fg" と "bg" が兩方とも "none" の場合、行は强調されません (version 2.1 から)。

"glyphFile" が空の場合、テキストの目印は使はれません (version 2.1 から)。

"glyphFile" が 1 または 2 文字である場合、テキストの目印が定義されます (version 2.1 から)。

Note:
annotation にはシーケンス番號がつけられ、その番號は addAnno で使はれます。

editFile pathname

バッファの名前をセットし、ファイル "pathname" を開きます。IDE が開くファイルをエディタに傳へる通常の方法です。

バッファに bufID を割り當てるため、このコマンドに對する bufID は 0 以外の値にしなければなりません。bufID 0 でイベント fileOpened が發生しますが、バッファは割り當てられてゐます。

IDE からエディタにファイルのテキストを渡したい場合には、代はりに次のコマンドを使つてください:

setFullName
insert
initDone

version 2.1 から。

enableBalloonEval

未實裝。

endAtomic

アトミックな操作を終了します。"startAtomic" と "endAtomic" の閒に行はれた變更は 1 つの操作として undo されます。しかし現在は未實裝です。必要に應じて再描畫をしてください。

guard off len

バッファ內の領域を保護します。保護された領域を變更することはできません。"off" と "len" は number で、保護されるテキストを指定します。

initDone

バッファの準備ができたとマークします。暗默的にそのバッファをカレントバッファにします。自動コマンドイベント BufReadPost を發生させます。

insertDone

Vim コントローラから Vim へ、最初のファイルの插入が行はれたことを通知します。これにより、ファイル讀み込みのメッセージが表示されます。version 2.3 より前は、ファイルを開いた後にメッセージが表示されませんでした。

version 2.3 から。

moveAnnoToFront serNum

未實裝。

netbeansBuffer isNetbeansBuffer

"isNetbeansBuffer" が "T" ならば、このバッファは NetBeans により「所有」されます。

version 2.2 から。

putBufferNumber pathname

pathname は string。"pathname" といふ名前のバッファにバッファ番號を割り當てます。エディタで新たにファイルが開かれると、そのことを IDE に通知します。そして IDE はそのファイルに對してバッファ番號を割り當てます。そのときこのコマンドが使はれます。そのバッファは初期化濟みとマークされます。

version 2.1 から。

raise

エディタを前面に移動します。GUI Vim でのみ有效。

version 2.1 から。

removeAnno serNum

以前にこのバッファに對してつけられた annotation を削除します。"serNum" は addAnno で使はれたのと同じ番號です。

save

バッファが變更されたとき保存します。インターフェイスのもう一方側はバッファを書き出し、"setModified" を呼び出してバッファの "changed" フラグをオフにすることを期待されてゐます。 これらの條件が眞になる場合、書き込みはスキップされます:

version 2.2 から。

saveDone

Vim コントローラから Vim へ、保存が行はれたことを通知します。これによつて保存メッセージが表示されます。version 2.3 より前では、保存メッセージは表示されませんでした。

version 2.3 から。

setAsUser

未實裝。

setBufferNumber pathname

"pathname" といふ名前のバッファにバッファ番號を割り當てます。エディタで新たにファイルが開かれると、そのことを IDE に通知します。そして IDE はそのファイルに對してバッファ番號を割り當てます。そのときこのコマンドが使はれます。

このバッファがカレントバッファになるといふ副作用があります。"putBufferNumber" の方がより便利なコマンドです。

setContentType

未實裝。

setDot off

このバッファをカレントバッファにし、カーソルを指定した位置に移動します。バッファが他のウィンドウで開かれてゐる場合は、そのウィンドウがカレントウィンドウになります。

折り疊みがある場合、カーソル行が見えるやうに開かれます。version 2.1 では "off" の代はりに "lnum/col" が使へます。

setExitDelay seconds

"seconds" は number。終了の遲延をセットします。この遲延によつて、IDE に對して本當に終了するまへに何かをするチャンスを與へます。既定値は 2 秒です。

version 2.1 から。

version 2.3 から非推奬になりました。

setFullName pathname

バッファ "pathname" に對するファイル名をセットします。引數は string です。

IDE の制禦下にあるファイルを IDE が編輯したいときに使はれます。このバッファがカレントバッファになりますが、ファイルは讀み込まれません。その內容をセットするため、次に "insert" コマンドが發行されます。

setLocAndSize

未實裝。

setMark

未實裝。

setModified modified

boolean の引數 "modified" が "T" のとき、バッファを modified 狀態にします。"F" のときは unmodified にします。

setModtime time

Vim コントローラによりファイルが直接保存されたあとに發行されます。バッファの變更時刻を更新します。

version 2.3 から。

setReadOnly

ファイルを讀み込み專用にします。

version 2.3 で實裝されました。

setStyle

未實裝。

setTitle name

"name" といふ名前のバッファのタイトルをセットします。引數 "name" は string。このタイトルは Vim コントローラ函數でのみ使はれ、Vim では使はれません。

setVisible visible

boolean の引數 "visible" が "T" の場合は、そのバッファへ移動します。"F" の場合は何もしません。

showBalloon text

マウスポインタの位置に、"text" といふ內容のバルーンウィンドウ (ポップアップウィンドウ) を表示します。引數 "text" は string です。マウスが 2, 3 ピクセル以上移動すると、バルーンウィンドウは消えます。

GUI Vim でのみ有效。

version 2.1 から。

specialKeys

Vim コントローラに戾して處理させるキー (大抵はファンクションキー) を設定します。これによつて Vim の中で IDE のホットキーを使ふことができるやうになります。

version 2.3 で實裝されました。

startAtomic

アトミックな操作を開始します。"endAtomic" が發行されるまで畫面の更新は行はれません。

startCaretListen

未實裝。

startDocumentListen

そのバッファにおける變更を "insert" と "remove" イベントによつてIDE に通知するやうセットします。既定では通知するやうになつてゐます。

stopCaretListen

未實裝。

stopDocumentListen

そのバッファにおける變更を IDE に通知しないやうにします。 startDocumentListen の逆です。

Note: * "netbeansBuffer" によつてこのバッファが NetBeans バッファであるとマークされてゐる場合、このバッファは Vim の中で削除されます。Sun Studio 10 との互換性のためです。

unguard off len

"guard" の逆で、テキスト領域に對する保護を解除します。必要に應じてカレントバッファもセットします。

version

未實裝。

6.4 函數と應答

getDot

未實裝。

getCursor

カレントバッファの bufID とカーソル位置を返します。

應答は次の形式:

seqno bufID lnum col off
seqno函數のシーケンス番號
bufIDカレントバッファの bufID (未知なら -1)
lnumカーソル位置の行番號 (1 から始まる)
colカーソル位置の桁番號 (バイト單位。0 から始まる)
offカーソル位置のバッファ內のオフセット (バイト單位)

version 2.1 から。

getLength

バッファの長さをバイト單位で返します。

5000 バイトのバッファにおける應答の例:

123 5000

TODO:
部分行の使ひ方を說明する。

getMark

未實裝。

getAnno serNum

指定された annotation の行番號を返す。

引數:

serNumannotation の通し番號

應答は次の形式:

123 lnumannotation の行番號
123 0無效な annotation 番號

version 2.4 から。

getModified

バッファが指定された場合: バッファが變更されてゐないなら 0、變更されてゐるなら 1 を返します。

バッファが指定されない場合(bufID が 0 の場合): 變更されてゐるバッファの數を返します。戾り値が 0 なら、Vim に終了するやう指示しても安全です。

version 2.1 から。

getText

バッファの中身を文字列として返します。2 行だけのバッファにおける應答の例:

123 "first line\nsecond line\n"

Note:
ドキュメントには引數 offset と length が記述されてゐますが、實裝されてゐません。

insert off text

位置 "off" の前に "text" を插入します。"text" は string、"off" は number です。 "text" の行末には "\n" (改行) がつきます。’fileformat’ が "dos" の場合には "\r\n" がつきます。空バッファに對して "insert" を行ふと、Vim はそれに應じて ’fileformat’ を設定します。

"off" が行頭を指してゐる場合、その行の前に插入されます。そのため、"off" が 0 の場合、最初の行の前に插入されます。 "off" が行頭よりも後を指す場合 (行末の NUL を指す場合も含め)、テキストの最初の行はその行に追加されます。2 行目以降はその下にきます。 應答は次のやうになります:

123問題なし
123 !message失敗

Note:
應答のメッセージはクォートされてゐません。必要に應じてこのバッファをカレントバッファにします。變更されたテキストへカーソルを移動させません。undo 情報をリセットします。

remove off length

位置 "off" のテキストを "length" バイト削除します。どちらの引數も number です。 應答は次のやうになります:

123問題なし
123 !message失敗

Note:
應答のメッセージはクォートされてゐません。必要に應じてこのバッファをカレントバッファにします。

saveAndExit

":confirm qall" と同じことをします (Vim を閉ぢる)。變更されたファイルがない、またはユーザーが操作をキャンセルしなかつた場合、Vim は終了し、戾り値は送信されません。IDE は接續が切斷したことをもつて成功と判斷できます。ユーザーが操作をキャンセルした場合、變更されてゐるバッファの番號が返され、Vim は終了しません。

version 2.1 から。

6.5 イベント

balloonEval off len type

マウスポインタが一定時閒テキストの上に置かれました。"len" が 0 の場合、マウスポインタが "off" の位置にあり、選擇がされてゐないことを意味します。

"len" が 0 でない場合、"off" から "off" + "len" までのテキストが選擇されてゐることを意味します。

バッファに對して "enableBalloonEval" が使はれた後でのみ送信されます。"type" はまだ定義されてゐません。

未實裝。

balloonText text

ballooneval’ がセットされてをり、マウスポインタが一定時閒テキストの上に置かれたとき發生します。"text" は string で、マウスポインタの下のテキストを表します。

GUI Vim でのみ有效。

version 2.1 から。

buttonRelease button lnum col

ボタンが離されたとき、どのボタンが押されたかと、カーソルの位置を報告します。Vim コントローラによつて所有されてゐるバッファにおいてのみ發生します。マウスがステータスラインまたはセパレータラインの中にあるときは、ボタンが離されても、このイベントは送信されません。col が 1 未滿の場合、目印エリアの中でボタンが離されたことを意味します。

version 2.2 から。

disconnect

Vim が終了するので、これ以上コマンドを讀み書きしないやう Vim コントローラに傳へます。

version 2.3 から。

fileClosed

未實裝。

fileModified

未實裝。

fileOpened pathname open modified

ユーザーがファイルを開きました。

引數:

pathnamestringファイル名
openboolean常に "T"
modifiedboolean常に "F"
geometry cols rows x y

エディタウィンドウのサイズと位置を報告します。

引數:

colsnumberテキストの桁數
rowsnumberテキストの行數
xnumber畫面上のピクセル位置
ynumber畫面上のピクセル位置

Motif でのみ動作します。

insert off text

Vim において、"off" の位置にテキスト "text" が插入されました。有效化されてゐるときのみ發生します。"startDocumentListen" を參照してください。

invokeAction

未實裝。

keyCommand keyName

"keyName" といふ名前の特殊キーが押されたことを報告します。"keyName" は string です。 サポートされてゐるキー名:

F1ファンクションキー 1
F2ファンクションキー 2
...
F12ファンクションキー 12
’ ’スペース (シングルクォートはつかない)
!エクスクラメーションマーク
...それ以外の ASCII 印字可能文字
~チルダ
X認識されないキー

前に "C", "S", "M" がつくことがあります。それぞれ Control, Shift, Meta (Alt) キーを意味します。これらの修飾キーとキー名の閒にはダッシュがつきます。例: "C-F2".

ASCII 文字は version 2.1 から。

keyAtPos keyName lnum/col

"keyName" と同樣ですが、行番號と桁番號も報告します。

version 2.1 から。

killed

ユーザーによつてファイルが削除またはワイプアウトされ、annotation が削除されました。このバッファに對する bufID は無效になりました。IDE によつて bufID が割り當てられたファイルに對してのみ發生します。

newDotAndMark off off

カーソルがバッファの "off" バイトの位置にあることを報告します。"keyCommand" イベントの直前でのみ送信されます。

quit

未實裝。

remove off len

Vim において、"off" の位置から "len" バイトのテキストが削除されました。有效にされてゐるときのみ發生します。"startDocumentListen" を參照してください。

revert

未實裝。

save

バッファが保存され、「未變更」狀態です。有效にされてゐるときのみ發生します。"startDocumentListen" を參照してください。

startupDone

エディタがスタートアップ處理を完了し、ファイルを編輯する準備が整ひました。

version 2.1 から。

unmodified

バッファが「未變更」狀態になりました。有效にされてゐるときのみ發生します。"startDocumentListen" を參照してください。

version vers

インターフェイスの實裝のバージョンを報告します。Vim は "2.4" と報告します (ダブルクォートを含む)。

6.6 特別なメッセージ

これらのメッセージは、前述のメッセージの形式に從ひません。改行文字で終はります。

ACCEPT

未使用。

AUTH password

editor -> IDE: エディタが IDE に送る最初のメッセージ。|-nb| で指定された、ソケットサーバーのパスワードを含んでゐなければなりません。引用符は使はれません。

DISCONNECT

IDE -> editor: 接續を切斷します。その後エディタは終了します。IDE は、保存されてゐない變更がないときしかこのメッセージを送つてはなりません!

DETACH

IDE -> editor: エディタを終了させずに接續を切斷します。エディタは終了させずに IDE を終了させるとき使はれます。

version 2.1 で導入されました。

REJECT

未使用。

6.7 プロトコルエラー

メッセージがプロトコルに違反したとき、以下のエラーが發生します:

 *E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636*
 *E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646*
 *E647* *E648* *E649* *E650* *E651* *E652*

7. NetBeans コマンド

:nbs[tart] {connection}

新しい Netbeans セッションを開始する。{connection} はソケット接續パラメーター。{connection} の書式は |netbeans-parameters| で說明されてゐます。

netbeans ソケットが接續されてゐるかどうかは次のコマンドで確認できます: ’:echo has("netbeans_enabled")

:nbc[lose]

現在の NetBeans セッションを閉ぢる。目印はすべて削除されます。

:nb[key] {key}

Vim コントローラに {key} を送信する。specialKeys コマンドによりホットキーがインストールされてゐるとき、このコマンドを使つてホットキー・メッセージを Vim コントローラに送信できます。 このコマンドはどのやうなテキストでも送信できます。これは例へば Pyclewn で gdb コマンドを Vim ユーザーコマンドとして構築するのに使はれてゐます。

newDotAndMark, keyCommand, keyAtPos イベントが發生します (この順番で)。

8. 既知の問題

NUL 文字は扱へません。editor -> IDE の通信では、NUL は NL に置換して送信されます。IDE -> editor では、NUL を含めることはできません。

NetBeans セッションが端末動作の Vim で初期化され、後で |:gui| コマンドによつて GUI 環境に引き繼がれることがあります。この場合、":gui" コマンドが .gvimrc を讀み込み、カラースキームが讀み込まれ、そこで ":highlight clear" コマンドが實行されることで、NetBeans annotation 用に定義された强調表示がクリアされるかもしれません。

バージョン 2.5 で新たに追加された仕樣。

9. NetBeans プロトコルのデバッグ

Vim プロトコルをデバッグするには、まづ Vim をデバッグサポートと NetBeans デバッグサポートつきでコンパイルします。|netbeans-configure| を參照してください。

次の環境變數をセットしてください:

export SPRO_GVIM_DEBUG=netbeans.log
export SPRO_GVIM_DLEVEL=0xffffffff

すると、やりとりされるすべての NetBeans プロトコルメッセージが netbeans.log といふファイルに記錄されるやうになります。

セッションを行つた後の netbeans.log の內容は次のやうになります:

 Tue May 20 17:19:27 2008
 EVT: 0:startupDone=0
 CMD 1: (1) create
 CMD 2: (1) setTitle "testfile1.txt"
 CMD 3: (1) setFullName "testfile1.txt"
 EVT(suppressed): 1:remove=3 0 -1
 EVT: 1:fileOpened=0 "d:\\work\\vimWrapper\\vimWrapper2\\pyvimwrapper\\tests\\testfile1.txt" T F
 CMD 4: (1) initDone
 FUN 5: (0) getCursor
 REP 5: 1 1 0 0
 CMD 6: (2) create
 CMD 7: (2) setTitle "testfile2.txt"
 CMD 8: (2) setFullName "testfile2.txt"
 EVT(suppressed): 2:remove=8 0 -1
 EVT: 2:fileOpened=0 "d:\\work\\vimWrapper\\vimWrapper2\\pyvimwrapper\\tests\\testfile2.txt" T F
 CMD 9: (2) initDone

10. NetBeans 外部テキストエディタ

Note: この情報は古くなつてゐます!NetBeans の古いバージョンを使つてゐる場合だけ讀んでください。

10.1. NetBeans をダウンロードする

NetBeans IDE は netbeans.org からダウンロードできます。リリースされたバージョン、ソースをダウンロードでき、CVS を使つて最新のソースを取得することもできます。ソースをダウンロードした場合、ビルド方法については netbeans.org にある說明に從つてください。

NetBeans のバージョンによつては、External Editor モジュールを使ふためにもう少し手を加へなければならないかもしれません。External Editor モジュールによつて NetBeans は gvim と協調して動作できるやうになります (xemacs とも :-)。このモジュールが NetBeans に含まれてゐない場合、http://externaleditor.netbeans.org を參照してください。

C, C++, Fortran サポートには、cpp モジュールも必要になります。http://cpp.netbeans.org を參照してください。

Sun Microsystems, Inc から Sun ONE Studio の 30 日閒無料試用版をダウンロードすることもできます。http://www.sun.com を參照してください。

10.2. NetBeans のキーバインド

Vim は NetBeans コマンドを實行するキーバインドを理解します。これらは普通、ファンクションキーの組み合はせです。NetBeans コマンドを實行するには、Pause キーに續けて NetBeans のキーバインドをタイプします。たとへば、Java ファイルをコンパイルする NetBeans のキーバインドは "F9" です。なので、Vim で "Pause F9" と押すと Java ファイルをコンパイルできます。カレント行のブレークポイントをトグルするには "Pause Shift F8" を押します。

Pause キーはファンクションキー 21 です。キーボードに Pause キーがなく、代はりに F8 を使ひたいといふ場合、次のやうにします:

:map <F8> <F21>

External Editor モジュールは動的に NetBeans キーバインドを讀み込むので、NetBeans がキーバインドを變更してゐても、Vim は常に最新のキーバインドに對應します。

10.3. NetBeans 側の準備

NetBeans を Vim と協調動作させるには、NetBeans External Editor モジュールが讀み込まれ、有效化されてゐなければなりません。Sun ONE Studio Enterprise Edition を使つてゐるなら、デフォルトでこのモジュールが讀み込まれ有效化されます。NetBeans を使つてゐる場合は、このオープンソースのモジュールを入手しなければなりません。

このモジュールが入つてゐるかを確認するには Tools -> Options ダイアログを開き、IDE Configuration -> System -> Modules の "Modules" リストを見ます。そこに "External Editor" があれば、それが有效になつてゐるか確認します ("Enabled" プロパティが "True" かどうか)。"External Editor" がなければ、次の節 |obtaining-exted| を參照してください。

10.4. External Editor モジュールの入手

External Editor モジュールを入手する方法は二通りあります。最も簡單な方法は、NetBeans Update Center を使つてダウンロード・インストールすることです。しかし殘念なことに、いくつかのバージョンでは Update Center にこのモジュールが存在しません。Update Center にない場合は、モジュールのソースをダウンロードしてビルドする必要があります。私が NetBeans Update Center からダウンロードできるやうにしますので、ビルドは不要になるでせう。他の方法として http://externaleditor.netbeans.org もチェックしてください。

CVS で External Editor のソースを取得して自分でビルドする方法は http://externaleditor.netbeans.orghttp://www.netbeans.org を參照してください。殘念ながら、これは簡單な道のりではありません。

10.5. NetBeans の設定

|netbeans-preparation| で NetBeans External Editor モジュールを讀み込み、有效化できたら、あとは gvim のコマンドラインを設定するだけです。

Tools -> Options を開き、Editing カテゴリを表示します。External Editor を選擇します。右側のペインに Properties タブと Expert タブがあるはずです。Properties タブで "Editor Type" を "Vim" にします。Expert タブで "Vim Command" を正しく設定してください。

"Vim Command" を變更するときは注意してください。接續するためには、いくつかのコマンドラインオプションを正しく設定する必要があります。コマンドの名前を變更することができますが、それくらゐです。gvim が $PATH の中にあるなら、コマンドを "gvim" から始められます。gvim を $PATH から檢索させたくないならフルパスで指定してください。以上で、NetBeans で開くファイルが gvim で開かれるやうになります。

gvim で開かれるファイルもあるが、NetBeans のエディタで開かれるファイルもある (擴張子が異なる) といふ場合、Expert タブの MIME Type プロパティを確認してください。NetBeans は MIME によつて判斷し、External Editor はこのプロパティで指定された MIME Type だけを開きます。


Up: 目次   [Index]