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

13
我的终端仿真器已配置为Unicode字符编码,我的 .vimrc 文件包含以下行。
set encoding=utf-8

但是,当我试图将单词"café"粘贴到vim中时,它变成了"cafà ©"。

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


3
听起来好像不是真正的UTF-8编码。 - Pekka
1
我同意Pekka的观点;你系统的细节在这里可能是相关的。我可以很好地粘贴这样的东西。 - Cascabel
1
你能在不运行vim的情况下将其粘贴到同一终端吗?也就是说,它是否正确显示在(bash)提示符上? - catchmeifyoutry
是的,我可以正确地将字符粘贴到我的shell(bash)和其他Unix实用程序中。我尝试删除我的.vimrc文件以查看是否可以解决问题,但没有效果。我的完整.vimrc文件在这里在线上:https://github.com/sferik/dotfiles/raw/master/vimrc - sferik
系统详情:MacBook Pro 运行 Mac OS X 10.6.5,使用 Xcode 3.2.4。我正在使用内置的 Terminal.app 程序。您还想了解什么? - sferik
4个回答

14

解决方法是在Terminal.app设置的高级选项卡中取消勾选“转义非ASCII输入”复选框。


3

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

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

您可以通过运行以下命令查看定义的digraph列表:

:digraphs

并通过运行以下命令获取一般帮助:

:help digraph

它还解释了如何自定义映射。

如果您真的要粘贴字符,则Shift-Insert对我总是有效的。


有没有关于如何在苹果键盘上(没有插入键)执行相当于Shift-Insert的等效操作的提示? - sferik
在 MacVim 上,按 Command-v 可以在插入模式下粘贴。 - Michael

2
如何在vi中输入非ASCII代码
您需要知道您的编码才能输入正确的代码,我假设您将VI保留在默认设置。
在VI中进入插入模式,同时按下Ctrl-v 172。
这将插入逻辑非(侧向倾斜的倒L形)字符,定义如下:

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


1
  1. 你是从哪里尝试粘贴它的?如果是Opera浏览器,那么自Opera-10.5*版本以来,粘贴在双向上都存在问题。在粘贴任何内容之前,您需要使用xclip -o|xclip -i解决方法(对于剪贴板添加-sel clip)。
  2. 你使用什么命令?

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

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