mikutterにEmacsっぽい機能を提供するプラグイン: gtk_emacslike_textview

gtk_emacslike_textviewとは

mikutterの投稿ボックスを強化する,Emacsユーザのためのmikutterプラグインです.投稿ボックスでツイートを編集する際に思わずを叩いて全選択しちゃったりしたEmacsユーザも多いことと思います.そこで生まれたのがこのプラグインです.このプラグインではEmacsっぽいキーバインドとsnippet機能,mikutter_shell_postとの連携を念頭においたキーワードハイライト機能を提供します.キーワードハイライトでは,特定の言語に合わせたキーワードハイライトが利用できます.ちなみに,snippet機能とキーワードハイライトはmikutter_shell_postとの同時利用のために実装されたものです.そのままでも利用できますが,mikutter_shell_postを同時に利用するとその真価が発揮されるでしょう.

インストール方法

mikutterのバージョンが0.2.1.1119以上である必要があります.それ以前のバージョンでは動作しません.また,Gtk::SourceViewが必要になります.以下のコマンドでインストールして下さい.

gem install gtksourceview2

git_emacslike_textviewのインストールは以下のコマンドで行ってください.コマンドを実行したら,mikutterを再起動すれば投稿ボックスがEmacsっぽくなっていると思います.

mkdir -p ~/.mikutter/plugin
cd ~/.mikutter/plugin
git clone git://github.com/penguin2716/gtk_emacslike_textview.git

機能紹介

Emacsっぽいキーバインド

次のコマンドが利用できます.キーバインドがユーザ定義となっているものはmikutterの設定画面から設定して下さい.

キーバインド 動作内容
C-[fbnpae] 文字単位のカーソルの移動
C-[dh] 文字の削除
C-SPC 選択のトグル
C-[/z] 戻る
C-w 選択領域のカット
C-k 行末までカット
C-y カーソル位置に貼り付け
C-g 選択のトグルをOFF
C-A C-aの全選択がなくなったのでC-Aで全選択にしてみた
M-[fb] 単語単位でのカーソル移動
M-[ae] バッファの先頭/末尾に移動
M-w 選択領域のコピー
M-[dh] 単語単位の削除
M-[np] グローバルスタックの読み出し
ユーザ定義 ハイライトする言語の変更(下記参照)
ユーザ定義 snippetを展開(下記参照)

以下では説明のため,「ハイライトする言語の変更」をに,「snippetを展開」をに割り付けたと仮定します.

キーワードハイライト

投稿ボックスに次の内容を入力し,するとRubyのキーワードをハイライトするモードになります.

@@ruby

同様に,次の内容でするとJavaのキーワードをハイライトするモードになります.

@@java

ハイライトしないモードに戻す場合は,次のように存在しない言語を@@に続けて入力し,します.

@@nil


snippet

snippet機能は,特定のキーワードのあとにコマンドを呼ぶと,そのキーワードがあらかじめ定義された内容に展開される機能です.試しに,以下の内容を投稿ボックスに入力してをタイプします.

chello

すると,以下のような内容が展開されます.

#include <stdio.h>
int main(int argc, char **argv)
{
	printf("Hello, world!\n");
	return 0;
}

このように,自分でsnippetを追加すれば,簡単に文章を作れるようになります.

snippetはsnippetsディレクトリ以下に保存されており,ユーザによる追加が可能です.新しくsnippetを登録する場合は,キーワードをファイル名とし,展開したい内容をファイルに記述して下さい.その際,ファイルの中に'$0'という文字列が含まれている場合は,展開後にその位置にカーソルが挿入されます.ファイルを追加したら,mikutterを再起動すると新しいsnippetが読み込まれます.

設定画面

今のところ,設定画面では色の設定ができます.140文字を超過した場合に背景色を変更すれば,文字数超過でつぶやけないことがわかります.