使用 Emacs 时,我通常需要对同一区域执行多个操作(通常非常大但不是定义明确的对象,例如“整个部分”、“整个段落”)。目前,我必须手动标记区域,执行第一个操作,然后返回重新标记区域,然后执行第二个操作,重复......非常繁琐。我想知道是否有任何快捷方式可以重新标记以前标记的区域?或者在我告诉 Emacs 取消标记之前保持区域标记的某种方法。
下面的脚本片段将把键和弦F6
, C-F6
,绑定C-S-F6
到管理器标记(与标记)。当您更改标记周围和之间的文本时,标记会移动、缩小和放大。您可以使用您喜欢的任何键。将代码放入您的~/.emacs
配置文件中。
F6
将标记设置到该区域的边界。 C-F6
根据需要 按 .Repeat *"Do.." 重新建立修改区域的边界C-S-F6
来清除区域标记。 (global-set-key (kbd "<f6>") 'set-markers-for-region)
(defun set-markers-for-region ()
(interactive)
(make-local-variable 'm1)
(make-local-variable 'm2)
(setq m1 (copy-marker (mark)))
(setq m2 (copy-marker (point))))
(global-set-key (kbd "<C-f6>") 'set-region-from-markers)
(defun set-region-from-markers ()
(interactive)
(set-mark m1)
(goto-char m2))
(global-set-key (kbd "<C-S-f6>") 'unset-region-markers)
(defun unset-region-markers ()
(interactive)
(set-marker m1 nil)
(set-marker m2 nil))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
809 次 |
最近记录: |