2009-03-22 12 views
14

Duplicar posible:
How to run a terminal inside of vim?¿Cómo se puede hacer que una ventana VIM esté llena en la terminal?

puedo configurar mi espacio de trabajo muy bien con split y vsplit y abierto ... pero lo haría como simplemente usar una de las divisiones como terminal ventana. Sé que abrir un xterm adicional de y colocarlo estratégicamente podría ser capaz de lograr esto , pero muchas veces me operaron en una sola ventana y mis manos comienzan a doler desde alt tabulación entre terminales.

Actualización: Lo mejor que se me ocurrió con base en las sugerencias a continuación fue utilizar la pantalla y realmente tener vim ocupar una de sus ventanas.

+0

creo que deberías probar ConqueTerm. https://github.com/rson/vim-conque La pantalla es genial, pero ConqueTerm está muy bien implementado. (en mi opinión) –

Respuesta

13

Considere ejecutar Vim y un shell juntos en GNU Screen. El Vim wiki tiene información sobre cómo integrar Vim y Screen. La pantalla admite la división en "ventanas" similares a las de Vim. Consulte here para obtener un ejemplo de integración aún más ajustada de Vim + pantalla.

Tener un buffer Vim vinculado directamente a una aplicación de línea de comandos interactiva externa es una característica que muchos han deseado durante mucho tiempo, pero aparentemente es un poco difícil de hacer, debido a la implementación de Vim, y los desarrolladores de Vim son reacios para cambiar esto (por razones posiblemente buenas)

Pero ha habido algunas historias de éxito. La comunidad Lisp, en particular, ha tratado de reproducir el SLIME de Emacs (un prompt Lisp interactivo) en Vim. Vea VimClojure y Limp para ver ejemplos. Uno de ellos probablemente podría ser modificado para ejecutar un shell, pero tomaría algo de trabajo.

-3

Tendrás que renunciar a esto, me temo, no hay forma de hacerlo en vim.

+0

absolutamente falso :-) –

+0

Cada una de las otras 5 respuestas todas presentan soluciones razonables. – respectTheCode

3

Si está en vim, puede salir a un subconjunto con el comando ": sh", y luego volver a vim con "exit". O simplemente puede suspender vim y volver al shell original desde el que comenzó con control-Z, luego volver a vim con "fg" (primer plano).

O hay un complemento de "vim-shell" que puedes instalar.

2

Ampliando Brian Carper's answer, que podría lanzar esto en su ~/.screenrc:

startup_message off 
# Launch 2 screens on startup 
split 
# Have bash login so $PATH will be updated 
screen -t Vim bash -l -c 'vim' 0 
focus 
screen -t canvas bash -l 
# switch focus back to vim 
focus up 

A continuación, cuando se escribe screen, tendrá una ventana de Vim en la parte superior y una ventana bash en la parte inferior. Puede alternar entre ventanas de pantalla con <C-a><Tab>.

8

El parche vimshell suena como lo que estás buscando.

+0

Lo intenté pero no demasiado. No admite paquetes que no sean ncurses. –

+0

El enlace está muerto ahora, redirige a una página de índice en el mismo dominio. – SidOfc

14

que utilizo: http://code.google.com/p/conque/wiki/Usage

Puede escribir: dividir el nuevo y: ConqueTerm bash. Y tienes una ventana de terminal en funcionamiento. :)

+0

Esta fue la solución exacta con la que finalmente me satisfizo. Probé la solución de pantalla, la solución vimshell; pero mi preferencia personal final es ConqueTerm. –

2
+1

¡Esto es útil! Una cosa que no sé cómo hacer (mirando su captura de pantalla, lo está haciendo, pero con Python en lugar de Ruby) es que quiero ejecutar mi suite de prueba utilizando una utilidad existente cuando guardo un archivo. Funciona, pero si no estoy en INSERT MODE en esa ventana, no escribirá el STDOUT de la utilidad en el buffer así que tengo que ir a esa ventana cada vez y presionar 'i' para ver qué especificaciones fallaron . ¿Conoces una forma de obtener la ventana para escribir siempre el STDOUT de la utilidad en el búfer incluso cuando no está en INSERT MODE? ¡Aclamaciones! –

+1

Acabo de encontrar 'let g: ConqueTerm_ReadUnfocused = 1' que hace exactamente eso. Desafortunadamente, dice que debido a ciertas limitaciones de scripting con VIM, no permitirá desplazarse con la ventana en un estado no enfocado. Demasiado. : / –

Cuestiones relacionadas