3

这一直发生在我身上:我从富文本屏幕(通常是浏览器)复制一些内容,然后将其粘贴到 vim 中。通常它是一个代码块,然后当我去编译或运行或者你有什么时,我会得到各种集市错误。

我挠了挠头,然后花了半个小时试图找出问题所在,然后才意识到我复制了一些非 ASCII 字符:破折号、左右引号、长下划线、乘号代替 x 等。

所以我问你:我怎样才能将非 ASCII 复制到我的 VIM 会话中而不会出错?

是否有自动将 unicode 'down samples' 为 ASCII 的粘贴模式?是否对文件中的非 ASCII 字符进行快速/脏搜索?


更新:对于那些寻找类似解决方案的人,我没有找到通用工具。但我确实发现这个 SO question 与相同的解决方案有关

如果您是 Vim 用户,那么您很幸运:我编写了一个通用函数并将其作为一个名为vim-utf2ascii的插件发布到 github 。

4

4 回答 4

2

Update: For those looking for a similar solution, I didn't find a common tool. But I did find this SO question related to the same solution.

If you're a Vim user, you're in luck: I've written a generic function and posted it to github as a plugin called vim-utf2ascii.

于 2013-06-26T04:04:11.430 回答
2

只需将 Vim 设置为使用 UTF-8:

set termencoding=utf-8
set encoding=utf-8

还要确保您复制的是真实代码:一些著名的博客系统喜欢将直引号转换为弯引号,并对代码进行各种排版操作。为避免这种陷阱,请尽可能尝试从源代码复制或在某处寻找“原始”按钮。

于 2012-08-27T21:30:06.853 回答
1

有一个名为demoronizer的脚本可以(除其他外)将所有这些智能引号和连字符替换为 ASCII 等效项。所以你可以通过它过滤你的文本。

于 2012-08-28T07:43:34.730 回答
0

正如@Romaonl 所说,首先设置termencoding 并将编码设置为utf-8。

在浏览器中复制文本后,切换到 vim 并输入"+p

于 2012-08-28T08:21:56.770 回答