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

Min*_*ngo 7 emacs

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

kin*_*ero 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)
Run Code Online (Sandbox Code Playgroud)


Sea*_*ean 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))
Run Code Online (Sandbox Code Playgroud)

编辑:添加called-interactively-p检查.

  • Woooo!拿着它!`kill-line`是一个内部使用大量包函数的函数,这将改变它们的行为方式,其方式非常微妙.我把钱花在@kindahero解决方案上,因为它会按照你的要求做你没有讨厌的副作用. (3认同)