vim - Emacs 相当于 Vim 的单词运动和改变行内单词

标签 vim emacs editing

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

  • Emacs 中用于在单词之间移动(一次不止一个)的等效命令是什么?
  • 其实我想去特定的词并改变它。在 Vim 中,我可以通过 ciw(更改行内单词)来做到这一点。 Emacs 中的等效命令是什么?
  • 最佳答案

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

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

  • 但这通常比执行 M-f 3 次要慢。你知道你没有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并绑定(bind)到您想要的位置。也许M-.:
    (global-set-key (read-kbd-macro "M-.") 'delete-word-at-point)
    

    关于vim - Emacs 相当于 Vim 的单词运动和改变行内单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031669/

    相关文章:

    vim - 在Debian上的Vim:cterm = bold不起作用(在以PuTTy作为客户端的ssh上使用它)

    python - 在 emacs 中,如何使用自定义参数执行当前编辑的 python 脚本?

    emacs:用字符填充对齐的字符串

    jquery - jqGrid:编辑时禁用表单字段

    vim - 保存文件导致 vim 卡住

    search - 如何在 Vim 中搜索一行中的第 N 个匹配项?

    windows - Emacs for Windows 中 shell 模式下的 Ack 显示无输出

    php - 在线 "diary"- 现有脚本/mysql/fwrite()?

    delphi - 我可以将 Delphi TEdit(或类似的)简单地连接到类的已发布属性吗?

    python - Vim 和 PEP 8 -- Python 代码风格指南