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

Sto*_*oic 8 vim zsh macvim

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

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

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

[35mnikhgupta[00m at [[33mMacbookPro[00m in [01;32m~[00m [00m
Run Code Online (Sandbox Code Playgroud)

虽然它应该简单地说:

nikhgupta at MacbookPro in ~
Run Code Online (Sandbox Code Playgroud)

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

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

问候

rom*_*inl 2

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

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

if [ $TERM == 'dumb' ];
  then
    echo 'Special setup for MacVim'
fi
Run Code Online (Sandbox Code Playgroud)

实际上,这个问题困扰了我一段时间,所以我只是写了这个供我自己使用(在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
Run Code Online (Sandbox Code Playgroud)