sense-region

最新版

2002-10-16
2002-05-23
2002-05-22

sense-region とは

sense-region は普通のリージョン指定と矩形指定を交互に切り替えられる ようにするシステムです. Control + Space (set-mark-command) を 入力すると, 下の画像の様に範囲指定が切り替わります. (2002-05-21 まではマイナーモードでしたが, Emacs 全体に作用するように 仕様が変わりました).

普通のリージョン指定 矩形指定

選択した範囲に従って, 文字列のカット・コピー・ペーストが行われます. つまり普通のコピーアンドペーストと矩形によるコピーアンドペーストが 同じ操作でできるようになります. また, ペーストを行った後 0.5 秒間 ペーストした範囲がハイライトされます.

インストール

ダウンロード

http://www.taiyaki.org/elisp/sense-region/src/ から sense-region.el をダウンロードしてください.

.emacs の設定

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 を有効にする. 1
2). なんか適当にリージョンを指定する. 2
3). もう一度 \C-[space] (コントロールキーを押しながらスペースキーを入力 / set-mark-command) を 行うと, 選択範囲が矩形に変わる 3
4). \C-w (kill-region のキーバインド) を実行すると, 選択した矩形領域がカットされる. 4
5). 適当な位置で \C-y (yank のキーバインド) を実行すると, カットされた矩形領域がペーストされる. 5 6

使い方

M-x sense-region-on
sense-region を有効にする
M-x sense-region-off
sense-region を無効にする
C-[space] (M-x set-mark-command)
指定範囲をリージョンと矩形に交互に切り替える
C-w (M-x kill-region)
指定範囲の形状に応じて, 文字列のカットを行う
M-w (M-x kill-ring-save)
指定範囲の形状に応じて, 文字列のコピーを行う
C-y (M-x yank)
指定範囲の形状に応じて, 文字列のペーストを行う
C-c C-c (M-x comment-region)
指定範囲の形状に応じて, 文字列をコメントアウトする
C-i ([TAB] or M-x indent-for-tab-command)
指定範囲の形状に応じて, 文字列をインデントする. 指定範囲が矩形の場合, table.el が読み込まれていれば table-rectangle を実行する.
M-% (M-x query-replace)
指定範囲内で文字列を置換する
M-C-% (M-x query-replace-regexp)
指定範囲内で正規表現を置換する

普段は従来通りにリージョンでコピーアンドペーストを行い, 矩形での編集を行いたい場合には, もう一度 C-[space] で矩形の選択を 行うという利用法を想定しています.

マウスのダブルクリックのように

リージョンが指定されていない時に set-mark-command を 2回続けるとカーソル位置の単語がリージョン指定されます. つまり最初に Ctrl+[space] を 2回押すと単語がリージョン指定されます.

その後, Ctrl+[space] を繰り返すと次の単語もリージョンに含められるか url もしくは email アドレスがリージョンの対象になります.

Ctrl+[space] を繰り返すと単語がリージョンに追加されていく
word1 word2 word3 word4
Ctrl+[space] を 3回繰り返すと URL がリージョンになる
url1 url2 url3
Ctrl+[space] を 3回繰り返すとメールアドレスがリージョンになる
email1 email2 email3

カスタマイズ

Emacs 起動時から sense-region を有効にしたい.

.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 で 動作を確認しました.

更新履歴

2002-10-16
2002-05-23
2002-05-22
2002-05-21
2002-05-20

BUG & TODO


ホームページ
天照
ELisp
replace-region
rectangle
ac-mode
accel-key
table
wordnet
urlencode
visible-mark
physical-line-mode
my-keisen-mule
myimage
text-adjust
Palm
Linux & Unix
日記
観測カメラ
Index を閉じる
小松 弘幸 <komatsu@taiyaki.org>
$Id: index.html,v 1.2 2002/10/16 13:47:14 komatsu Exp $