:autocmd BufNewFile * :write ^ ^ ^ | | | | | The command to run. | | | A "pattern" to filter the event. | The "event" to watch for.
:autocmd BufNewFile,BufRead *.html setlocal nowrap
As seen here, a single autocommand can be bound to multiple events by separating the events with a comma.
It is possible to create duplicate autocommands which might slow down Vim. When a config file is sourced, Vim has no way of knowing if we want to replace an existing autocommand with a new one. A solution to this is to use
:augroup testgroup : autocmd! : autocmd BufWrite * :echom "Cats" :augroup END
autocmd! clears out the group, and then Vim defines the autocommands present in the group, preventing duplicates.