¿Cómo puedo mantener el color cuando ejecuto el comando externo dentro de vim?


12

Por ejemplo, para el comando ls --colormuestra resultados coloridos cuando se ejecuta en el shell. Sin embargo, cuando llamo :!ls --colordentro de vim, toda la información de color desaparece.

¿Qué debo hacer para mantener el color al llamar a un comando externo dentro de vim?

EDITAR: Para aclarar mi pregunta , esta es una pregunta sobre VIM en sí, NO estoy preguntando cómo habilitar el color de "ls". Lo que quiero saber es, en general, cómo habilitar la visualización de resultados coloridos de TODOS los comandos de shell (siempre que tengan resultados coloridos).


2
Funciona bien aquí.
Ignacio Vazquez-Abrams

2
"Esta es una pregunta sobre VIM en sí ..."
Ignacio Vázquez-Abrams

2
y vim es una de las "herramientas de software comúnmente utilizadas por los programadores" ...

1
Así es el correo electrónico. No necesariamente significa "cómo hago Thunderbird" está en el tema aquí.
Ignacio Vazquez-Abrams

2
Vim tiene ctags, sangría y mucho más soporte directo para la programación. ¿El correo electrónico hace qué directamente para la programación?
Jens

Respuestas:


5

CLI Vim o GUI Vim?

No puede mostrar la salida de :!lso :!ls --colorcualquier otro comando externo en CLI Vim en sí porque tiene un solo subproceso: Vim se suspende y $ ls --colorse ejecuta en su shell. No hay forma de evitar eso. Bueno, puede colocar la salida de comandos externos en el búfer actual, pero eso no es lo mismo.

En GUI Vim, solo puede obtener un pseudo-shell que no puede mostrar ningún color. No hay forma de evitar eso tampoco.

Si necesita desesperadamente resultados en color de comandos externos, debe iniciar un emulador de terminal externo con algo parecido :!xterm & o usar un complemento como Conque Shell .


1
Sugeriría algo como tmux o screen también.
lucapette

Si, de hecho. Pero el autor de la pregunta insistió en que se trata de Vim. Tmux es genial. Iniciar sesión en un servidor remoto a través de SSH y usar un Vim bien configurado dentro de tmux / screen es una experiencia sorprendentemente agradable. Perfecto para entrar en la zona y quedarse allí.
romainl

@romainl gracias por tu increíble respuesta. Utilicé gVim y supuse falsamente que CLI vim tampoco puede mostrar el color ... Con algunas pruebas encontré que el color se muestra correctamente en mi CLI vim.
CMinus

1

Puede :set shellcmdflag=-ichacer que el shell se comporte de forma interactiva, como su símbolo del sistema.


1

Puedes hacer una función en .bashrc:

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

Perdón por el error tipográfico, pero no estoy preguntando cómo mostrar el color con el comando "ls". Tengo curiosidad acerca de cómo retener el color al ejecutar los comandos externos con vim. Acabo de usar "ls" como ejemplo.
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.