如何像 Sublime 一样在 vim 中跨多行复制引号内的文本,然后粘贴
How to copy text within quotes across multiple lines in vim like Sublime, and then paste it
我一直在做一些挖掘,但似乎无法找到一种方法来实现与 Sublime 的多行非常相似的功能-select 下面的 giphy 演示了:
- 复制双引号内的所有文本(所以假设类似
yi"
)
- 跨多行执行此操作
- 粘贴所有寄存器?或者更好的是,所有内容从单个寄存器到新缓冲区
- 在粘贴文本的每一行添加冒号(变成符号)
- 转到每行的末尾并添加一个逗号
我认为视觉 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
我一直在做一些挖掘,但似乎无法找到一种方法来实现与 Sublime 的多行非常相似的功能-select 下面的 giphy 演示了:
- 复制双引号内的所有文本(所以假设类似
yi"
) - 跨多行执行此操作
- 粘贴所有寄存器?或者更好的是,所有内容从单个寄存器到新缓冲区
- 在粘贴文本的每一行添加冒号(变成符号)
- 转到每行的末尾并添加一个逗号
我认为视觉 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