1

Я использую vim-jsbeautify, и я думаю, что это здорово.

Однако я хотел бы добавить переформатирование в действии сохранения. На данный момент я должен нажимать Ctrl - F каждый раз, когда я хочу переформатировать. Я старался

 autocmd FileType html AutoFormatBuffer :call HtmlBeautify()<cr>

но почему-то эта команда неверна, кто-то может уточнить?

Обновить

Так же, как упомянул Инго Каркат . Для этого случая создайте файл в

~/.vim/ftplugin/html/main.vim 

и добавьте строку в файл

autocmd BufWritePre <buffer> call HtmlBeautify()

1 ответ1

2

Ваша команда (call HtmlBeautify()) должна быть запущена перед сохранением. :help autocmd-events перечисляет все доступные; BufWritePre это тот, который вы хотите. {cmd} Cmd } for :autocmd - это команда Ex, поэтому вы можете удалить : (который переключается из обычного режима в режим командной строки), и вам нужно удалить <CR> (это только для сопоставлений):

autocmd BufWritePre <buffer> call HtmlBeautify()

Теперь вы хотите, чтобы этот триггер был установлен для каждого открытого HTML-файла. То , как вы пытались это с помощью :autocmd на мероприятии FileType

autocmd FileType html autocmd BufWritePre <buffer> call HtmlBeautify()

Но вот для чего нужны плагины файловых типов:

Я бы порекомендовал поместить любые параметры, сопоставления и специфичные для типа файла автокоманды (такие как эта) в ~/.vim/ftplugin/{filetype}_whatever.vim (или {filetype}/whatever.vim ; cp :help ftplugin-name) вместо определения множества :autocmd FileType {filetype} ; он чище и лучше масштабируется; требует, чтобы у вас был :filetype plugin on .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .