Par exemple, la commande ls --color
affiche des résultats colorés lors de son exécution dans le shell. Cependant, lorsque j'appelle à l' :!ls --color
intérieur de vim, toutes les informations de couleur ont disparu.
Que dois-je faire pour conserver la couleur lors de l'appel d'une commande externe dans vim?
EDIT: Pour clarifier ma question , c'est une question sur VIM lui-même, je ne demande pas réellement comment activer la couleur de "ls". Ce que je veux savoir, c'est généralement comment activer l'affichage des résultats colorés de TOUTES les commandes shell (tant qu'ils ont des résultats colorés).
Réponses:
CLI Vim ou GUI Vim?
Vous ne pouvez pas afficher la sortie de
:!ls
ou:!ls --color
ou de toute autre commande externe dans CLI Vim elle-même car elle est à thread unique: Vim est suspendu et$ ls --color
est exécuté dans votre shell. Il n'y a aucun moyen de contourner cela. Eh bien, vous pouvez placer la sortie des commandes externes dans le tampon actuel, mais ce n'est pas la même chose.Dans GUI Vim, vous ne pouvez obtenir qu'un pseudo-shell totalement incapable d'afficher les couleurs. Il n'y a aucun moyen de contourner cela non plus.
Si vous avez désespérément besoin d'une sortie colorée à partir de commandes externes, vous devez lancer un émulateur de terminal externe avec quelque chose comme
:!xterm &
ou utiliser un plugin comme Conque Shell .la source
Vous pouvez
:set shellcmdflag=-ic
faire en sorte que le shell se comporte de manière interactive, comme votre invite de commande.la source
Vous pouvez créer une fonction dans
.bashrc
:la source