機能 #51
完了More Emacs for NetBeansを試す
100%
説明
Java読書会BOFの友人作成のNetBeans用Emacsバインドのプラグイン More Emacsを試す。
ファイル
option_profile-1.png (69.4 KB) option_profile-1.png | キーマップのプロファイル一覧 | 高橋 徹, 2015/12/12 20:40 | |
C-spaceC-w_oneline.gif (42.9 KB) C-spaceC-w_oneline.gif | 高橋 徹, 2015/12/12 20:56 | ||
C-spaceC-w_multiline.gif (34.7 KB) C-spaceC-w_multiline.gif | 高橋 徹, 2015/12/12 20:56 | ||
plugin_installed_list-1.png (88.8 KB) plugin_installed_list-1.png | 高橋 徹, 2015/12/13 11:14 |
高橋 徹 さんが8年以上前に更新
- ファイル option_profile-1.png option_profile-1.png を追加
- ステータス を 新規 から 進行中 に変更
- 進捗率 を 0 から 50 に変更
More Emacs for NetBeans は、次の2つのモジュールファイルから構成されています。
io-github-yas99en-moreemacsnb-core.nbm
io-github-yas99en-moreemacsnb-icu.nbm
ダウンロードにちょっと時間がかかったので中を覗くと、ICU4Jライブラリが含まれており、これが8MBとサイズが大きいのですね。
続いて、NetBeans IDE 8.1 for Windows に組み込んでみます。検証環境-1は次です。
PC: 自作PC-M4A87TDEVO
OS: Windows 7 64bit版
Java: Oracle JDK 8u66 64bit版
NetBeans IDE 8.1 Java SE版
Dark Look And Feel Themesプラグインを入れて、ルックアンドフィールをDark Nimbusに設定
→ 標準設定のプラグインサイトにあるので[使用可能なプラグイン]にリストされています
→ インストール後、[ツール]メニュー > [オプション] > [外観] > [ルック・アンド・フィール] で優先ルック・アンド・フィール欄で指定
まずはインストールから
- [ツール]メニュー > [プラグイン]で「プラグイン」画面を表示
- [ダウンロード済]タブ > [プラグインの追加]ボタンをクリックし「プラグインの追加」画面を表示
- [ファイルの場所]ドロップダウンリストから、上述の2つのモジュールファイルを選択し[開く]ボタンをクリック... 指示に従いプラグインをインストールします。
続いて、キーバインドの設定
- [ツール]メニュー > [オプション]で「オプション」画面を開き、[キーマップ]ボタンをクリック
- [プロファイル]ドロップダウンリストから[MoreEmacs]を選択し、[OK]をクリック
インストールと設定が完了したので、実際に編集画面をMoreEmacsキーバインドで操作してみます。
98行のJavaソースファイルを開いていろいろ操作してみます。
source:github_analogclock|AnalogClockSvg/src/analogclocksvg/AnalogClockSvg.java@c3c40510
C-nとC-pの操作
- C-n 先頭行の行頭から、最終行まで4秒、標準のEmacsキーバインドとほぼ変わらない性能
- C-p 最終行の行頭から、先頭行まで4秒、標準のEmacsキーバインドとほぼ変わらない性能
- マウスクリックでテキストの任意位置にカーソル(キャレット)を置き、そこからC-nしてみたところ、次の行にカーソルは移動し、ただし桁数がずれました。ずれる位置は試行ごとに変わり一定せず。
→ 標準のEmacsキーバインドも同じ振る舞いでした。直前のカーソル桁数を覚えており、マウスクリックでカーソル位置が変わってもその時点ではカーソル桁数が更新されていないのでC-nやC-pで行を前後に移るとクリック前のカーソル桁の位置になってしまうような挙動に見えます。
- カーソルをC-eで行末に移動してC-nやC-pすると、同じ桁数ではなく、移動先の行の行末に移動します。
→ 標準のEmacsキーバインドも同じ振る舞いでした。
- マウスで範囲選択してからのC-w で別プログラムにペーストする操作OK
- C-e 操作OK
- C-a 操作OK
- C-f 操作OK
- C-b 操作OK
- Alt+f 操作 [ファイル]メニューが開かれてしまう
→ 標準のEmacsキーバインドでは次の単語の先頭に移動します(キャメルケースの複合語の場合は、各大文字の直前に移動) - Alt+b 操作 何も起きない
→ 標準のEmacsキーバインドでは前の単語の先頭に移動します(キャメルケースの複合語の場合は、各大文字の直前に移動)
- Esc + Shift + < 操作OK
さて、注目のC-spaceを確認
まずは単一行の部分に適用してみます(画面キャプチャを次のコメント[#51-2]に添付)
private static final double MAX_SCALE = 6d; ^ (1) ^ (2)
- (1)の位置にカーソルを移動し、C-space押下、
- (2)の位置までカーソルをC-fで移動し、C-w 押下
→ 範囲選択が見えません(表示上はカーソル移動のみ)
→ 行全体が消えて(バッファに移動され)、下の行に詰められます
- 上述の(2)でAlt-w 押下し、別な場所でC-y すると、行全体がペーストされます
複数行に適用してみます(画面キャプチャを次のコメント[#51-2]に添付)
V (1) private static final double MAX_SCALE = 6d; private static final double MIN_SCALE = 0.32; ^ (2)
- (1)の位置(MAX_SCALE行の行頭)にカーソルを移動し、C-space押下
- (2)の位置(MIN_SCALE行の次の空行の行頭)にカーソルを移動し、C-w押下
→ 範囲選択が見えなません(表示上はカーソル移動のみ)
→ (2)の空行が消えて(バッファに移動され)、下の行が詰まります
その他
- C-x C-f で「開く」ダイアログが表示 OK
- C-s で検索 OK
高橋 徹 さんが8年以上前に更新
- ファイル C-spaceC-w_oneline.gif C-spaceC-w_oneline.gif を追加
- ファイル C-spaceC-w_multiline.gif C-spaceC-w_multiline.gif を追加
C-space C-w を単一行の部分に実施した際の画面キャプチャ
C-space C-w を複数行の部分に実施した際の画面キャプチャ
高橋 徹 さんが8年以上前に更新
Dark Look And Feel Themesが干渉している可能性を疑い、一度Dark Look And Feel Themesを非アクティブ化し、[ツール]メニュー > [オプション] > [外観] > [ルック・アンド・フィール]で優先ルック・アンド・フィールを[Windows]に変更。再起動を促されるので再起動を実施しました。
すると、再起動時のNetBeansキャプション画面で、モジュールのインストールが走りました。
「???」
非アクティブ化でモジュールがインストールされるとは思えず、すると、先ほどインストールしたMoreEmacsプラグインが実は再起動が必要だったのかもしれないと思いつつ、とりあえずWindowsルックアンドフィールでMoreEmacsのset mark機能を試すと、なんと機能するではないですか!
Alt+Fも動作します。しかも、キャメルケースの大文字ごとに止まらないです。
優先ルックアンドフィールをNimbusに変更しましたが、こちらも動作します。
ここで、再度Dark Look And Feel Themesをアクティブ化し、優先ルックアンドフィールをDark Nimbusにしたところ、Altばっちり動作するようになりました。set markによるカットおよびコピーも動作します(選択範囲は目には見えないですが)。
確認環境を素のNetBeansにするために、userdirを指定してNetBeansを実行します。
C:\> "C:\Program Files\NetBeans 8.1\bin\netbeans64.exe" --userdir R:\Temp\NetBeans\anotheruser
起動後、MoreEmacsプラグインをインストールします(手順は先と同じ)。
インストール直後にキーマップのリストを変更しようとしましたが、MoreEmacsがありません。
おや?
インストール済みプラグインのリストをみてもMoreEmacsが見当たりません。
うーん。
もう一回、キーマップのリストを開くと、MoreEmacsがいました。
この状態でMoreEmacsを選択すると、先ほど記述してきた状況(Alt+Fが効かない、set markのカットおよびコピーが単一行全体になっている)が発生します。
一度再起動してみると、Alt+F, set markが機能するようになっています。
ということで、MoreEmacsは再起動を必要とするようです。
プラグインインストール時に、再起動を促すとよいかと思います。
高橋 徹 さんが8年以上前に更新
NetBeans プラグイン一覧の表記名¶
Bundle.propertiesファイルのOpenIDE-Module-Nameに記載した名前がそのままNetBeansの[ツール]メニュー > [プラグイン]で一覧表示される名前になるようです。
現在はパッケージ名となっているので、次のように表示されると分かりやすいかと思います。
現在の表示名 | 修正案 |
---|---|
io.github.yas99en.moreemacsnb.core | MoreEmacs |
io.github.yas99en.moreemacsnb.icu | ICU4J |
修正案
- https://github.com/yas99en/moreemacsnb/blob/master/core/src/io/github/yas99en/moreemacsnb/core/Bundle.properties
- OpenIDE-Module-Name=io.github.yas99en.moreemacsnb.core + OpenIDE-Module-Name=MoreEmacs
- https://github.com/yas99en/moreemacsnb/blob/master/icu/src/io/github/yas99en/moreemacsnb/icu/Bundle.properties
- OpenIDE-Module-Name=io.github.yas99en.moreemacsnb.icu + OpenIDE-Module-Name=ICU4J
修正を自分で試してプルリクを送るのがマナーかと思いますが、そこまでに至れていないのですみません。
高橋 徹 さんが8年以上前に更新
プラグインをインストールしたときにNetBeansの再起動を促す方法の調査¶
いくつかのプラグインをインストールしたときに、インストール後NetBeansの再起動を促すダイアログ表示がでるものがあります。
例)CodenameOnePlugin(以下URLの最後に画面キャプチャあり)
http://www.codenameone.com/netbeans-plugin-installation.html
これってどうやるのか疑問なのですが、探しても見つからず、ツィッターでつぶやいたら方法を教えてもらえました。
https://twitter.com/junichi_11/status/675906832687304704
でも、すてにMoreEmacsはこの設定がチェックされていましたので、何か問題があるようです。
既に対処済みだったのですね。バイナリとソースがタイミングで一致していなかっただけでした。
高橋 徹 さんが8年以上前に更新
- ステータス を 進行中 から 解決 に変更
- 進捗率 を 50 から 80 に変更
以降、試用して問題があればGithubのissueに書くこととし、本チケットはクローズ
https://github.com/yas99en/moreemacsnb