我对命令"后向单词"和"反向杀戮单词"的工作方式有一个小问题.当我在只有空格的行(例如,缩进行的第一个字符串)上点击"backward-kill-word"时,该命令将终止所有的空格,以及该字符串的最后一个字.上一行.
这种行为对我来说完全不直观.我更喜欢它在Eclipse中的工作方式,例如,它会在第一次按下"backward-kill-word"时杀死空白字符直到行的开头,将移动到前一行的末尾在下一次打击时,只有这样才会开始杀掉行尾的单词.
我很确定这种行为在大多数应用程序中是默认的(因为它似乎更直观,这可能是因为我已经习惯了,但我不确定),所以我想知道是否有一种配置Emacs也具有此行为的方法.不幸的是,Google上的一些搜索结果没有发现.
谢谢
编辑:
谢谢大家的答案(包括我所要求的elisp代码).
显然,使用forward-kill-word和移动命令会出现同样的问题,我希望emacs中只有一些可配置的标志来改变行为,但它看起来我只是想采取这些elisp函数并重新绑定默认移动并杀死这些命令.
这个怎么样:
(defun my-backward-kill-word () "Kill words backward my way." (interactive) (if (bolp) (backward-delete-char 1) (if (string-match "^\\s-+$" (buffer-substring (point-at-bol) (point))) (kill-region (point-at-bol) (point)) (backward-kill-word 1))))