2011-09-02 18 views
7

Lo que estoy buscando es una ventana diferente a la actual que contiene el resultado de un comando en el mismo buffer. Entonces puedo ejecutar:Cómo mantener una ventana de salida de comando en vim

:!php % 

Y vea la salida en una ventana partida inferior. Eso se ve comúnmente en la mayoría de los editores gráficos que he usado.

Notas:

    No
  1. la ventana actual. No desea tener que volver a
  2. No crear un nuevo búfer cada vez. (tiene que volver a utilizar el búfer de "salida")
  3. No quiero eso en un registro, quiero poder ver el resultado de inmediato.

El flujo sería:

  1. abierto vim -S sesión ...
  2. Editar un archivo
  3. ejecutar un simple comando de tipo maquillaje
  4. mirada a la salida del comando de la producción ventana

sin teniendo cientos de nuevos buffers y tener que cambiar entre ventanas.

Lo que he intentado hasta ahora no es satisfactorio ... enviar salida a un archivo, activar la lectura automática, abrir un búfer en ese archivo. Eso funciona, pero tengo que activar la lectura automática para todos los archivos ... un poco molesto. ¿Hay alguna manera de convertir autoread para un único búfer/archivo?

Gracias por su ayuda.

Respuesta

8

Parece que está buscando la ventana "quickfix" de Vim. Que haría uso de 'makeprg', :make y :copen, así:

:set makeprg=php\ % 
:make 
:copen 

Además, puede utilizar la opción 'errorformat' para entregar el cursor a la primera línea contiene un error.

:set errorformat=%m\ in\ %f\ on\ line\ %l 

Y para la velocidad, tengo F5 asigna a make:

:nnoremap <F5> :<C-U>make<CR> 
+1

Tenga en cuenta que (al igual que cualquier otra invocación del comando externo en vim), este se ejecuta el comando de forma sincrónica es decir vim bloques hasta que el comando tiene terminado. – kynan

Cuestiones relacionadas