Subsections
任意の範囲のテキストを切ったり貼ったりするには,領域 (region) を使います。
- undo 操作を繰り返し行って,これまでに変更した *scratch* バッファ
の内容を,すべて元の状態に戻してみてください。操作の途中で混乱し
てしまって元の状態に戻せなくなったら,一度Emacs を終了して, emacs & で再度起動してから,どれかキーを一つ押してください。
- 1 行目の ``This'' の直後 (``buffer'' の直前) の
空白位置にカーソルを移動してから C-<SPACE> を押し,ウィンドウ下部
のエコー領域に Mark set と表示されるのを確認してださい。この操作
を「マークを設定する」といいます。
- カーソルを,1 行目の ``buffer'' の直後
(``is'' の直前) の空白位置に移動してください。
- C-w を押してください。 `` buffer'' が消去されます。
- カーソルを下の方に動かして,何も書いてない行の先頭に移動してくだ
さい。続いて C-y を押してください。
消去した `` buffer'' がカーソル位置に取り出されます。
2. と 3. で行った操作を,領域(リージョン)
の指定といいます。領域とは,「最後にマークを設定した文字」から,「現在カー
ソルがある位置の直前の文字」までの範囲のことです。先の操作では,
`` buffer
'' を領域指定しました。buffer の前の空白文字も領域に含ま
れていることに注意してください20。
「ポイント」という概念を使うと,領域の定義はもっとすっきりします。
ポイントは,カーソルがのっている文字と,その直前の文字との間に存在する
仮想的な点であって,実際に表示されるものではありません。四角いカー
ソルの左下の角がポイントだと思ってもいいでしょう。カーソルを移動すれば,
それにつれてポイントも移動します。
マークは C-<SPACE> を押したときのポイントに対して設定されます。
マークを設定したポイントと,現在のポイントとの間が領域です。
C-w21 は,指定した領域内の文字を消去するコマ
ンドです。C-k と同様に,C-w で消去したものは kill-ring に保存されま
すので,C-y を使って取り出せます。
上の操作では,`` buffer
'' を領域指定しましたので,これが C-w で
消去され,C-y で取り出されました。この操作を用いると,任意のテキストを
任意の場所に移動することができます。
M-w22 は,領域内のテキストを kill-ring に保
存するためのコマンドです。C-w とは違い,領域内のテキストは消去されませ
ん。C-y と併用すれば,領域内のテキストを他の場所に複写することができま
す。
- 2 行目の行頭 (;; If you want ... の ; の位置) にカーソルを移動
して,マークを設定してください。
- 行末の改行文字23 を含む 2 行目全体を領域指定してください。マー
ク位置から現在のカーソル位置の直前までが領域ですから,カーソルを
次の行( 3 行目)の行頭に移動すればいいです。
- M-w を押してください。
カーソルがマーク位置に移動して,また戻ってきます。見た目には,そ
れ以外の変化はありません。
- カーソルを下の方にある空白行まで移動して,C-y を押しましょう。
領域指定した内容 (2 行目全体) が複写されました。