Emacs相当于Vim的单词运动和更改内嵌单词

时间:2013-08-03 10:07:37

标签: vim emacs editing

在Emacs中,我可以使用 Mf Mb 向前和向后移动一个单词,但如果我必须向后或向前移三个单词,我需要重复前一个序列三次似乎不优雅。在Vim中Emacs相当于单词运动概念是什么?例如,在Vim中,我可以通过发出2w向前移动两个单词,在我处于命令模式时通过发出2b向后移动。

  1. Emacs中用于在单词之间移动的等效命令(一次多个)?
  2. 其实我想说一下特定的词并改变它。在Vim中,我可以通过 ciw (更改内联单词)来完成此操作。 Emacs中的等效命令是什么?

1 个答案:

答案 0 :(得分:7)

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

  • C-ù 3 M-F
  • C-3 M-F

但这通常比做 M-f 3倍慢。你知道你没有发布 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)