Emacs矩形操作

时间:2024-12-17 23:35:08

原始矩形块模式

emacs以C-x r开头的命令来进行矩形操作。先用C-space或者C-@设一个mark,移动光标到另一点,用以下命令进行列操作:
C-x r r 复制一个矩形区域到寄存器
C-x r k 剪切一个矩形块
C-x r y 粘贴一个矩形块
C-x r o 插入一个矩形块
C-x r c 清除一个矩形块(使其变成空白)
C-x r t 在选定区域的所有列前插入样的字符

Rect-Mark

有时我会存在这种需求,我想删除连续29行的行首那一列,如下:
Emacs矩形操作
Emacs矩形操作
我需要删除行首的数字,这时候Emacs自带的矩形区域选择就不了作用了,需要使用一个叫做rect-mark的插件,
使用这个插件可以通过M-x rm-set-mark激活矩形选择模式,如图
Emacs矩形操作
Emacs矩形操作
选中之后再使用原始的矩形操作命令,例如删除数字行C-x r k替换其他字符C-x r t
安装rect-mark.el插件
下载之后将插件放到自己的LoadPath,然后再.emacs中加入(require 'rect-mark)
一些快捷键配置
(global-set-key (kbd "C-x r C-SPC") 'rm-set-mark)
(global-set-key (kbd "C-x r C-x") 'rm-exchange-point-and-mark)
(global-set-key (kbd "C-x r C-w") 'rm-kill-region)
(global-set-key (kbd "C-x r M-w") 'rm-kill-ring-save)
(autoload 'rm-set-mark "rect-mark"
"Set mark for rectangle." t)
(autoload 'rm-exchange-point-and-mark "rect-mark"
"Exchange point and mark for rectangle." t)
(autoload 'rm-kill-region "rect-mark"
"Kill a rectangular region and save it in the kill ring." t)
(autoload 'rm-kill-ring-save "rect-mark"
"Copy a rectangular region to the kill ring." t)