2012-06-25 10 views
6

Si uso :lopen, Vim abre la ventana de revisión, y si uso :lcl en la ventana con errores (o la ventana de revisión), la cierra .Cómo crear un mapa de teclas para abrir y cerrar la ventana de revisión en Vim

Lo que quiero hacer en mi .vimrc es crear un mapa que abre la quickfix así:

nnoremap <F2> :lopen 10<CR> 

pero cuando pulso F2 de nuevo se cierra usando :lcl.

¿Hay alguna manera de saber si la ventana de revisión está abierta y luego ejecutar :lcl?

Respuesta

4
+0

Esto hace exactamente lo que necesito gracias. Todavía quería algo un poco más simple sin la necesidad de un complemento. +1 para la orientación, el script me ayudó a crear mi propia respuesta :) – Hassek

+0

El complemento tiene dos funciones. Puedes copiar el código en ti 'vimrc'. – kev

+0

bueno, eso es cierto, aún no entiendo por qué se vuelve tan complicado. Gracias por la respuesta rápida por cierto! – Hassek

2

Aquí hay otra manera de hacerlo, probablemente omitiendo algunos detalles morbosos pero funciona:

function! ToggleQuickFix() 
    if exists("g:qwindow") 
    lclose 
    unlet g:qwindow 
    else 
    try 
     lopen 10 
     let g:qwindow = 1 
    catch 
     echo "No Errors found!" 
    endtry 
    endif 
endfunction 

nmap <script> <silent> <F2> :call ToggleQuickFix()<CR> 

Si no hay errores de la lopen no funcionará tan Intento atrapar eso, en caso de que haya, abre la ventana y crea una variable. luego, si no lo hace, simplemente lo cierra.

Lo bueno es que este enfoque se puede utilizar para todo lo que le gustaría alternar.

+0

Mientras solo abra la ventana de revisión a través de esta asignación, está bien. Pero tenga en cuenta que su variable de estado global no funcionará cuando se abra la ventana de revisión por otros medios (autocmds, otros complementos, etc.) –

+0

cierto, necesitaría presionar F2 dos veces en ese caso. Supongo que hay una manera de preguntar si la ventana de revisión está abierta, eso haría el trato – Hassek

Cuestiones relacionadas