【问题标题】:Getting rid of ANSI escape characters when viewing ri in (Mac)Vim在 (Mac)Vim 中查看 ri 时摆脱 ANSI 转义字符
【发布时间】:2011-06-11 13:10:22
【问题描述】:

我在 gvim 和 MacVim 中查看 ri 文档时遇到问题(在两者上都尝试过) 某些 ri 文档包含在终端窗口中查看时看起来不错的文本装饰,但在 gvim/MacVim 中查看时包含 ANSI 转义字符.例如,来自$ri class 的以下 ri sn-p 在终端中看起来像这样:

现在返回 obj 的类 优于 Object#type

这在 gvim 中:

返回 [4mobj[m, 现在优先于 [7mObject#type[m,] 的类,

如果能够在 gvim 中引用清晰的 ri 文档,那就太好了。关于从哪里着手解决此问题的任何想法?

【问题讨论】:

    标签: ruby vim special-characters macvim ri


    【解决方案1】:

    尝试像这样运行ri

    ri --format=rdoc
    

    AFAIK,rdoc 格式是纯文本,因此您不必过滤掉 ANSI 转义序列。

    您可能可以通过制作这样的 shell 脚本来获得“真正的”纯文本:

    ri --format=bs $@ | sed 's:.^H::g'
    

    ^H 是原始 Ctrl-H(或任何适合您的退格键),然后调用该 shell 脚本而不是 ri

    【讨论】:

    • 有趣的解决方案!它有点有效,但它用 ANSI 转义序列换取 html 标签。比如上面变成Returns the class of <em>Obj</em>, now preferred over <tt>Object#type</tt>...
    • 你可以试试--format=bs,它会使用老式的退格格式(将输出通过管道传送到cat -v,你会看到退格),这比ANSI更容易过滤转义序列。为什么纯文本没有--format=plain 是个谜。
    • 我认为这是最好的选择。烦人的是它在 ruby​​ 1.8 中曾经不是问题。似乎特定于1.9。此外,通过管道将输出传送到 col -b 会删除退格字符,并且比 sed 更简洁。
    • 不错的col -b,我想我已经忘记了大多数像这样的整洁的小shell脚本工具。
    • 有没有办法滚动输出?喜欢少/多做
    【解决方案2】:

    这两个脚本似乎是为了解决这个问题而编写的。它们似乎不是完美的解决方案。其中一个显然需要对 vi 的补丁,或者在某个时候这样做了。我不太清楚另一个人做了什么,但我认为它会在您使用特定命令时呈现您的窗口,解释代码。

    还有一些关于现有 vi 命令的建议。

    见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 2019-11-19
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多