sense-region は普通のリージョン指定と矩形指定を交互に切り替えられる ようにするシステムです. Control + Space (set-mark-command) を 入力すると, 下の画像の様に範囲指定が切り替わります. (2002-05-21 まではマイナーモードでしたが, Emacs 全体に作用するように 仕様が変わりました).
選択した範囲に従って, 文字列のカット・コピー・ペーストが行われます. つまり普通のコピーアンドペーストと矩形によるコピーアンドペーストが 同じ操作でできるようになります. また, ペーストを行った後 0.5 秒間 ペーストした範囲がハイライトされます.
http://www.taiyaki.org/elisp/sense-region/src/ から sense-region.el をダウンロードしてください.
sense-region.el を ~/elisp に置いたとして, 以下の設定をを .emacs などに 追加してください. 最初の 1 行目は既に書かれていれば必要ありません.
(setq load-path (cons (expand-file-name "~/elisp") load-path))
(autoload 'sense-region-on "sense-region"
"System to toggle region and rectangle." t nil)
画面のスクリーンショットはマイナーモード版の古い画像のままになっています. 一枚目の画像では "M-x sense-region-mode" と表示されていますが, 現在のバージョンでは "M-x sense-region-on" と入力して下さい. また, 現在のバージョンではモードラインに "SR" は表示されません.
| 1). M-x sense-region-on で sense-region を有効にする. |
|
| 2). なんか適当にリージョンを指定する. |
|
| 3). もう一度 \C-[space] (コントロールキーを押しながらスペースキーを入力 / set-mark-command) を 行うと, 選択範囲が矩形に変わる |
|
| 4). \C-w (kill-region のキーバインド) を実行すると, 選択した矩形領域がカットされる. |
|
| 5). 適当な位置で \C-y (yank のキーバインド) を実行すると, カットされた矩形領域がペーストされる. |
|
普段は従来通りにリージョンでコピーアンドペーストを行い, 矩形での編集を行いたい場合には, もう一度 C-[space] で矩形の選択を 行うという利用法を想定しています.
リージョンが指定されていない時に set-mark-command を 2回続けるとカーソル位置の単語がリージョン指定されます. つまり最初に Ctrl+[space] を 2回押すと単語がリージョン指定されます.
その後, Ctrl+[space] を繰り返すと次の単語もリージョンに含められるか url もしくは email アドレスがリージョンの対象になります.
| Ctrl+[space] を繰り返すと単語がリージョンに追加されていく |
|
| Ctrl+[space] を 3回繰り返すと URL がリージョンになる |
|
| Ctrl+[space] を 3回繰り返すとメールアドレスがリージョンになる |
|
.emacs に以下の 1 行を追加して下さい.
(sense-region-on)
sense-region 限定のメーリングリストではありませんが, 小松が作成している ELisp 全般に関してのメーリングリストを QuickMLで作成しました.
参加される方は, 以下のようなメールを送信してください. また Cc: に自分のメールアドレスを付けないでください. QuickML の仕様上, Cc: に参加者以外のメールアドレスがあると 参加できません.
To: elisp@taiyaki.quickml.com From: (自分のアドレス) Cc: komatsu@taiyaki.org Subject: 参加します (お名前) (本文にかるく自己紹介でもお願いします, 何も書かれていないと QuickML のシステム上登録できません.)
Debian パッケージの XEmacs21.4.6, Emacs21.2.1, Emacs20.7.2 で 動作を確認しました.