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

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

14 голосов
/ 16 августа 2011

Я редактирую файлы 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>

Я получил идею из этого поста .Но это не работает.

Ответы [ 3 ]

30 голосов
/ 16 августа 2011

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

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

8 голосов
/ 16 августа 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...