【问题标题】:Vim visual selection delete/insert in EmacsEmacs 中的 Vim 视觉选择删除/插入
【发布时间】:2011-10-02 10:25:06
【问题描述】:

我试图找到一个非常有用的 vim 可视模式的替代品,比如说我想删除下面两行的前两个字符

11 line1
22 line2

在 vim 中,我进入可视模式并选择要删除的区域,然后将其删除。此外,我还可以在

之后添加到列中
11
22

喜欢

11 added line1
22 added line2

在可视模式下选择列后,使用 Shift+I。有没有办法在 emacs 中做同样的事情?

【问题讨论】:

    标签: emacs


    【解决方案1】:

    听起来像 Emacs 的矩形功能。你必须在点和标记之间想象一个矩形。

    C-x r k 杀死矩形 C-x r t 用文本填充矩形。您想要一个矩形零列宽来执行您的第二个请求。

    【讨论】:

    • 或者使用cua-selection-mode 的矩形编辑功能,您不需要可视化矩形,因为它会为您完成。使用M-x find-library RET cua-base RET 并在评论中查找“CUA 矩形支持”。
    • 是的,当然。 CUA-rectangle 提供了比此功能更直观的 UI。如果您是 Emacs 新手,那绝对是起点。
    【解决方案2】:

    cua-mode 正好提供了这种功能。您可以在.emacs 中使用以下内容打开它:

    (setq cua-enable-cua-keys nil)
    (cua-mode)
    

    第一行是防止cua-mode 用Windows 风格的东西(C-c 用于复制,C-x 用于剪切等)替换一堆标准键盘快捷键所必需的。

    一旦您进入cua-modeC-enter 将打开可视矩形,然后您可以使用移动键(箭头、C-nC-f 等)扩展它以覆盖您想要操作的文本.在此过程中,点击enter 会将光标移动到矩形的边缘,并且您键入的任何内容都会插入到与光标同一侧的矩形之外。插入与矩形的大小相匹配,因此如果您想一次将相同的文本添加到一堆行的开头(或中间或结尾),这是最快的方法。

    如果你禁用了 cua 键绑定,那么C-w 将杀死矩形的内容。

    很遗憾,cua-mode 的矩形位不在自己的模式下,因为很多不想要 cua-mode 绑定的人没有意识到该模式也有这个非常酷的功能!

    【讨论】:

      【解决方案3】:

      我认为emacs rectangle feature 将是一个解决方案

      【讨论】:

        【解决方案4】:

        听起来 Vimpulse 可能是您需要的:

        http://www.emacswiki.org/emacs/vimpulse.el

        Vimpulse 模拟 Vim 最流行的功能,例如可视模式 和文本对象。 Vimpulse 是对 Viper 的一组修改, 模拟 vi 的标准库。 Vimpulse 不是次要模式; 加载后,Viper 将开始工作 类似 Vim 的方式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-28
          • 1970-01-01
          • 1970-01-01
          • 2017-01-24
          • 2011-03-21
          • 1970-01-01
          • 2015-01-23
          • 2012-07-13
          相关资源
          最近更新 更多