おもこん

おもこんは「思いつくままにコンピュターの話し」の省略形です

geditのsnippet

geditのsnippet

Linuxのディストリビューション、Debianはデスクトップにgnomeを採用しています。(gnomeの)標準エディタはgeditです。 このgeditですが、pluginを使って機能拡張ができます。その1つにsnippetがあります。snippetは文字列挿入、置換の方法を登録しておき、文書編集中にその登録を呼び出して文字列の挿入、置換などを行うプラグインです。ちょっとわかりにくいと思いますが、例えば「Debian GNU/Linux」という言葉を沢山使うようなときに、「d」と書いてsnuippetがそれを「Debian GNU/Linux」に置換するよう登録しておけば、僅かなキーストロークで書き込むことができます。

snippetにpythonを使える

snippetには、単純な置換だけでなく、shellコマンドを使ったり、スクリプト言語pythonでプログラムすることもできます。例えば、選択した複数行に渡る文字列を4文字文インデント(空白を左に入れること)するプログラムは次のようになります。

$<import re
s = $GEDIT_SELECTED_TEXT
s = re.sub("^(.)", r"    \1", s,0,re.M)
return s>

このようなことは、マークダウンで文章を書いていて、プログラムなどを記述するときに便利です。元にもどすプログラムは、

$<import re
s = $GEDIT_SELECTED_TEXT
s = re.sub("^    ", "", s, 0, re.M)
return s>

これらにショートカットキーを登録して使います。

原理的にはもっとすごいこともできる

プログラムですから、原理的にはもっといろいろなことができます。emacsなどはプログラム(マクロ?)ができるそうですが、geditでもかなりのことができるはずです。詳しいことは、gnomeのsnippetの解説ページを参照してください。

おまけ

前回書いた「Luaノート」ですが、かなり進みました。文字列、数値、関数、テーブルと進んで、これからメタテーブルなどの話になります。かなり長編になりそうです。