2022/07/11(月) [n年前の日記]
#1 [xyzzy] xyzzyのスニペットについて調べてた
自分は普段 xyzzy という、操作感覚が emacsに近いWindows専用エディタを使っているのだけど。スニペット(Snippet)相当の機能は無いのかなと気になってきたので少し調べてみたり。
スニペット機能と言うのは…要は「定型文入力機能」という説明でいいのだろうか。プログラムソースを打ち込んでいく際、お決まりの一文を入力する場面がちょくちょくあるけれど、それらの定型文を登録しておいて挿入できれば作業が楽になる。
xyzzy の場合、abbrev と dabbrev という、2つの入力補完機能を持っていて。
スニペットは、前者の abbrev に相当するのだろうなと。
ただ、自分の手元の xyzzy では、abbrev の実行(?)が割り当てられてるはずの C-x ' が機能しなくて。設定ファイル ~/.xyzzy を確認したら、C-x ' には just-one-space が割り当てられていて、代わりに M-SPC に snippet-expand が割り当てられてた。昔、自分で設定したんだろうけど…何だっけコレ…。
どうやら自分、snippet.l という拡張を導入して、expand-abbrev の代わりに snippet-expand を使うようにしていたようだなと…。
スニペット機能と言うのは…要は「定型文入力機能」という説明でいいのだろうか。プログラムソースを打ち込んでいく際、お決まりの一文を入力する場面がちょくちょくあるけれど、それらの定型文を登録しておいて挿入できれば作業が楽になる。
xyzzy の場合、abbrev と dabbrev という、2つの入力補完機能を持っていて。
- abbrev : 静的補完。事前に登録した定型文を選んで入力補完してくれる。
- dabbrev : 動的補完。現在開いているバッファ(ファイル)の中から単語を抽出して、入力補完してくれる。
スニペットは、前者の abbrev に相当するのだろうなと。
ただ、自分の手元の xyzzy では、abbrev の実行(?)が割り当てられてるはずの C-x ' が機能しなくて。設定ファイル ~/.xyzzy を確認したら、C-x ' には just-one-space が割り当てられていて、代わりに M-SPC に snippet-expand が割り当てられてた。昔、自分で設定したんだろうけど…何だっけコレ…。
どうやら自分、snippet.l という拡張を導入して、expand-abbrev の代わりに snippet-expand を使うようにしていたようだなと…。
◎ snippet.lについて。 :
ググってみたら、snippet.l はもう入手不可能っぽい。Web Archive で解説ページは見つけられたけど、.zipファイルはDLできなかった。
_silog - script/snippet (Web Archive)
幸い、xyzzyインストールフォルダ\.netinst\src\ 以下で、snippet-2007.07.15.zip というファイルが見つかった。一応、バックアップも兼ねて置いておきます。
_snippet-2007.07.15.zip
snippet.l と abbrev の違いは、定型文を挿入した直後の動作だろうか…。abbrev は定型文を挿入して終わるけど、snippet.l は、挿入後に入力が必要な個所にカーソルを合わせてくれて、C-n や C-p で入力箇所を移動できるっぽい。
まあ、一般的には、abbrev が使えるだけでも十分かなという気もする。 *1
_silog - script/snippet (Web Archive)
幸い、xyzzyインストールフォルダ\.netinst\src\ 以下で、snippet-2007.07.15.zip というファイルが見つかった。一応、バックアップも兼ねて置いておきます。
_snippet-2007.07.15.zip
snippet.l と abbrev の違いは、定型文を挿入した直後の動作だろうか…。abbrev は定型文を挿入して終わるけど、snippet.l は、挿入後に入力が必要な個所にカーソルを合わせてくれて、C-n や C-p で入力箇所を移動できるっぽい。
まあ、一般的には、abbrev が使えるだけでも十分かなという気もする。 *1
◎ abbrevについて。 :
以下のページが分かりやすいだろうか…。
_単語補完機能 - xyzzy - emacs like editor in windows
_xyzzyで単語の自動補完(Static編) - tohokuaikiのチラシの裏
_abbrevの使い方 - himadatanode’s blog
_xyzzy - 覚書wiki - atwiki(アットウィキ)
_abbrev modeのやりかた (Web Archive)
_QuickTour/abbrev - XyzzyWiki (Web Archive)
_動的補完と静的補完の設定と使い方 | for programer | しょぼしょぼすくりぷと xyzzy (Web Archive)
消滅してしまったページが多いのがなんとも。
emacsの解説も参考になるかもしれず。
_abbrev
以下で、デフォルトのキー割り当てが紹介されてる。
_xyzzy機能分類別キーバインド一覧
abbrev の定義ファイルは ~/.abbrev_defs だけど、M-x list-abbrevs か M-x edit-abbrevs を実行すれば編集できる。
C-x C-a か C-x + を使って仮登録してから、M-x list-abbrevs でちゃんと修正、てな感じの登録の仕方になるのかな。たぶん。
_単語補完機能 - xyzzy - emacs like editor in windows
_xyzzyで単語の自動補完(Static編) - tohokuaikiのチラシの裏
_abbrevの使い方 - himadatanode’s blog
_xyzzy - 覚書wiki - atwiki(アットウィキ)
_abbrev modeのやりかた (Web Archive)
_QuickTour/abbrev - XyzzyWiki (Web Archive)
_動的補完と静的補完の設定と使い方 | for programer | しょぼしょぼすくりぷと xyzzy (Web Archive)
消滅してしまったページが多いのがなんとも。
emacsの解説も参考になるかもしれず。
_abbrev
以下で、デフォルトのキー割り当てが紹介されてる。
_xyzzy機能分類別キーバインド一覧
- C-x C-a : add-mode-abbrev 現在のモードのアブレブテーブルに登録(展開する文字列→略称)
- C-x C-h : inverse-add-mode-abbrev 現在のモードのアブレブテーブルに登録(展開する文字列→略称)
- C-x ' : expand-abbrev アブレブ略語を展開
- C-x + : add-global-abbrev グローバルアブレブテーブルに登録(展開する文字列→略称)
- C-x - : inverse-add-global-abbrev グローバルアブレブテーブルに登録(略称→展開する文字列)
abbrev の定義ファイルは ~/.abbrev_defs だけど、M-x list-abbrevs か M-x edit-abbrevs を実行すれば編集できる。
C-x C-a か C-x + を使って仮登録してから、M-x list-abbrevs でちゃんと修正、てな感じの登録の仕方になるのかな。たぶん。
*1: いやまあ、今から新規に xyzzy を使う人は居ないだろうから、一般的もへったくれも無いだろうけど。開発停止状態と言っていいほど枯れ切ってしまって、慣れ過ぎちゃって離れられない人しか使ってないエディタのはずだし…。
[ ツッコむ ]
以上です。