Подтвердить что ты не робот

Обновить буфер Vim

Я редактирую файлы HTML. Я использую эту раскладку для запуска 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>

У меня возникла идея из этого сообщения . Но это не работает.

4b9b3361

Ответ 1

Используйте Ctrl L для перерисовки экрана. Вы также можете использовать :redraw.

Проверьте help на них.

Ответ 2

Как насчет добавления "перерисовки" выполняет ваша функция (что делает то же самое, что и 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.

Ответ 3

Вот мои привязки для предварительного просмотра HTML-документов с разрешенной пустой проблемой экрана:

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

Я предпочитаю использовать autocmd для привязок, потому что я могу сопоставить один и тот же ключ для разных вещей, в зависимости от типа файла, в котором я работаю. Например, с autocmd я могу сопоставить F5 для предварительного просмотра документа в Firefox на html файлах и карте тот же ключ F5 в js файлах для выполнения node.