*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| 機能つきでコンパイルされたときのみ利用可能}
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 は、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 を完全サポートしてゐます。
Vim の NetBeans ソケットインターフェイスを使ふと、Vim から情報を引き出したり、Vim に指定の動作をさせることができます:
Vim にキーストロークを送つたり、Vim の中で函數を評價するには |clientserver| インターフェイスを使ふ必要があります。
Vim のインストールについてより詳しくは、ユーザーマニュアルの |usr_90.txt| を讀んでください。
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
を變更する必要があります。
Win32 サポートは現在ベータ版の段階です。
Win32 で XPM signs を使ふ(NetBeans と使ふ場合など)ためには、XPM を自分自身でコンパイルするか、コンパイル濟みライブラリを使ふ必要があります。
Vim と NetBeans プロトコルのデバッグを有效化するには、"NBDEBUG" マクロを定義する必要があります。お使ひのプラットフォーム用の Makefile の中から "NBDEBUG" を檢索し、どの行のコメントを解除すればよいかを調べてください。さうすればコンパイルコマンドに "-DNBDEBUG" が追加されます。|netbeans-debugging| も參照してください。
以下のエラーメッセージは NetBeans ソケットプロトコルのものです:
Vim コントローラがテキスト中に保護領域を設定してをり、そこを變更することはできません。必要に應じてカレントバッファもセットします。
defineAnnoType コマンドの "fg" と "bg" の色指定引數の最大長は 32 文字です。
バージョン 2.5 で新たに追加された仕樣。
Vim コントローラによつて開かれてゐる變更されてゐないバッファを書き出すことはできません。
Vim コントローラによつて開かれてゐるバッファの部分的な書き出しはできません。
Vim コントローラがこのファイルの狀態について混亂してしまひました。データを破損する危險を冒すよりも、このファイルに對する接續を切斷することを選びました。このファイルに對する變更を保存する責任は Vim が引き繼ぎ、Vim コントローラはもうそれらについて關知しません。
通常の Vim では、讀み込み專用ファイルを變更することはでき、ファイルを書き出すときだけ讀み込み專用のルールが適用されます。しかし、NetBeans はユーザーが讀み込み專用ファイルに變更を施すことを許可しません。そのため、Vim が讀み込み專用ファイルを變更すると混亂してしまひます。そのため、NetBeans モードで動作してゐるときは、Vim でもファイルへの變更を許可しないやうにしてゐます。
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 イベントによりパスワードが送信されます。
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| |
メッセージには 4 つの種類があります:
種類 | 方向 | コメント |
---|---|---|
コマンド | IDE -> editor | 應答は必要ない |
函數 | IDE -> editor | エディタは應答を送信しなければならない |
應答 | editor -> IDE | 函數への應答としてのみ送られる |
イベント | editor -> IDE | 應答は必要ない |
メッセージは、改行文字で終はる一行として送られます。引數は 1 つのスペースで區切られます。メッセージの最初の要素はメッセージの種類に依存します:
種類 | 最初の要素 | 例 |
---|---|---|
コマンド | bufID:name!seqno | 11:showBalloon!123 "text" |
函數 | bufID:name/seqno | 11:getLength/123 |
應答 | seqno | 123 5000 |
イベント | bufID:name=seqno | 11:keyCommand=123 "S-F2" |
バッファ ID。メッセージは特定のバッファ向けの場合も、全體用の場合もあります。全體用のメッセージは bufID 0 を使ひます。
Note:
このバッファ ID は IDE によつて割り當てられるもので、Vim のバッファ番號とは異なります。
bufID は連續して增加する番號で、1 から始まります。’switchbuf’ オプションが "usetab" に設定されてゐる狀態で "bufID" のバッファが現在のタブページで見つからない場合に、netbeans コマンドおよび函數はカレントウィンドウでバッファを入れ替へる代はりに他のタブページに含まれるこのバッファのうち最初のものへジャンプし、それをカレントバッファとして設定します。
IDE が Vim にコマンド・函數を發行するときつけられる連續する番號です。應答は、その元メッセージと同じシーケンス番號を使はねばなりません。シーケンス番號 0 はイベント用に使はれます (最後に受け取つたコマンドまたは函數のシーケンス番號が使はれることもあります)。
ダブルクォートで圍まれた文字列。UTF-8 でエンコードされます。よつて ASCII 文字はそのままとなります。特殊文字はバックスラッシュをつけて表現されます:
\" | ダブルクォート |
\n | 改行 |
\r | 復歸 |
\t | タブ (任意。そのままでも使へます) |
\\ | バックスラッシュ |
NUL 文字は使用できません。
次の 2 つの値のどちらかとなります。
T | true |
F | false |
10 進數の數値。
10 進數の數値か "none" (クォートなし) か色の名前 (クォートなし) のいづれか。色の名前は |highlight-ctermfg| と |gui-colors| で定義されてゐる名前。
バージョン 2.5 で新たに追加された仕樣。
バッファ中のバイト位置を示す數値。第 1 バイト目のオフセットは 0 となります。改行は、ファイル中での表現と同じくカウントされます (CR/LF は 2 バイト)。
Note:
マルチバイト文字は、そのバイト數カウントされます。
行番號と桁番號。行番號は 1 から始まり、桁番號は 0 から始まるバイト位置となります。
Note:
マルチバイト文字は 2 桁以上を占めることに注意してください。
文字列: フルパスでのファイル名
未實裝。
未實裝。
このバッファに annotation をつけます。
引數:
serNum | number | この annotation の通し番號。削除するときに使はれます。 |
typeNum | number | このバッファに對して defineAnnoType で定義された annotation タイプの番號。 |
off | number | annotation をつける位置のオフセット |
len | number | 未使用 |
version 2.1 では "off" の代はりに "lnum/col" が使へます。
未實裝。
バッファを閉ぢます。これを使ふとカレントバッファがない狀態になります。非常に危險です!
名前をつけてバッファを作成します。作成されたバッファがカレントバッファになります (元のバッファは、變更されてゐれば hidden 狀態になります)。
Vim コントローラは、開いてゐるファイルに對する最初のコマンドとしてこのコマンドを使ふべきです。一聯のコマンドの例は次のやうになります:
create | |
setCaretListener | (無視される) |
setModified | (效果なし) |
setContentType | (無視される) |
startDocumentListen | |
setTitle | |
setFullName |
このバッファに對する annotation のタイプを定義します。
引數:
typeNum | number | シーケンス番號 (實際には使はれない) |
typeName | string | この annotation を識別するための名前 |
tooltip | string | 未使用 |
glyphFile | string | アイコンのファイル名 |
fg | color | 行の文字色 |
bg | color | 行の背景色 |
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 で使はれます。
バッファの名前をセットし、ファイル "pathname" を開きます。IDE が開くファイルをエディタに傳へる通常の方法です。
バッファに bufID を割り當てるため、このコマンドに對する bufID は 0 以外の値にしなければなりません。bufID 0 でイベント fileOpened が發生しますが、バッファは割り當てられてゐます。
IDE からエディタにファイルのテキストを渡したい場合には、代はりに次のコマンドを使つてください:
setFullName insert initDone
version 2.1 から。
未實裝。
アトミックな操作を終了します。"startAtomic" と "endAtomic" の閒に行はれた變更は 1 つの操作として undo されます。しかし現在は未實裝です。必要に應じて再描畫をしてください。
バッファ內の領域を保護します。保護された領域を變更することはできません。"off" と "len" は number で、保護されるテキストを指定します。
バッファの準備ができたとマークします。暗默的にそのバッファをカレントバッファにします。自動コマンドイベント BufReadPost を發生させます。
Vim コントローラから Vim へ、最初のファイルの插入が行はれたことを通知します。これにより、ファイル讀み込みのメッセージが表示されます。version 2.3 より前は、ファイルを開いた後にメッセージが表示されませんでした。
version 2.3 から。
未實裝。
"isNetbeansBuffer" が "T" ならば、このバッファは NetBeans により「所有」されます。
version 2.2 から。
pathname は string。"pathname" といふ名前のバッファにバッファ番號を割り當てます。エディタで新たにファイルが開かれると、そのことを IDE に通知します。そして IDE はそのファイルに對してバッファ番號を割り當てます。そのときこのコマンドが使はれます。そのバッファは初期化濟みとマークされます。
version 2.1 から。
エディタを前面に移動します。GUI Vim でのみ有效。
version 2.1 から。
以前にこのバッファに對してつけられた annotation を削除します。"serNum" は addAnno で使はれたのと同じ番號です。
バッファが變更されたとき保存します。インターフェイスのもう一方側はバッファを書き出し、"setModified" を呼び出してバッファの "changed" フラグをオフにすることを期待されてゐます。 これらの條件が眞になる場合、書き込みはスキップされます:
version 2.2 から。
Vim コントローラから Vim へ、保存が行はれたことを通知します。これによつて保存メッセージが表示されます。version 2.3 より前では、保存メッセージは表示されませんでした。
version 2.3 から。
未實裝。
"pathname" といふ名前のバッファにバッファ番號を割り當てます。エディタで新たにファイルが開かれると、そのことを IDE に通知します。そして IDE はそのファイルに對してバッファ番號を割り當てます。そのときこのコマンドが使はれます。
このバッファがカレントバッファになるといふ副作用があります。"putBufferNumber" の方がより便利なコマンドです。
未實裝。
このバッファをカレントバッファにし、カーソルを指定した位置に移動します。バッファが他のウィンドウで開かれてゐる場合は、そのウィンドウがカレントウィンドウになります。
折り疊みがある場合、カーソル行が見えるやうに開かれます。version 2.1 では "off" の代はりに "lnum/col" が使へます。
"seconds" は number。終了の遲延をセットします。この遲延によつて、IDE に對して本當に終了するまへに何かをするチャンスを與へます。既定値は 2 秒です。
version 2.1 から。
version 2.3 から非推奬になりました。
バッファ "pathname" に對するファイル名をセットします。引數は string です。
IDE の制禦下にあるファイルを IDE が編輯したいときに使はれます。このバッファがカレントバッファになりますが、ファイルは讀み込まれません。その內容をセットするため、次に "insert" コマンドが發行されます。
未實裝。
未實裝。
boolean の引數 "modified" が "T" のとき、バッファを modified 狀態にします。"F" のときは unmodified にします。
Vim コントローラによりファイルが直接保存されたあとに發行されます。バッファの變更時刻を更新します。
version 2.3 から。
ファイルを讀み込み專用にします。
version 2.3 で實裝されました。
未實裝。
"name" といふ名前のバッファのタイトルをセットします。引數 "name" は string。このタイトルは Vim コントローラ函數でのみ使はれ、Vim では使はれません。
boolean の引數 "visible" が "T" の場合は、そのバッファへ移動します。"F" の場合は何もしません。
マウスポインタの位置に、"text" といふ內容のバルーンウィンドウ (ポップアップウィンドウ) を表示します。引數 "text" は string です。マウスが 2, 3 ピクセル以上移動すると、バルーンウィンドウは消えます。
GUI Vim でのみ有效。
version 2.1 から。
Vim コントローラに戾して處理させるキー (大抵はファンクションキー) を設定します。これによつて Vim の中で IDE のホットキーを使ふことができるやうになります。
version 2.3 で實裝されました。
アトミックな操作を開始します。"endAtomic" が發行されるまで畫面の更新は行はれません。
未實裝。
そのバッファにおける變更を "insert" と "remove" イベントによつてIDE に通知するやうセットします。既定では通知するやうになつてゐます。
未實裝。
そのバッファにおける變更を IDE に通知しないやうにします。 startDocumentListen の逆です。
Note: * "netbeansBuffer" によつてこのバッファが NetBeans バッファであるとマークされてゐる場合、このバッファは Vim の中で削除されます。Sun Studio 10 との互換性のためです。
"guard" の逆で、テキスト領域に對する保護を解除します。必要に應じてカレントバッファもセットします。
未實裝。
未實裝。
カレントバッファの bufID とカーソル位置を返します。
應答は次の形式:
seqno bufID lnum col off
seqno | 函數のシーケンス番號 |
bufID | カレントバッファの bufID (未知なら -1) |
lnum | カーソル位置の行番號 (1 から始まる) |
col | カーソル位置の桁番號 (バイト單位。0 から始まる) |
off | カーソル位置のバッファ內のオフセット (バイト單位) |
version 2.1 から。
バッファの長さをバイト單位で返します。
5000 バイトのバッファにおける應答の例:
123 5000
TODO:
部分行の使ひ方を說明する。
未實裝。
指定された annotation の行番號を返す。
引數:
serNum | annotation の通し番號 |
應答は次の形式:
123 lnum | annotation の行番號 |
123 0 | 無效な annotation 番號 |
version 2.4 から。
バッファが指定された場合: バッファが變更されてゐないなら 0、變更されてゐるなら 1 を返します。
バッファが指定されない場合(bufID が 0 の場合): 變更されてゐるバッファの數を返します。戾り値が 0 なら、Vim に終了するやう指示しても安全です。
version 2.1 から。
バッファの中身を文字列として返します。2 行だけのバッファにおける應答の例:
123 "first line\nsecond line\n"
Note:
ドキュメントには引數 offset と length が記述されてゐますが、實裝されてゐません。
位置 "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 情報をリセットします。
位置 "off" のテキストを "length" バイト削除します。どちらの引數も number です。 應答は次のやうになります:
123 | 問題なし |
123 !message | 失敗 |
Note:
應答のメッセージはクォートされてゐません。必要に應じてこのバッファをカレントバッファにします。
":confirm qall
" と同じことをします (Vim を閉ぢる)。變更されたファイルがない、またはユーザーが操作をキャンセルしなかつた場合、Vim は終了し、戾り値は送信されません。IDE は接續が切斷したことをもつて成功と判斷できます。ユーザーが操作をキャンセルした場合、變更されてゐるバッファの番號が返され、Vim は終了しません。
version 2.1 から。
マウスポインタが一定時閒テキストの上に置かれました。"len" が 0 の場合、マウスポインタが "off" の位置にあり、選擇がされてゐないことを意味します。
"len" が 0 でない場合、"off" から "off" + "len" までのテキストが選擇されてゐることを意味します。
バッファに對して "enableBalloonEval" が使はれた後でのみ送信されます。"type" はまだ定義されてゐません。
未實裝。
’ballooneval’ がセットされてをり、マウスポインタが一定時閒テキストの上に置かれたとき發生します。"text" は string で、マウスポインタの下のテキストを表します。
GUI Vim でのみ有效。
version 2.1 から。
ボタンが離されたとき、どのボタンが押されたかと、カーソルの位置を報告します。Vim コントローラによつて所有されてゐるバッファにおいてのみ發生します。マウスがステータスラインまたはセパレータラインの中にあるときは、ボタンが離されても、このイベントは送信されません。col が 1 未滿の場合、目印エリアの中でボタンが離されたことを意味します。
version 2.2 から。
Vim が終了するので、これ以上コマンドを讀み書きしないやう Vim コントローラに傳へます。
version 2.3 から。
未實裝。
未實裝。
ユーザーがファイルを開きました。
引數:
pathname | string | ファイル名 |
open | boolean | 常に "T" |
modified | boolean | 常に "F" |
エディタウィンドウのサイズと位置を報告します。
引數:
cols | number | テキストの桁數 |
rows | number | テキストの行數 |
x | number | 畫面上のピクセル位置 |
y | number | 畫面上のピクセル位置 |
Motif でのみ動作します。
Vim において、"off" の位置にテキスト "text" が插入されました。有效化されてゐるときのみ發生します。"startDocumentListen" を參照してください。
未實裝。
"keyName" といふ名前の特殊キーが押されたことを報告します。"keyName" は string です。 サポートされてゐるキー名:
F1 | ファンクションキー 1 |
F2 | ファンクションキー 2 |
... | |
F12 | ファンクションキー 12 |
’ ’ | スペース (シングルクォートはつかない) |
! | エクスクラメーションマーク |
... | それ以外の ASCII 印字可能文字 |
~ | チルダ |
X | 認識されないキー |
前に "C", "S", "M" がつくことがあります。それぞれ Control
, Shift
, Meta
(Alt
) キーを意味します。これらの修飾キーとキー名の閒にはダッシュがつきます。例: "C-F2".
ASCII 文字は version 2.1 から。
"keyName" と同樣ですが、行番號と桁番號も報告します。
version 2.1 から。
ユーザーによつてファイルが削除またはワイプアウトされ、annotation が削除されました。このバッファに對する bufID は無效になりました。IDE によつて bufID が割り當てられたファイルに對してのみ發生します。
カーソルがバッファの "off" バイトの位置にあることを報告します。"keyCommand" イベントの直前でのみ送信されます。
未實裝。
Vim において、"off" の位置から "len" バイトのテキストが削除されました。有效にされてゐるときのみ發生します。"startDocumentListen" を參照してください。
未實裝。
バッファが保存され、「未變更」狀態です。有效にされてゐるときのみ發生します。"startDocumentListen" を參照してください。
エディタがスタートアップ處理を完了し、ファイルを編輯する準備が整ひました。
version 2.1 から。
バッファが「未變更」狀態になりました。有效にされてゐるときのみ發生します。"startDocumentListen" を參照してください。
インターフェイスの實裝のバージョンを報告します。Vim は "2.4" と報告します (ダブルクォートを含む)。
これらのメッセージは、前述のメッセージの形式に從ひません。改行文字で終はります。
未使用。
editor -> IDE: エディタが IDE に送る最初のメッセージ。|-nb| で指定された、ソケットサーバーのパスワードを含んでゐなければなりません。引用符は使はれません。
IDE -> editor: 接續を切斷します。その後エディタは終了します。IDE は、保存されてゐない變更がないときしかこのメッセージを送つてはなりません!
IDE -> editor: エディタを終了させずに接續を切斷します。エディタは終了させずに IDE を終了させるとき使はれます。
version 2.1 で導入されました。
未使用。
メッセージがプロトコルに違反したとき、以下のエラーが發生します:
*E627* *E628* *E629* *E632* *E633* *E634* *E635* *E636* *E637* *E638* *E639* *E640* *E641* *E642* *E643* *E644* *E645* *E646* *E647* *E648* *E649* *E650* *E651* *E652*
新しい Netbeans セッションを開始する。{connection} はソケット接續パラメーター。{connection} の書式は |netbeans-parameters| で說明されてゐます。
netbeans ソケットが接續されてゐるかどうかは次のコマンドで確認できます: ’:echo has("netbeans_enabled")
’
現在の NetBeans セッションを閉ぢる。目印はすべて削除されます。
Vim コントローラに {key} を送信する。specialKeys コマンドによりホットキーがインストールされてゐるとき、このコマンドを使つてホットキー・メッセージを Vim コントローラに送信できます。 このコマンドはどのやうなテキストでも送信できます。これは例へば Pyclewn で gdb コマンドを Vim ユーザーコマンドとして構築するのに使はれてゐます。
newDotAndMark, keyCommand, keyAtPos イベントが發生します (この順番で)。
NUL 文字は扱へません。editor -> IDE の通信では、NUL は NL に置換して送信されます。IDE -> editor では、NUL を含めることはできません。
NetBeans セッションが端末動作の Vim で初期化され、後で |:gui| コマンドによつて GUI 環境に引き繼がれることがあります。この場合、":gui
" コマンドが .gvimrc を讀み込み、カラースキームが讀み込まれ、そこで ":highlight clear
" コマンドが實行されることで、NetBeans annotation 用に定義された强調表示がクリアされるかもしれません。
バージョン 2.5 で新たに追加された仕樣。
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
Note: この情報は古くなつてゐます!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 を參照してください。
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 は常に最新のキーバインドに對應します。
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| を參照してください。
External Editor モジュールを入手する方法は二通りあります。最も簡單な方法は、NetBeans Update Center を使つてダウンロード・インストールすることです。しかし殘念なことに、いくつかのバージョンでは Update Center にこのモジュールが存在しません。Update Center にない場合は、モジュールのソースをダウンロードしてビルドする必要があります。私が NetBeans Update Center からダウンロードできるやうにしますので、ビルドは不要になるでせう。他の方法として http://externaleditor.netbeans.org もチェックしてください。
CVS で External Editor のソースを取得して自分でビルドする方法は http://externaleditor.netbeans.org と http://www.netbeans.org を參照してください。殘念ながら、これは簡單な道のりではありません。
|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 だけを開きます。