8

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

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

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

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

虽然它应该简单地说:

nikhgupta at MacbookPro in ~

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

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

问候

4

1 回答 1

2

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

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

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

实际上,这个问题困扰了我一段时间,所以我只是写了这个供我自己使用(in 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
于 2012-11-14T16:18:07.310 回答