【秀丸エディタ】単語補完のショートカッNo.38832
ohtorii さん 21/03/12 13:58
 
お疲れ様です。

単語補完のリストですが、Shift-Enterで先頭を確定するショートカットキーが欲し
いです。

このショートカットキーはATOKのものですが、私は便利に使っているので秀丸エディ
タでも利用したいです。
ご検討頂けますと幸いです。

*念のため私の要望を画像にしてアップしました。
https://github.com/ohtorii/test/blob/master/20210312/readme.png


【環境】
秀丸エディタ v8.97 64bit
Windfows10 定期バックアップWindows10 Win

よろしくお願いいたします。

[ ]
RE:38832 【秀丸エディタ】単語補完のショNo.38833
秀丸担当 さん 21/03/12 15:34
 

単語補完がリストが出ているとき、先頭の項目を選択するには、標準ではAlt+Enter
で選べるようになっています。
または、単語補完の自動表示がツールチップやステータスバー、またはリストとして
出ているときもそうですが、Alt+1、Alt+2、Alt+3…といった操作で、1番目の項目、
2番目の項目、3番目の項目…が選べます。
何番目の項目というのは、「単語補完候補1」「単語補完候補2」「単語補完候補3」
…などのキー割り当てに相当します。

キー割り当てで、例えばShift+Enterを「単語補完候補1」に割り当てておくと、先頭
項目で選ぶことができ、これでどうでしょうか。

[ ]
RE:38833 【秀丸エディタ】単語補完のショNo.38846
ohtorii さん 21/03/19 15:10
 
お疲れ様です。

以下ショートカットキーは、既にマクロを割り当てておりまして・・・
 ・ALT+Enter
 ・Shift+Enter
ご提案頂いた、「単語補完候補1」を割り当てると、操作が変わり難しいです(´・ω・`)


私の理想としては、
「動作環境→編集→単語補完→特殊なキー操作」に、以下設定項目があるとうれしい
です、


*先頭項目の選択*
□キー割り当ての有効/無効      (←チェックボックス)
ショートカットキー 「Shift+Enter」 (←テキストボックス)  (※)


(※)「動作環境→常駐機能→秀丸エディタの常駐→ショートカットキー」と同じテ
キストボックスです。



ただ、やりたいことに対して、
・設定ダイアログが複雑になる
・秀丸エディタの内部実装がややこしくなる
など、ありましたら見送りでかまいません。

よろしくお願いいたします。

[ ]
RE:38846 【秀丸エディタ】単語補完のショNo.38847
秀丸担当 さん 21/03/19 17:31
 

Sfhit+Enterにはマクロを割り当てられているということで、それと両立するのは難
しいです。

その前に、Shift+Enterを「単語補完候補1」にするといいと書きましたが、単に「単
語補完」コマンドでもよかったです。
「単語補完」コマンドに割り当てられていると、リストが出ているときにもう一度単
語補完コマンドの実行で、先頭項目の選択になるようにしてありました。
標準ではAlt+Enterでリストを出して、もう一度Alt+Enterで選択します。
Shift+Enterに割り当てていれば、もう一度Shift+Enterで選択します。

マクロの場合は、一応autocompstate & 0x0001で単語補完が出ているかどうかの判定
があるのですが、キー割り当てで手動でマクロ実行する場合はその時点で単語補完は
消えているので、効果がありませんでした。自動起動マクロでは効果があります。
あと本題とは関係ありませんが、半角から始まる入力の直後のときを判定するautoco
mpstate & 0x0002もありました。ヘルプに書かれていなくて、追記しておきます。

手動でマクロ実行する場合、マクロ上では判定できないので、何らかの方法を設ける
必要があります。
「先頭項目の選択」というキーの指定でもいいと思いますが、だいぶん限定的な用途
なので、マクロで記述できるのがいいと思います。
例えば、autocompstate & 0x0004でコマンド実行によって単語補完が消えた直後とい
うことがわかれば手段ができます。
こういった方法でよければフラグを追加しようと思います。

[ ]
RE:38847 【秀丸エディタ】単語補完のショNo.38848
ohtorii さん 21/03/20 11:04
 
お疲れ様です。

色々と調べていただきありがとうございます!
マクロで実現できるなら、それでもかまいません。

齟齬があるといけないので、マクロに対する私の想定を以下に書きました。


(単語補完が発動しない通常の場合)
・Shit+Enterを押すと、自作マクロ(※)が起動し処理が走る。


(単語補完が発動する場合)
・単語を入力する
・単語補完のリストボックが自動表示される
・Shit+Enterを押すと、自作マクロ(※)が起動し、単語補完の先頭項目が挿入され
る。
・単語補完のリストボックが閉じる


※自作マクロの例(Shift+Enterに割り当てます)
if(autocompstate & 0x0004){
    //単語補完が消えた直後
    単語補完の先頭項目を挿入する
}else{
    //上に行を追加
    insertline;
}

よろしくお願いいたします。

[ ]
RE:38848 【秀丸エディタ】単語補完のショNo.38849
秀丸担当 さん 21/03/22 09:00
 

>※自作マクロの例(Shift+Enterに割り当てます)
>if(autocompstate & 0x0004){
>    //単語補完が消えた直後
>    単語補完の先頭項目を挿入する
>}else{
>    //上に行を追加
>    insertline;
>}

はい。こういう感じになると思います。
単語補完の先頭項目の挿入は、autocomplete 1;の一文でできて、単語補完のリスト
が無い状態からでも実行できます。
実際は一度消えたリストを再度作成してから選ぶので少し遅いかもしれません。実用
上問題無ければいいですが、もし再利用するとしたらまた何らかの方法を考えないと
いけないです。
一応、手段があるか無いかで言えばautocompstate & 0x0004で判断できるようになる
と思います。

[ ]
RE:38849 【秀丸エディタ】単語補完のショNo.38852
ohtorii さん 21/03/22 21:44
 
お疲れ様です。

マクロの内容を確認していただきありがとうございます。
autocompstate & 0x0004のフラグ追加をお願いいたします。

ベータ版がリリースされたら検証してみます。

よろしくお願いいたします。

[ ]