当在Vim/Neovim的插入模式下从寄存器插入代码时,它不会自动使用外部术语括号粘贴(Vim)/括号粘贴模式(Neovim)。
例如,如果我在demo.js
文件中存储了这个函数:
function x() {
// comment
alert("hey");
}
然后用i<c-r>"
在插入模式下粘贴它,它会被弄乱:
function x() {
// comment
// alert("hey");
// }
//
而在插入模式下从系统剪贴板粘贴相同的代码片段(即使用Ctrl+Shift+v)可以很好地工作,这是因为有括号粘贴功能。
我知道我可以在粘贴之前使用:set paste
。但是之后我要么必须离开插入模式,要么-当Map到一个键时-按下一个键以启用粘贴模式。
有没有办法自动化呢?
2条答案
按热度按时间y1aodyip1#
:h <c-r>
确实声明了以下内容:插入的文本与键入的文本相同,但不使用Map和缩写。
所以,它不会触发任何粘贴命令或回调或任何东西。它只是一种自动输入文本的方式。
像这样的问题的答案总是一样的:离开插入模式。Vim是基于模式的,这是Vim强大的基础。插入模式不是专门用来粘贴东西的(尽管我喜欢
<c-r>
)。有很多东西你不能在插入模式下粘贴。6jjcrrmo2#
我试过用下面的Map在插入模式下粘贴系统剪贴板。到目前为止,它似乎做了我想要的。