我正在编辑HTML文件。 我使用这个keymap启动firefox来预览页面:
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得到了这个想法。 但它不起作用。
答案 0 :(得分:27)
使用 Ctrl L 重绘屏幕。您也可以使用:redraw
。
检查这些help。
答案 1 :(得分: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.
答案 2 :(得分:2)
这是我用于预览解决空屏幕问题的HTML文档的绑定:
autocmd BufRead *.html map <F5> :exe ':silent !open -a /Applications/Firefox.app %'<CR>:redr!<CR>
我更喜欢使用autocmd
进行绑定,因为我可以根据我正在使用的文件类型为各种事物映射相同的键。例如,使用autocmd我可以映射F5以在html文件中预览Firefox中的文档并在js文件上映射相同的密钥F5以执行节点。