2011-08-16 9 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

Ctrl を使用して画面を再描画します。 :redrawを使用することもできます。

helpを確認してください。

autocmd BufRead *.html map <F5> :exe ':silent !open -a /Applications/Firefox.app %'<CR>:redr!<CR>:ここで(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. 
7

私は作業中のファイルの種類に応じて同じキーをマップすることができるので、バインドにはautocmdを使用することをお勧めします。たとえば、autocmdでは、Firefoxのドキュメントをhtmlファイルでプレビューするためにマップできます。ノードを実行するためのjs-filesに同じキーF5をマップします。

+0

、 ':redr'は私の画面を更新しませんでしたが、CtrlLはそうしました。なぜだろう。 – TankorSmash

+2

最後に感嘆符を付けるとどうなりますか?例: ':redr!' – wilkystyle

2

を行う「再描画」を追加する方法については解決され、空の画面の問題でHTML文書をプレビューするための私のバインディングでどのように

関連する問題