Por exemplo, o comando ls --color
exibe resultados coloridos ao ser executado no shell. No entanto, quando ligo :!ls --color
para o vim, todas as informações de cores desaparecem.
O que devo fazer para manter a cor ao chamar um comando externo dentro do vim?
EDIT: Para esclarecer minha pergunta , esta é uma pergunta sobre o próprio VIM , na verdade não estou perguntando como ativar a cor do "ls". O que eu quero saber é, geralmente como habilitar a exibição de resultados coloridos de TODOS os comandos do shell (desde que tenham resultados coloridos).
Respostas:
CLI Vim ou GUI Vim?
Você não pode mostrar a saída
:!ls
ou:!ls --color
ou qualquer outro comando externo em si CLI Vim porque de rosca única: Vim é suspenso e$ ls --color
é executado em sua concha. Não há maneira de contornar isso. Bem, você pode colocar a saída de comandos externos no buffer atual, mas isso não é a mesma coisa.Na GUI Vim, você só pode obter um pseudo-shell totalmente incapaz de mostrar cores. Também não há maneira de contornar isso.
Se você precisa desesperadamente de saída colorida de comandos externos, é necessário iniciar um emulador de terminal externo com algo parecido
:!xterm &
ou usar um plug-in como o Conque Shell .fonte
Você pode
:set shellcmdflag=-ic
fazer o shell se comportar interativamente, como seu prompt de comando.fonte
Você pode fazer uma função em
.bashrc
:fonte