问题 如何将非ASCII字符粘贴到vim中?


我的终端仿真器配置为Unicode字符编码,我的.vimrc包含该行

set encoding=utf-8

但是当我尝试将“café”这个词粘贴到vim中时,它就像“cafÔ一样。

我可以通过键入Ctrl-vu然后输入4个字符的代码点(00e9)在vim中创建一个“é”,但我希望能够粘贴它。


10043
2017-11-15 15:11


起源

听起来它不是真正的UTF-8 - Pekka 웃
我同意佩卡;您的系统详细信息可能与此相关。我可以粘贴那么好的东西。 - Cascabel
你可以将它粘贴到同一个终端而不运行vim,即它是否在(bash)提示符中正确显示? - catchmeifyoutry
是的,我可以正确地将字符粘贴到我的shell(bash)和其他unix实用程序中。我尝试删除我的.vimrc以查看是否可以解决问题,但事实并非如此。我的完整.vimrc文件在这里在线: github.com/sferik/dotfiles/raw/master/vimrc - sferik
系统详细信息:MacBook Pro运行Mac OS X 10.6.5和Xcode 3.2.4。我正在使用内置的Terminal.app程序。你还想知道什么? - sferik


答案:


解决方案是取消选中Terminal.app设置的“高级”选项卡中的“Escape non-ASCII input”复选框。


12
2017-11-19 16:47



很高兴知道,你应该接受这个答案。 - Nick Knowlson


  1. 你想从哪里粘贴它?如果它是opera,那么因为opera-10.5 * paste在两个方向都被破坏了。在粘贴任何你需要使用的东西之前 xclip -o|xclip -i 解决方法(添加 -sel clip 用于剪贴板)。
  2. 你用什么命令?

1
2017-11-15 16:26



我正在尝试使用Mac上的Command-V将粘贴板中的文本粘贴到vim中。 - sferik


您可以使用vim的有向图功能将其添加到文件中,而不是从剪贴板复制字符并将其粘贴到文本编辑器中。

因此,使用默认设置,使用您的示例,您可以进入插入模式,然后按Control-k,然后键入e'。结果将是é。

您可以通过运行查看已定义的有向图列表

:有向图

并通过运行一般帮助

:帮助有向图

这也解释了如何自定义映射。

如果你真的设置粘贴字符,Shift-Insert一直对我有用。


1
2017-11-15 17:35



有关如何在Apple键盘上执行等效Shift-Insert(没有插入键)的任何提示? - sferik


如何在vi中键入非ASCII代码

您必须知道输入正确代码的编码是什么,我假设您将VI保留为默认值。

在VI中,进入插入模式,在插入模式下,按 

Ctrl-v 172

那应该插入这里定义的逻辑非(侧向和反向L)字符:

http://www.htmlhelp.com/reference/charset/iso160-191.html


1
2017-11-01 15:02