4

M-f在 Emacs 中,我可以使用and向前和向后移动一个单词,M-b但是如果我必须向后或向前移动三个单词,我需要将前面的序列重复 3 次,这看起来很不雅。在 Emacs 中,Vim 中的 word-motion 概念是什么等价物?例如,在 Vim 中,当我处于命令模式时,我可以通过发出向前移动两个单词,2w并通过发出向后移动两个单词。2b

  1. Emacs 中用于在单词之间移动(一次不止一个)的等效命令是什么?
  2. 其实我想去特定的词并改变它。在 Vim 中,我可以通过ciw(change in-line word) 来做到这一点。Emacs 中的等效命令是什么?
4

1 回答 1

7

您可以使用universal-argument. 有两种方法可以向前移动 3 个单词:

  • C-u3M-f
  • C-3M-f

但这通常比做M-f3 次要慢。你知道你没有 release M,对吧?

我不知道 vim 的civ作用,但要找到一个单词,只需使用C-s. 如果您喜欢跳跃,请查看Ace Jump。它的工作原理类似于 vimperator 等浏览器插件的跟随链接功能。有了它,您可以跳转到行、单词甚至字符。


好的,我认为没有内置的。也许这个功能有帮助:

(defun delete-word-at-point ()
  "Delete word at point."
  (interactive)
  (let* ((p (point))
         (beg (+ p   (skip-syntax-backward "w_")))
         (end (+ beg (skip-syntax-forward  "w_"))))
    (kill-region beg end)))

将其放入您的~/.emacs并绑定到您想要的位置。也许M-.

(global-set-key (read-kbd-macro "M-.") 'delete-word-at-point)
于 2013-08-03T10:58:27.373 回答