Como posso manter a cor quando executo o comando externo no vim?


12

Por exemplo, o comando ls --colorexibe resultados coloridos ao ser executado no shell. No entanto, quando ligo :!ls --colorpara 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).


2
Funciona bem aqui.
Ignacio Vazquez-Abrams

2
"Esta é uma pergunta sobre o próprio VIM ..."
Ignacio Vazquez-Abrams

2
e vim é uma das "ferramentas de software comumente usados por programadores" ...

1
Então é o email. Não significa necessariamente "como eu Thunderbird" está no tópico aqui.
Ignacio Vazquez-Abrams

2
O Vim possui ctags, recuo e suporte muito mais direto à programação. O email faz o que diretamente para programação?
Jens

Respostas:


5

CLI Vim ou GUI Vim?

Você não pode mostrar a saída :!lsou :!ls --colorou 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 .


1
Gostaria de sugerir algo como tmux ou tela também.
Lucapette

Sim, de fato. Mas o solicitante insistiu que é uma pergunta sobre o próprio Vim. Tmux é ótimo. Conectar-se a um servidor remoto via SSH e usar um Vim bem configurado no tmux / screen é uma experiência surpreendentemente agradável. Perfeito para entrar na zona e ficar lá.
Romainl 17/07/2012

@romainl obrigado por sua resposta incrível. Usei o gVim e assumi falsamente que o CLI vim também não pode exibir cores ... Em algumas tentativas, descobri que a cor é exibida corretamente no meu CLI vim.
18712 CMinus

1

Você pode :set shellcmdflag=-icfazer o shell se comportar interativamente, como seu prompt de comando.


1

Você pode fazer uma função em .bashrc:

function ls { /bin/ls --color=always; }
export -f ls

Desculpe pelo erro de digitação, mas não estou perguntando como exibir cores com o comando "ls" - estou curioso sobre como manter a cor ao executar comandos externos com o vim. Eu apenas usei "ls" como exemplo.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.