Como usar em salvar ação para o tipo de arquivo no vim?

1

Estou usando o vim-jsbeautify e acho isso incrível.

No entanto, gostaria de adicionar a reformatação na ação de salvamento. No momento eu tenho que pressionar Ctrl - f cada vez que eu quero reformatar. Eu tentei

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

mas de alguma forma esse comando está errado, alguém poderia esclarecer?

Atualizar

Assim como @Ingo Karkat mencionado. Para este caso, crie um arquivo em

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

e adicione a linha no arquivo

autocmd BufWritePre <buffer> call HtmlBeautify()
    
por A.Dumas 16.11.2017 / 12:27

1 resposta

2

Seu comando ( call HtmlBeautify() ) precisa ser acionado antes de salvar. :help autocmd-events lista todos os disponíveis; BufWritePre é o que você quer. O {cmd} para :autocmd é um comando Ex , então você pode soltar o : (que muda de modo normal para modo de linha de comando ), e tem que largar o <CR> (isto é apenas para mapeamentos):

autocmd BufWritePre <buffer> call HtmlBeautify()

Agora, você deseja que o disparador seja instalado para cada arquivo HTML aberto. A maneira como você tentou isso é usando outro :autocmd no evento FileType :

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

Mas isso é o que os plug-ins de tipo de arquivo são para :

Eu recomendaria colocar quaisquer configurações, mapeamentos e autocmds específicos do tipo de arquivo (como este) em ~/.vim/ftplugin/{filetype}_whatever.vim (ou {filetype}/whatever.vim ; cp. :help ftplugin-name ) em vez de definir lotes de :autocmd FileType {filetype} ; é mais limpo e escala melhor; requer que você tenha :filetype plugin on .

    
por 16.11.2017 / 15:14

Tags