这个问题是关于在 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中输出文字吗?
此致
答案 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