2009-08-05 14 views

Respuesta

11

Para lograr lo que desea, debe abrir la ventana de corrección/error después de llamar a grep:

:copen 

Tengo un script que me sirve cada vez que uso grep.

+1

¿Cómo se hacen los archivos abiertos en una nueva pestaña en esa línea en particular? – Amjith

1

Si se obtiene una lista de archivos que puede navegar por ellas en forma de árbol a través de

:cn 
:colder 

Para obtener más información

:help grep 

y vaya a la parte inferior de la entrada

12

Para completar, así como el comando :copen, también hay :cw, que solo abre la ventana "quickfix" si hay entradas (por lo que si grep no tiene resultados, no aparecerá).

creo que la forma más fácil (sin definir un mapeo) de hacer que los archivos se abren en una nueva pestaña sería hacer:

:cw    " Open the quickfix window 
Ctrl-W T   " Switch the window into a new tab 
<ENTER>   " Open the file/line 

Alternativamente, se podría hacer:

:cw    " Open the quick fix window 
Ctrl-W <ENTER>  " Open the file/line in a new window 
Ctrl-W T   " Move the new window to a new tab 

Si desea hacerlo de manera predeterminada, probablemente podría usar BufEnter y BufLeave autocmds para crear y eliminar un mapeo al ingresar y salir de la ventana de revisión; sin embargo, esto probablemente no sea trivial.

:help :cw 
:help :copen 
:help quickfix 
1

Me encontré con este hilo en busca de una respuesta a una pregunta muy similar. La respuesta presentada anteriormente, aunque correcta, no describió una forma conveniente de abrir TODOS los archivos en la ventana de QuickFix a la vez ... en búferes o pestañas.

Parece que no hay que ser construido en un comando para hacerlo, pero es trivial como un plugin VIM ... alguien ha hecho aquí http://pastebin.com/J9RwciFQ

y dispone de 12 líneas de código (una función). .. pegado aquí para ahorrarle un clic durante su análisis. Siga el enlace pastebin si va a intentar implementar esto ... mi plugin está instalado en el directorio de patógenos y modifiqué ligeramente el plugin del original (detalles después del código).

~/.v/b/v/p/quickfixopenall.vim 
" Create command 
command! QuickFixOpenAll :call StartQuickFixOpenAll() 

function! StartQuickFixOpenAll() 
    if empty(getqflist()) 
     return 
    endif 
    let s:prev_val = "" 
    for d in getqflist() 
     let s:curr_val = bufname(d.bufnr) 
     if (s:curr_val != s:prev_val) 
      exec "edit " . s:curr_val 
     endif 
     let s:prev_val = s:curr_val 
    endfor 
endfunction 

Así que una vez que tenga un resultado grep estoy satisfecho con el plugin ... tiene una función: QuickFixOpenAll ... tuve que modificar el plugin como dado (añadido la siguiente línea a la quickfixplugin.vim) Y me llamó a su función dada StartQuickFixOpenAll ...

" Create command 
command! QuickFixOpenAll :call StartQuickFixOpenAll() 

Entonces usted tiene todos los archivos en el resultado grep abierta como amortiguadores ... si desea ejecutar cualquier operación de commeon como buscar/reemplazar puede prefijar el comando regular con el comando "bufdo" que realizará su comando en todos ...en tipo VIM "help bufdo"

Puede modificar bastante trivialmente este complemento si quiere usar pestañas ... utiliza la "edición" en coma ... simplemente reemplace eso con "tabe" y: QuickFixOpenAll abrirá cada uno búfer de resultados en una nueva pestaña.

Cuestiones relacionadas