Я хочу, чтобы vim вызывал ':! Gn format BUILD.gn', когда я пишу файл BUILD.gn, мой .vimrc (версия 1)
autocmd BufWritePre *.{gn,gni} call GnFormat()
function! GnForamt()
exec '!gn format %'
endfunction
Но он не может работать, когда я нажимаю ': w ", он показывает сообщение об ошибке как
Error detected while processing BufWrite Autocommands for "*.gn":
"BUILD.gn" 67L, 1423C written
Как показать более подробную информацию об отладке и как правильно вызывать инструмент внешнего формата?
Я также попробовал следующий метод, но тоже не удалось (версия 2)
autocmd BufWritePre *.{gn,gni} call GnFormat()
function! GnForamt()
exec '%!gn format --stdin'
endfunction
Результат вывода версии 2.vimrc из :11verbose w
:
Executing BufWrite Autocommands for "*.{gn,gni}"
autocommand call GnFormat()
Error detected while processing BufWrite Autocommands for "*.{gn,gni}":
"BUILD.gn" 27L, 538C written
Executing BufWritePost Autocommands for "*"
autocommand cal s:record(expand('<abuf>', 1))
Executing BufWritePost Autocommands for "*"
autocommand call s:BufWritePostHook(expand('<afile>', 1))
И в версии 2 я могу использовать :call GnForamt()
вручную, чтобы переформатировать буфер без каких-либо сообщений об ошибках.
Просто знайте причину
autocmd BufWritePre *.{gn,gni} call GnFormat()
function! GnFormat() " <--- typo of Format as Foramt
exec '%!gn format --stdin'
endfunction