TextMate互換Snippets(定型文入力)機能

投稿者: Aye Wong2 声6 投稿

TextMate(Mac OS X) https://macromates.com/ e(Windows) https://www.e-texteditor.com/ 上の解説 https://www.ohmiyapatriots.com/blog/index.php?tag=tool レファレンス https://www.e-texteditor.com/wiki/index.php/Bundles#Snippets Intype https://intype.info/ 上の解説 https://mrm.seesaa.net/article/32320020.html snippetsEmu(vim) https://onexone.sakura.ne.jp/archives/2007/05/06/203415.html ここ最近のテキストエディタの機能の潮流としてTextMateを源とするSnippets機能があります。 これは短縮入力(+Tabキー)もしくはメニュー項目の選択を引き金として入力される定型文入力機能なのですが、 定型文の展開の後、Tabキーを押すことで、さらにその文の中で、修正すべき部分だけに集中して編集できるようになっています。 これは各言語ごとにBundlesという形で、重要なものがツリー上にまとめられています。 詳しくは、上のsnippesEmuの説明を見てください。 元々、TextMateはMac OS Xのエディタなのですが、Snippetsが便利なため、TextMateクローンを謳うWindows用の e TextEditor やIntypeといったエディタが現れ、Unix系のvimでも同様の機能をサポートするスクリプトが現れました。折りたたみ同様にテキストエディタの標準的な機能になりそうな勢いがあります。 EmEditorにおいても、プラグインの形でもよいので、各言語のBundlesとセットで利用できればと思います。e TextEditor 同様にTextMate完全互換であればさらに嬉しいです。カスタムバーよりはプルダウンメニューの方がよいかもしれません。またスニペッツでは日本人には分かりにくいので「定型文入力」などが良いかと思います。WordCompleteと統合さているかあるいは、自然に併用できるようになっているとよいなと思います。
今のSnippetsプラグインを、TextMateのSnippets相当にするには以下のような、修正をするとよいのではないかと考えました。 ・カスタムバーだけでなくポップアップメニューとしても呼べる ・AutoCompleteプラグインのように短縮入力が可能 ・変数の展開、マクロ言語の動的評価 (JS,VBS,Perl,Ruby,Python)の評価 https://macromates.com/textmate/manual/snippets#variables ・レジストリではなくて、フォルダのファイルで管理 ・設定別のフォルダ構造 ・Snippetsのフォルダをユーザー間で簡易に共有する機能(TextMateではsvnを使って、高度なSnippetsのライブラリ=Bundlesが共有されている) Visual Studioも同等の機能を持っているようで、ぜひEmEditorも洗練されたものにしていただければと思います。 https://www.atmarkit.co.jp/fdotnet/vb2005/vb2005_07/vb2005_07_01.html
作者さんも忙しそうなのでSnipptsはユーザ有志でマクロ作るってのはどうでしょうかAyeさん CodeReposでコード共有してマクロ共有すれば何とかならないかな。思いつきですけど。 SnipptsのライブラリのSVNの共有とかも欲しいですし。
takuyaさんは書きました: 作者さんも忙しそうなのでSnipptsはユーザ有志でマクロ作るってのはどうでしょうかAyeさん
マクロ共有は面白そうなのですが、いわゆるスニペット機能の特色は、スニペットが挿入された後に、タブキーを押すことで、挿入された文字列の各箇所を再編集できることにあるかと思います。この複数の再編集箇所の座標がテキスト全体の変化に応じて変わるので、この計算をエディタ本体がしてくれないと満足なスニペット機能は実装されないのではないかと考えています。少なくともこの部分で江村さんのご協力が必要かと。
CodeReposでコード共有してマクロ共有すれば何とかならないかな。思いつきですけど。 SnipptsのライブラリのSVNの共有とかも欲しいですし。
Snippetsに関しては上のような懸念があるのですが、とりあえず、マクロなり何なりをsvnで共有するというのが面白そうだったので、CodeReposへのCommit権を申請しておきました。 :-) CodeReposでどうマクロを共有するかは別スレでやりましょう。
TextMateのようなSnippets機能についてわかりやすいムービーを見つけましたので張っておきます。 https://scribes.sourceforge.net/demo.htm Scribesというエディタの紹介ムービーです。 短縮入力+TABで補完し、複数のプレースフォルダをTABで移動します。プレースフォルダの中の文字列はスクリプトによって動的に変化します。 こういう機能を是非、次のメジャーバージョンアップにお願いしたいと思います。 :-)
同様の機能である、jEditのSuperAbbrevのムービーも見つけました。 jEdit with SuperAbbrevs plug-in https://jp.youtube.com/watch?v=W3a06o3h5NI 英語圏のエディタではこの機能は付くのがあたりまえになりつつあるようです。 既存のプラグインとの関係ではSnippets, AutoComplete, WordCompleteなどの延長になるのかもしれません。 過去のこちらのリクエストも再考いただければと思います。 https://emeditorjp.wpengine.com/modules/newbb/viewtopic.php?viewmode=thread&topic_id=517&forum=12&post_id=2432#forumpost2432

このトピックの投稿: 6