【问题标题】:How can I avoid terminal messages screwing up vim?如何避免终端消息搞砸 vim?
【发布时间】:2017-02-22 14:57:53
【问题描述】:

有时我在 TTY1/2/etc 中使用 vim。我遇到了这个问题。诸如以下的消息不断涌入我的终端:

[ 1050.29303] wlp3s0: failed to set TX queue parameters for AC 2
[ 1059.29340] wlp3s0: failed to set TX queue parameters for AC 2
[ 1020.12309] wlp3s0: failed to set TX queue parameters for AC 2
[ 1029.12899] something_else: some other logging message here
[ 1292.21300] yet_another_thing: hey look a distraction

这可能非常具有破坏性,尤其是当我使用 vim 工作时,有时甚至会导致我在不知不觉中搞砸了我的文本。有没有办法消除这样的消息,至少在使用 vim 时?使用:redraw、编辑乱七八糟的行等似乎不会让消息消失。

【问题讨论】:

  • 这与 Vim 无关。您应该考虑在Unix & Linux 上提问。
  • @SatoKatsura 我知道问题不在于 vim,但我想知道 vim 是否有办法在出现此类消息时自动清除屏幕,或者至少 一些的方法让我在这些出现时清除屏幕。
  • 从 Vim 中,您应该能够使用 Ctrl-L 强制重绘。 :redraw 做别的事情。
  • 由于某种原因它似乎不起作用。但是,使用 :!clear 刚刚有效,所以我可能不得不坚持下去。
  • 那么,不让klogd 消息与 Vim 发生冲突而不是手动清理它们不是有意义吗?

标签: linux vim terminal tty


【解决方案1】:

您的行示例看起来像内核消息。

您可以通过在终端中输入来关闭 dmesg 消息的输出

sudo dmesg -D

这是一个临时解决方案,在系统重新启动之前将一直有效。要永久禁用编辑/etc/sysctl.conf 文件以设置kernel.printk 参数。

kernel.printk = 1 4 1 3

我将第一个数字设置为 1,因为第三个数字是 1。阅读有关 kernel.printkklogctl(3) 的更多信息{请参阅 SYSLOG_ACTION_CONSOLE_OFF 命令的说明}

【讨论】:

    【解决方案2】:

    您可以将输出重定向到 sh 脚本中的文件。 在 bash 中,这将使用重定向运算符 >。 如果您要摆脱的是标准输出,则重定向箭头默认为该输出。如果输出为错误输出,则为文件描述符 2,因此操作数为 2>

    例如,如果我打算在使用 vim 的同时在后台运行 python 脚本,我可以像这样运行脚本

    $ python3 script.py >stdoutput.txt 2>errors.txt

    【讨论】:

    • 不幸的是,文本不是我在后台运行的脚本,而是系统日志/错误输出,所以这不是一个选项。
    • 你知道为什么你的终端会弹出系统日志信息吗?
    • 对不起,我应该仔细阅读你的问题,我现在不明白
    猜你喜欢
    • 1970-01-01
    • 2019-09-03
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    相关资源
    最近更新 更多