2012-06-25 4 views
6

:lopen을 사용하면 Vim이 퀵 픽스 창을 열고 오류가있는 창 (또는 퀵 픽스 창 자체)에서 :lcl을 사용하면 닫습니다. .키 맵을 열고 Vim의 퀵 픽스 창을 닫는 방법

내가 내 .vimrc에서 수행 할 작업과 같이 quickfix을 여는지도를 작성하는 것입니다 :

nnoremap <F2> :lopen 10<CR> 

을하지만 난 다시 F2를 누를 때 그것은 :lcl을 사용하여 닫습니다.

퀵 픽스 창이 열려 있는지 확인한 다음 :lcl을 실행하는 방법이 있습니까? Vim은 플러그인이

답변

4
+0

이것은 정확히 내가 감사 할 필요가있는 것이다. 아직도 나는 플러그인을 필요로하지 않고 좀 더 단순한 것을 원했다. +1 안내, 스크립트 내 자신의 대답을 만들 수있었습니다 :) – Hassek

+0

플러그인은 두 가지 기능이 있습니다. 코드를'vimrc '에 복사 할 수 있습니다. – kev

+0

사실, 아직도 나는 왜 그렇게 복잡 해지는 지 알지 못합니다. 빠른 답변 주셔서 감사합니다 btw! – Hassek

2

은 아마 피투성이 세부 사항을 건너 뛰는, 그것을 할 수있는 또 다른 방법이지만 작동 : 오류가 없으면

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> 

는 lopen 그렇게 작동하지 않습니다 나는 그것을 잡으려고 노력한다. 창문을 열고 변수를 만든다. 그렇다면 그것을 닫지 않습니다.

멋진 점은이 접근법을 전환하려는 모든 것에 사용할 수 있다는 것입니다.

+0

이 매핑을 통해 퀵 픽스 창을 여는 동안 괜찮습니다. 그러나 다른 방법 (autocmds, 다른 플러그인 등)을 통해 quickfix 창이 열릴 때 전역 상태 변수가 작동하지 않는다는 사실을 염두에 두십시오. –

+0

사실,이 경우 F2를 두 번 눌러야합니다. 나는 quickfix 창이 열려 있는지 물어 보는 방법이 있다고 생각한다. 그것은 거래를 할 것이다. – Hassek

관련 문제