Vim

2012-06-25 14 views
6

içinde düzeltme penceresini açmak ve kapatmak için anahtar bir harita nasıl oluşturulur :lopen kullanırsam, Vim quickfix penceresini açar ve hatalarla (veya quickfix penceresinin kendisi) pencerede :lcl kullanırsam, kapatır .Vim

benim .vimrc yapmak istediğim Bu neye Quickfix açan bir harita oluşturmaktır:

nnoremap <F2> :lopen 10<CR> 

ama tekrar F2 bastığınızda o :lcl kullanarak kapatır.

Düzeltme penceresinin açık olup olmadığını ve ardından :lcl'u çalıştırmanın bir yolu var mı? Bir vim eklenti vardır

cevap

4
+0

Bu, tam olarak neye ihtiyacım olduğunu gösteriyor. Yine de bir eklentiye ihtiyaç duymadan biraz daha basit bir şey istedim. Rehberlik için +1, senaryo kendi yanıtımı oluşturmama yardımcı oldu :) – Hassek

+0

Eklentinin iki işlevi var. Kodu size vimrc'ye kopyalayabilirsiniz. – kev

+0

bu doğru, yine de neden bu kadar karmaşık hale gelmiyor anlamıyorum. Hızlı cevap için teşekkürler btw! – Hassek

2

muhtemelen bazı ilginç ayrıntıları atlayarak, bunu yapmak için başka bir yoludur, ancak çalışır: hiçbir hata varsa

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 yüzden işe yaramaz Onu yakalamayı denerim, eğer var ise pencereyi açar ve bir değişken oluşturur. o zaman değilse, sadece kapatır.

Harika olan şey, bu yaklaşımın değiştirmek istediğiniz her şeyde kullanılabilmesidir.

+0

Bu eşleme aracılığıyla quickfix penceresini açtığınız sürece, sorun değil. Ancak, quickfix penceresinin diğer araçlarla (autocmds, diğer eklentiler, vb.) –

+0

doğru açıldığında, global durum değişkeninizin çalışmaz hale geldiğini unutmayın, bu durumda F2 tuşuna iki kez basmalıyım. Sanırım, quickfix penceresinin açık olup olmadığını sormanın bir yolu var. – Hassek