2011-08-16 225 views
13

我正在編輯HTML文件。 我用這個鍵盤映射來啓動Firefox預覽網頁:刷新Vim緩衝區

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

但該命令後,Vim窗口完全變爲黑色。 我需要滾動每一行以使其再次出現。

所以我想寫一個函數來新鮮的緩衝區。這就是我做的:

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

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

我從這個post得到了主意。 但它不起作用。

+3

如果我按Ctrl + L重繪。 –

回答

24

使用CtrlL重畫屏幕。您也可以使用:redraw

檢查help對這些。

7

如何增加一個「重繪」做你的函數(不相同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

出於某種原因,':redr'沒有刷新我的屏幕,但CtrlL沒有。想知道爲什麼。 – TankorSmash

+2

如果您在末尾附加感嘆號,該怎麼辦?例如:':redr!' – wilkystyle

2

這裏是我的綁定預覽HTML文檔與解決空白屏幕問題:

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

我更喜歡使用autocmd進行綁定,因爲我可以根據我工作的文件類型映射相同的密鑰。例如,使用autocmd我可以將F5映射爲在Firefox中預覽html文件和在js文件上映射與執行節點相同的密鑰F5。