在 Vim 中与剪贴板粘贴作斗争

Struggling with clipboard pasting in Vim

我在 Windows 10 命令行终端上使用 Neovim 0.5 运行。

当我从 Microsoft Excel 或 Libreoffice Calc 中的单元格复制值时,例如“WORD”,它在“+”寄存器中显示为“WORD^J”。问题是,当我使用“+p”或“+P”将此值粘贴到 Neovim 时,插入的文本总是跳转到我光标所在的行。

我认为 ^J character/symbol 是电子表格或 Windows 程序出于某种原因使用的某种新行符号,但我不能确定,因为似乎有根据我花在谷歌上的时间,关于它的信息很少。

我只想将文本粘贴到光标所在的位置。我已尝试将以下内容添加到我的 vimrc(以及其他各种代码行),但无法成功删除不需要的“^J”符号。此替换适用于常规字母,但不适用于“^J”。

有谁知道这个符号是什么以及如何在粘贴到 vim 之前从 "+ 寄存器中删除它?

删除符号后,我可以更新下面的映射以简单地粘贴 "+ 寄存器的新内容。

nnoremap <C-v> :let @+ = substitute(@+, '^J', '', 'g') 

谢谢。

你是对的^J符号是换行的。

您可以使用以下方法解决您的问题:

:noremap <C-v> :let @+ = substitute(@+, "\n", "", "g")<CR>"+p

这会修改 + 寄存器以删除新行符号并粘贴它。