如何像 Sublime 一样在 vim 中跨多行复制引号内的文本,然后粘贴

How to copy text within quotes across multiple lines in vim like Sublime, and then paste it

我一直在做一些挖掘,但似乎无法找到一种方法来实现与 Sublime 的多行非常相似的功能-select 下面的 giphy 演示了:

  1. 复制双引号内的所有文本(所以假设类似 yi")
  2. 跨多行执行此操作
  3. 粘贴所有寄存器?或者更好的是,所有内容从单个寄存器到新缓冲区
  4. 在粘贴文本的每一行添加冒号(变成符号)
  5. 转到每行的末尾并添加一个逗号

我认为视觉 selection 和 运行 norm yi" 可以做到,但它只捕获视觉 selection 的最后一行。

您可以在 Vim...

中完成这些操作
  • 多行引号内的抽取

    录制宏(:let @a=''<cr>qq"Ayiw:let @A="\n"<cr>j")

    使用宏(n@q)

  • 正在将 a 粘贴到新缓冲区 (:tabnew<cr>"ap)

  • 在多行的开头添加冒号(<c-v>njI:<esc>)

  • 多行末尾加逗号(<c-v>nj$A,<esc>)

映射和函数也可以减少事物的击键次数。

例如nnoremap <leader>b :tabnew<cr>p