VIM中的多个选择

Mar*_*cin 60 vim selection

是否可以在VIM的可视模式中选择多个非连续的行(或部分)?如果是这样,怎么样?

sou*_*rge 65

不,没有插件,这是不可能的.

但是,如果可以解决您的问题,您可以将多行复制到同一个缓冲区中.

  • 启动'累积缓冲区':
    • 标记要在可视模式下复制的部分,
    • 使用下一个命令按下"a以对缓冲区进行操作a
    • 像往常一样猛拉它(y).
  • 要添加到该缓冲区:
    • 标记下一节和
    • "A (大写缓冲区名称意味着"不要覆盖缓冲区,而是附加到缓冲区")
    • 并再次使用y.
  • 然后,您可以粘贴累计缓冲区a使用在任何时间"ap.

  • 提示:再次清空累积的缓冲区`a`,输入`:let @a =''` (3认同)
  • 我希望我能接受两个回复.这也很好.谢谢. (2认同)

Mic*_*lon 27

您必须安装multiselect插件才能获得此功能.在这里找到它:http://www.vim.org/scripts/script.php?script_id = 953

  • 对于那些不打扰阅读所有答案的人来说,下面是一个更新,更崇高的插件链接.http://stackoverflow.com/a/16568663/608155 (3认同)

Ste*_* Lu 24

这个插件是一个更新的答案.

(免责声明:我个人实际上并没有使用它,它干扰了我的其他vim设置太多.如果你的vim相对干净而且你正在从崇高中移动,这肯定是你的一杯茶.)

我还想指出vim(q密钥)的记录/重放功能.通常记录也是不必要的,我可以通过迭代地执行通常用sublime的多选进行的任务(例如搜索某些东西,在它的第一个实例上执行修复,然后通过按下nN移动来实现后续重复周围并.重复编辑操作).

我有我的,逗号键nnoremap"d来@q,这个重复是按记录顺序qq(记录到q寄存器).