如果选择了区域,如何将C-k绑定到kill-region;别杀了

时间:2012-01-21 19:45:02

标签: emacs

在emacs中,如果选择了区域,我想将C-k绑定到kill-region;其他杀线正常。 如何配置?

3 个答案:

答案 0 :(得分:12)

将它放在你的.emacs

(defun kill-line-or-region () 
 "kill region if active only or kill line normally"
  (interactive)
  (if (region-active-p)
      (call-interactively 'kill-region)
    (call-interactively 'kill-line)))

  (global-set-key (kbd "C-k") 'kill-line-or-region)

答案 1 :(得分:5)

这听起来像是建议的工作!

(defadvice kill-line (around kill-region-if-active activate)
  (if (and (called-interactively-p) (region-active-p))
      (kill-region (region-beginning) (region-end))
    ad-do-it))

编辑:添加了called-interactively-p支票。

答案 2 :(得分:0)

这不是一个直接的答案,而是一些提示。

您可以(delete-selection-mode 1)启用delete-selection-mode。然后,如果标记了某个区域,当您开始键入某个文本时,该区域将被删除。但在你的情况下你可以简单地使用 C-w 来剪切当前区域,这会将区域添加到kill-ring但kill-line也会这样做。