【问题标题】:How to fix a broken error message in MacVim?如何修复 MacVim 中损坏的错误消息?
【发布时间】:2021-04-19 12:18:04
【问题描述】:

我在使用命令 :!ruby % 时收到一条损坏的错误消息。

puts 'Hello world'
lfd

我得到了什么:

Hello world
[1mTraceback[m (most recent call last):
Documents/Ruby/stack.rb:2:in `<main>': [1mundefined local variable
or method `lfd' for main:Object ([1;4mNameError[m[1m)[m

shell returned 1

我想得到什么(所以它通过终端工作):

Hello world
Traceback (most recent call last):
stack.rb:2:in `<main>': undefined local variable
or method `lfd' for main:Object (NameError)

我知道 Ruby 不明白 lfd 是什么。我的意思是,有些词在这里显示不正确。我在屏幕截图中突出显示了红色和绿色的差异。

我得到了什么:

我使用 MacVim 8.2

我想得到什么(终端):

【问题讨论】:

  • 请将您的所有输出放入问题中。如果文件不再存在,则链接到图像对其他人没有帮助。

标签: vim macvim


【解决方案1】:

看来问题不在vim。 Ruby 不明白 lfd 是什么。而puts 'Hello world' 实现了。

【讨论】:

  • 是的,我知道,这个错误是故意的。我更新了问题以使其更清楚。
【解决方案2】:

这些是 ANSI 转义序列,通常用于样式化输出。

在 MacVim GUI 中,:!&lt;external program&gt; 在不支持 ANSI 转义序列的“哑壳”中执行。这意味着:

  • 在这种环境下对文本进行风格化的所有尝试都注定要失败,
  • 程序要么有一个开关来禁用颜色,要么它知道何时执行此操作。

也就是说,$ ruby filename 不应该在一开始就在其输出中使用样式,因此您应该首先调查为什么它会为您这样做。

【讨论】:

    猜你喜欢
    • 2011-08-10
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 2018-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多