ZSH - 在Vim / MacVim内校正Shell输入/输出

时间:2012-10-17 20:24:43

标签: vim zsh macvim

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

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

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

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

虽然它应该简单地说:

nikhgupta at MacbookPro in ~

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

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

此致

1 个答案:

答案 0 :(得分:2)

当您从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