2011-08-16 8 views
13

Edytuję pliki HTML. Używam tego układu klawiatury, aby uruchomić Firefoksa, aby obejrzeć stronę:Odśwież bufor Vima

map <F6> :update<CR>:silent !xdg-open %:p<CR> 

Ale po tym poleceniu okno Vim staje się całkowicie czarny. Muszę przewinąć każdą linię, aby pojawiła się ponownie.

Więc chcę napisać funkcję świeżej bufora. Oto co zrobiłem:

function! Refresh()                                    
    " code 
    set noconfirm 
    bufdo e! 
    set confirm 
endfunction 

nmap <F5> :call Refresh()<CR> 

Mam pomysł z tego post. Ale to nie działa.

+3

Naciśnięcie Ctrl + L powoduje ponowne rysowanie. –

Odpowiedz

24

Zastosowanie CtrlL odświeżania ekranu. Możesz również użyć :redraw.

Sprawdź na tych help.

7

Jak o dodanie „przerysować” zrobić swoją funkcję (który robi to samo co CTRL-L)

:redr[aw][!] Redraw the screen right now. When ! is included it is 
       cleared first. 
       Useful to update the screen halfway executing a script 
       or function. Also when halfway a mapping and 
       'lazyredraw' is set. 
+0

z jakiegoś powodu ': redr' nie odświeżył mojego ekranu, ale CtrlL zrobił. Zastanawiać się, dlaczego. – TankorSmash

+2

Co, jeśli do końca dodasz wykrzyknik? Przykład: ': redr!' – wilkystyle

2

Oto moje Wiązania do przeglądania dokumentów HTML z uchwalonej pustym numerze ekran:

autocmd BufRead *.html map <F5> :exe ':silent !open -a /Applications/Firefox.app %'<CR>:redr!<CR>

Wolę używać dla wiązań, ponieważ mogę odwzorować ten sam klucz dla różnych rzeczy w zależności od typu pliku, w którym pracuję. Na przykład z autocmd mogę odwzorować F5 do podglądu dokumentu w Firefoksie na plikach html i mapować ten sam klawisz F5 na plikach js, aby wykonać węzeł.