ZSH-правильный вход/выход оболочки внутри Vim / MacVim

этот вопрос об использовании MacVim и ЗШ on Mac OS X.

Я использую оболочку ZSH, и она настроена на использование цветной подсказки, и все хорошо работает с самим ZSH.

однако, когда я установил эту оболочку по умолчанию с Vim (usin:set shell=zsh -li), ВИМ дает мне следующие символы при вводе или выводе текста:

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

в то время как он должен просто сказать:

nikhgupta at MacbookPro in ~

Когда Я ввод текста, я получаю те же странные символы, вероятно, потому, что я использую подсветку синтаксиса на лету для моей оболочки ZSH. Я пришел к выводу, что эти символы являются цветовыми кодами?

может кто-нибудь помочь мне в том, как отбросить эти цветовые коды и просто вывести текст в Vim shell?

в отношении

1 ответов


когда вы :shell от MacVim, значение $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\[3[32m\]\w\n\[3[1;31m\]\[3[1;36m\]\u\[3[0m\] $ \[3[0m\]"
fi