在Windows下将Unicode粘贴到Vim中的问题

3

我刚开始使用Vim并遇到了一个关于Unicode的奇怪问题。

我在Windows上运行,使用PowerShell编辑器。Powershell似乎不是问题所在,因为我可以将相关文本粘贴到命令提示符中而不会出现扭曲。

最初,我在所有地方都遇到了Unicode问题,但在将以下内容添加到我的vimrc文件后:

set encoding=utf-8

除了粘贴Unicode文本之外,所有的操作都能正常进行。目前我通过将文本粘贴到Notepad++中并在那里保存,然后重新加载到vim中来解决这个问题。我在vim中使用的粘贴方法是进入插入模式并右击。编辑:我刚刚尝试使用备用的shift+Insert从剪贴板中粘贴的方式,但似乎根本不起作用。
我还尝试按照此处建议的vimrc配置,但没有帮助。
编辑:刚刚意识到我在将引号(单引号或双引号)粘贴到vim时也遇到了问题...虽然可能它们是一些疯狂的字符,因为它们是从Outlook中输出的。
如果您有任何指导意见,那将非常有用。

在你的vimrc文件中,你有写上behave mswin吗?(同时查看behave和mswin的帮助条目)? - Patrick Bacon
@Patrick,不是的,我刚刚看了你建议的文档,似乎那里面都是关于鼠标的。你认为它会对这里有所帮助吗? - JonnyRaa
好的,调用 mswin.vim 插件的命令 (source $VIMRUNTIME\mswin.vim) 而不是 behave mswin 将执行剪贴板寄存器和 <C-V> (以及其他 MS 剪贴板功能) 之间的映射。你的解决方案从 Vim 的角度解决了这个问题。 - Patrick Bacon
@Patrick 是的,我正在抵制开始映射自己的快捷方式的诱惑 - 还在学习基础知识。 - JonnyRaa
1个回答

3
我找到了一个解决方法:
使用"*p粘贴,出于某种原因它可以正常工作...在插入模式下也是如此,C-r *也是如此。
这两个命令都是在说将寄存器*中的内容粘贴进来,该寄存器是系统剪贴板寄存器。
我尝试使用cmd而不是powershell,因为在cmd中没有右键单击粘贴的选项,所以我发现了这一点。
我已经检查过,在powershell中也可以使用这种粘贴方法。
故事的寓意是-使用内置的vim功能而不是在powershell中右键单击粘贴。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接