【问题标题】:How can I copy from the browser and paste to vim without unicode problems如何在没有 unicode 问题的情况下从浏览器复制并粘贴到 vim
【发布时间】:2012-08-22 09:26:22
【问题描述】:

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

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

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

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


更新:对于那些寻找类似解决方案的人,我没有找到通用工具。但我确实找到了this SO question related to the same solution

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

【问题讨论】:

  • 我已经分叉了一个不需要set encoding=utf-8 的替代实现。我的搜索是十六进制值,而不是 unicode 值。否则完全一样。 github.com/ryanvbissell/vim-asciiplz

标签: vim ascii non-ascii-characters


【解决方案1】:

只需设置 Vim 以使用 UTF-8:

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

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

【讨论】:

    【解决方案2】:

    更新:对于那些寻找类似解决方案的人,我没有找到通用工具。但我确实找到了this SO question related to the same solution

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

    【讨论】:

    • 只有当我将 set termencoding=utf-8set encoding=utf-8 放入我的 .vimrc 文件时,您的脚本才能工作。如果我愿意这样做,那么我个人就不需要你的脚本了。这并不意味着您的脚本对其他人没有用,但我建议至少更新您的 README 以提及这一点。
    【解决方案3】:

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

    【讨论】:

    • 啊,也许这就是我要找的。我去看看。
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 2021-12-13
      • 2012-07-14
      • 1970-01-01
      相关资源
      最近更新 更多