uimのtext acquisition APIを使って、セレクションやクリップボード内の 文字列に対して処理を行うIMを作ってみました。
+ 外部フィルタ (uim-external-filter) + 外部エディタ起動 (uim-external-editor) + カタカナ・全角変換 (uim-japan-util) + 文書整形 (uim-fmt-ja) + 文字数カウント (uim-wordcount) IMで行う利点としては、エディタやブラウザ等のプラグインを探したり、 アプリごとに異なる操作を調べなくても、IM側で統一した操作で行える、 という点があります。 text acquisition APIに対応しているブリッジ(uim-gtk,uim-qt4,uim-qt3) でのみ使えます。 なお、外部フィルタや外部エディタに関しては、 出力のみを使う場合はこれら以外のブリッジでも使用可能です。 # また、uim-wordcountとuim-fmt-jaに関しては、 # コマンドラインから使用可能にするスクリプトもあります。 ## uim-1.7.1でSEGVが発生する場合は、r7271の変更を適用してみてください。 * uim-external-filter https://github.com/deton/uim-external-filter セレクションを対象に、外部フィルタコマンドを適用した内容で置換。 外部フィルタとして任意のコマンドを登録・実行可能です。 コマンドの出力を候補ウィンドウに表示する機能もあります。 + wcコマンドの出力のように結果を参照したいだけの外部フィルタ + 置換する前に、新しい内容を確認したい場合 さらに、改行で区切って候補リストとして表示、選択した候補のcommitも可能です。 + lookコマンドを使って補完(;;look $(read a; echo $a)) + SKK形式辞書をgrepして、かな漢字変換候補を表示 - ls ~の出力からファイル名を選んで挿入 その他の使用例: + 文書整形(fmt) + 文書整形後、引用マーク"> "を行頭に付ける(nkf -w -f | sed -e 's/^/> /') + <blockquote>でくくる(echo '<blockquote>'; cat -; echo '</blockquote>') + JSON文字列を整形(python -mjson.tool) + ファイルに書き出してエディタを起動(cat ->~/aaa;leafpad ~/aaa>/dev/null&) - ファイル内容を読み込み(cat ~/aaa) - 現在の日時を挿入(date) - 明日の天気を表示(lynx) # vimエディタの外部フィルタ(:!)に相当 * uim-external-editor https://github.com/deton/uim-external-editor 外部エディタを起動。 # Google Chromeのように、拡張機能からは外部エディタを起動できない場合など用 * uim-japan-util https://github.com/deton/uim-japan-util 以下の変換を行います。 - ひらがな←→カタカナ - 全角英数←→半角英数 - 半角カナ←→全角カナ # 英数文字も全角での入力を求める入力フィールドがある場合用。 # Emacsのzenkaku-region等に相当。 * uim-fmt-ja https://github.com/deton/uim-fmt-ja 文書整形。(fmtコマンドやnkf -f相当) * uim-wordcount https://github.com/deton/uim-wordcount 文字数等を数えて候補ウィンドウに表示。(wcコマンド相当) # 文字数制限のある入力フィールドを使う場合用 # セレクションを対象に処理を行うIMとして、 # uim-wordcount, uim-fmt-ja, uim-japan-utilと作ってきて、 # やっぱりsedとかで加工したくなったので、外部フィルタを思いつきました。 -- 木原 英人 / KIHARA, Hideto / de...@m1.interq.or.jp http://www1.interq.or.jp/~deton/ -- Google Groups "uim-ja" group uim-ja@googlegroups.com http://groups.google.com/group/uim-ja/about