如何删除(或杀死)emacs中的当前单词?

时间:2015-10-30 17:49:37

标签: emacs

例如,我的光标位于" x"在"光标"字。然后,我想删除(杀死)当前的单词。 杀意是将当前的单词复制到kill-ring。 甚至复制当前的单词,~_〜

3 个答案:

答案 0 :(得分:9)

Emacs删除单词one的方法是按 M-backspace ,然后按 M-d 。这会杀死这个词,并将其保存为杀死戒指(作为一个单位)。

如果光标位于单词的开头或结尾,则只有两个中的一个就足够了。 Emacs用户通常会使用forward-word Mf )和backward-word Mb )等命令在单词之间移动,因此他们将在单词边界开始,因此很少需要从内部杀死单词。

答案 1 :(得分:4)

你可以通过 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))))

答案 2 :(得分:3)

你可以使用它作为一个框架来杀死各种各样的东西:

(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)