単語補完についての質問No.01098
ponta さん 07/06/11 02:17
 
最近になってやっと秀丸エディタにβ版が公開されていることを
知り,単語補完の機能に驚嘆しています.すばらしいですね.

ところで,以下のようなことは現在実現可能でしょうか.ヘルプや
過去ログを読んでもわからなかったので投稿させていただきます.

(1) 特殊文字を無視した補完
 特殊文字の <>#_{}/ 等は補完するときの文字として認識させ
 たくなく,
   *.html で c を打てば <center></center>
   *.c で i を打てば #include <>
   *.tex で i 打てば \int_{}^{}
 と補完させたい(「単語の途中の文字も検索する」を選択しな
 いと <, #, \ などの先頭文字を入力するのが面倒で,選択すると
 候補が不要に多くなってしまう)

(2) 改行の挿入
 たとえば
   *.html で <p>改行2つ</p>
   *.c で for(){改行2つ}
   *.tex で \begin{table}改行2つ\end{table}
 といふうに改行を補完時に自動的に入れたい(これは整形マクロ
 の領分かもしれませんが)

(3) カーソル移動
 (1)(2) にも関係するのですが,たとえば
   *.html で c を打てば <center></center> と補完した後に
   カーソルが >< の間に来る
 というふうに補完時にカーソル移動も制御したい

以上ですが,新しい補完機能とマクロを組み合わせる,あるいは,
辞書に特殊なコードを入れれば実現するのでしょうか.(補完時に
特殊な機能を持たせるようなコードを含んだ辞書などというような
ものが作れればなあと思っています)

 実は,以上の機能はずいぶん以前から自分で作ったマクロで
実現していて,きっと一般的にも便利であろうと常々思っていた
ことなのです.ただし,今回の補完の基本思想とは相容れない
ようにも感じているので,難しいかもしれません.

長くなり申し訳ありません.誤解等あればそれもご指摘願います.

[ ]
RE:01098 単語補完についての質問No.01104
秀丸担当 さん 07/06/11 17:17
 

>(1) 特殊文字を無視した補完
> 特殊文字の <>#_{}/ 等は補完するときの文字として認識させ
> たくなく,
>   *.html で c を打てば <center></center>
>   *.c で i を打てば #include <>
>   *.tex で i 打てば \int_{}^{}
> と補完させたい(「単語の途中の文字も検索する」を選択しな
> いと <, #, \ などの先頭文字を入力するのが面倒で,選択すると
> 候補が不要に多くなってしまう)

辞書ファイルを作って、辞書を行単位にして
<center></center>
を書いておくと c を打って補完はできると思います。

「単語の種類」を「HTML/XML」や「カスタム」にして、「<」「<>/」などを単語
の開始文字と途中の文字に含ませると、記号も補完開始の対象となります。
逆に言えば「単語の種類」が「標準」であれば、記号は無視するけど補完はでき
るということになると思います。

>(2) 改行の挿入
> たとえば
>   *.html で <p>改行2つ</p>
>   *.c で for(){改行2つ}
>   *.tex で \begin{table}改行2つ\end{table}
> といふうに改行を補完時に自動的に入れたい(これは整形マクロ
> の領分かもしれませんが)
>
>(3) カーソル移動
> (1)(2) にも関係するのですが,たとえば
>   *.html で c を打てば <center></center> と補完した後に
>   カーソルが >< の間に来る
> というふうに補完時にカーソル移動も制御したい

(2)と(3)はいずれもできないです。
辞書に特殊な働きをする文字を入れるのはネタとして参考にしたいと思います。

>以上ですが,新しい補完機能とマクロを組み合わせる,あるいは,
>辞書に特殊なコードを入れれば実現するのでしょうか.(補完時に
>特殊な機能を持たせるようなコードを含んだ辞書などというような
>ものが作れればなあと思っています)
>
> 実は,以上の機能はずいぶん以前から自分で作ったマクロで
>実現していて,きっと一般的にも便利であろうと常々思っていた
>ことなのです.ただし,今回の補完の基本思想とは相容れない
>ようにも感じているので,難しいかもしれません.

素晴らしいマクロを作られていて、マクロは今でも十分に利用価値があると思い
ます。
自動起動マクロに、単語補完直前と直後をしたらどうかというネタもありました
が、いまのところやっていないです。
秀丸エディタ標準でやることのメリットは、キー入力中も非同期に裏で補完が働
くことで、キー入力中にマクロが動くとキー入力がもたつくことになる可能性が
あるので、難しいかもしれません。

[ ]
RE:01104 単語補完についての質問No.01108
ponta さん 07/06/11 18:16
 
丁寧なご説明をどうもありがとうございました.

秀丸のように練れたソフトでいまだにこのβ版のような新鮮さを
提供してくださるのは非常にうれしいです.

「ネタ」があればこれからもお邪魔にならないように(お忙しい
でしょうね!)提供していきますので,よろしくお願いします.

[ ]