【问题标题】:ZSH - Correct Shell input/output inside Vim / MacVimZSH - 在 Vim / MacVim 中正确的 Shell 输入/输出
【发布时间】:2012-10-17 20:24:43
【问题描述】:

这个问题是关于在 Mac OS X 上使用 MacVimZSH

我正在使用 ZSH shell,它被配置为使用彩色提示符,并且一切都与 ZSH 本身配合得很好。

但是,当我使用 Vim 将这个 shell 设置为我的默认值时(使用:set shell=zsh\ -li),vim 在输入或输出文本时会给我以下符号:

[35mnikhgupta[00m at [[33mMacbookPro[00m in [01;32m~[00m [00m

虽然它应该简单地说:

nikhgupta at MacbookPro in ~

当我输入一些文本时,我得到了相同的奇怪符号,可能是因为我正在为我的 ZSH shell 使用动态语法突出显示。我推断这些符号是颜色代码?

有人可以帮我解决如何丢弃这些颜色代码并在 Vim shell 中简单地输出文本吗?

问候

【问题讨论】:

  • 你的目标是使用彩色语法高亮 inside Vim 吗?
  • no.. 相反,我想删除 Vim 中 shell 命令 (:sh) 的所有彩色语法(存在于我的登录 ZSH shell 中)。
  • GUI Vim (MacVim) 还是 CLI Vim?在 GUI Vim 中没有办法做到这一点,它没有能够显示颜色的内置 shell,也没有理由在 CLI Vim 中中断。
  • @romainl:MacVim。 CLI Vim 只是将我(或至少让我感觉如此)带到我的终端,这是完美的。 MacVim 会出现上述问题。我们可以在 MacVim 中以某种方式禁用颜色吗?
  • 查看此链接,了解有关在从 Vim 调用时在 rc 文件 中条件执行命令的一些讨论:github.com/carlhuda/janus/pull/229 请参阅线程底部 eMxyzptlk 的帖子。 .

标签: vim zsh macvim


【解决方案1】:

当您从 MacVim 执行 :shell 时,$TERM 的值设置为 dumb。您可以使用它来相应地设置您的 ZSH 环境。

不过,我不熟悉zsh,因此您将自己编写正确的条件块。在bash 中,它看起来像这样:

if [ $TERM == 'dumb' ];
  then
    echo 'Special setup for MacVim'
fi

实际上,这个问题困扰了我一段时间,所以我只是写了这个供我自己使用(bash):

if [ $TERM == 'dumb' ];
  then
    # no colors
    export PS1="\n\w\n\u $ "
  else
    # colors
    export PS1="\n\[\033[32m\]\w\n\[\033[1;31m\]\[\033[1;36m\]\u\[\033[0m\] $ \[\033[0m\]"
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2018-11-19
    • 1970-01-01
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多