例如,我的光标(指针)位于单词“cursor”中的任意一个字母上。 我想删除(kill)该单词,并将其复制到
kill-ring
中。kill-ring
中。使用Emacs删除单词的方法是先按下M-backspace,再按下M-d。这将删除光标所在位置的单词并将其保存到kill ring中(作为一个单元)。
如果光标在单词的开头或结尾之后,只需要按其中一个键组合即可。Emacs用户通常会使用像forward-word
(M-f)和backward-word
(M-b)这样的命令在单词之间移动,因此他们最初就处于单词边界,因此很少需要从内部删除单词。
您可以将此作为在指定位置消灭各种物体的框架:
(defun my-kill-thing-at-point (thing)
"Kill the `thing-at-point' for the specified kind of THING."
(let ((bounds (bounds-of-thing-at-point thing)))
(if bounds
(kill-region (car bounds) (cdr bounds))
(error "No %s at point" thing))))
(defun my-kill-word-at-point ()
"Kill the word at point."
(interactive)
(my-kill-thing-at-point 'word))
(global-set-key (kbd "s-k w") 'my-kill-word-at-point)
s-k
代表哪个键绑定? - alpers
是“超级”修改键。显然,人们可以在自己的系统上使用任何方便/可用的键绑定。 - phils您可以通过使用M-b将光标移动到单词开头(如果光标不在那里的话),然后使用M-d删除它。然后,您可以按C-y将其放回。如果您想自动化此过程,则可以创建一个简短的elisp函数并将其分配给一个键:
(global-set-key [24 C-backspace] ; C-x C-backspace
(lambda () (interactive)
(save-excursion
(backward-word)
(kill-word 1)
(yank))))