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