这是我目前的功能(盲目地从网站上复制粘贴)
(defun tweakemacs-delete-one-line ()
"Delete current line."
(interactive)
(beginning-of-line)
(kill-line)
(kill-line))
(global-set-key (kbd "C-d") 'tweakemacs-delete-one-line)
我想摆脱这里有两个怪癖。 1)这实际上将DEL重新绑定到相同的函数。我希望我的DEL保持“删除一个字符”。 2)如果该行只是换行符,则需要有一个不会双重杀死的情况。
答案 0 :(得分:5)
要区分这两者,请使用键的首选矢量语法:
(global-set-key [delete] 'foo)
(global-set-key [(control d)] 'bar)
至于第二件事,听起来好像要么
(setq kill-whole-line t)
或者只想使用函数kill-entire-line
。
答案 1 :(得分:1)
我看了part of the manual on keybindings,并且说C-d
和<DEL>
与其他特殊键一样受约束。要取消绑定它们,您必须明确设置它们。
最终,我使用了这个解决方案:
(global-set-key (kbd "<delete>") 'delete-char)
(global-set-key ([control d]) 'kill-whole-word)