Emacs における矩形領域のコピペ系編集機能

Emacs では矩形領域で切り取り、貼り付けといったことが可能です。 これは結構コーディングなどに便利なので、今回はこの矩形領域の編集機能について紹介したいと思います。
ちなみに MS Word や Visual Studio では Alt + ドラッグで矩形領域を指定できます。

基本機能

基本は矩形で切り取って、貼り付けます。
キー コマンド 機能
C-x r k kill-rectangle 切り取り
C-x r y yank-rectangle 貼り付け

emacs_rect_cut.png
切り取り
emacs_rect_cutted.png
貼り付け
emacs_rect_yank.png

ちなみに VS などと違い、矩形領域で切り取った内容はクリップボード(kill-ring)とは別に記録されます。

その他の矩形処理

切り取り、貼り付け以外にも次のような機能があります。
キー コマンド 機能
C-x r d delete-rectangle 削除(保存しないので、貼り付けはできない)
C-x r c clear-rectangle クリア(空白への置換)
C-x r o open-rectangle 指定領域分の空白を挿入
C-x r t string-rectangle 指定文字への置換
C-x r N rectangle-number-lines ナンバリングする

クリア( C-x r c ) :
emacs_rect_clear_pre.png emacs_rect_clear.png


空白の挿入( C-x r o ) :
emacs_rect_clear_pre.png emacs_rect_open.png


置換( C-x r t ) :
emacs_rect_string_pre.png emacs_rect_string.png
領域内を "|" で置換


ナンバリング( C-x r N ) :
emacs_rect_num_pre.png emacs_rect_num.png

矩形でのコピー

"あれ、コピー忘れてない?" と思った人もいるかもしれません。しかし、忘れたわけではなく、この矩形領域の処理では切り取りはあるのに、なぜかコピーがありません。 理由はよくわかりませんが、切り取った後、Undo すれば、コピーと同じではあります。

読み取り専用バッファー

ただ、そのままだと読み取り専用バッファーでは切り取りができません。 kill-read-only-ok 変数を t(真) に設定すると、読み取り専用の場合にはコピーをするようになります。

変数の設定は M-x customize-option kill-read-only-okCustomizeで設定するか、以下の記述を ~/.emacs.d/init.el に追加して下さい。
(setq kill-read-only-ok t)

矩形のコピー関数の自作

前節の方法でも構わないのですが、 いちいち Undo するのも面倒なので、矩形でのコピーコマンドを自作してみました。

以下の記述を ~/.emacs.d/init.el に追加すると C-x r e で矩形のコピーができるようになります。
(defun my-kill-rectangle-ring-save (start end)
  "Copy the region-rectangle and save it as the last killed one."
  (interactive "r")
  (setq killed-rectangle (extract-rectangle start end))
  (deactivate-mark)
  (message "Copy rectangle region"))
(define-key ctl-x-r-map "e" 'my-kill-rectangle-ring-save)

追記 2013-11-29
レジスターに登録するのであれば、そのままでも矩形のコピーは可能です。


関連記事
スポンサーサイト
Prev.    Category    Next 

Facebook コメント


コメント

矩形のコピー

私は、矩形のコピーは、

C-x r r : copy-rectangle-to-register
C-x r i : insert-register

でやってます。

Re: 矩形のコピー

矩形のレジストリーへのコピーは使ったことがなかったのですが、確かにその方法でもコピーできますね。

ちょうどこの後、レジストリーの記事を書くつもりだったので、書いたらこちらの記事にも追記しておきます。

コメントの投稿

Font & Icon
非公開コメント

このページをシェア
アクセスカウンター
アクセスランキング
[ジャンルランキング]
コンピュータ
40位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
4位
アクセスランキングを見る>>
カレンダー(アーカイブ)
プルダウン 降順 昇順 年別

03月 | 2017年04月 | 05月
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -


はてな新着記事
はてな人気記事
ブロとも申請フォーム
プロフィール

yohshiy

Author:yohshiy
職業プログラマー。
仕事は主に C++ ですが、軽い言語マニアなので、色々使っています。

はてブ:yohshiy のブックマーク
Twitter:@yohshiy

サイト紹介
プログラミング好きのブログです。プログラミング関連の話題や公開ソフトの開発記などを雑多に書いてます。ただ、たまに英語やネット系の話になることも。