переформатировать файл с помощью внешнего инструмента перед записью файла в vim - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу, чтобы 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

1 Ответ

0 голосов
/ 08 ноября 2018

попробуйте :debug w (см. :h debug) или :13verbose w. См :h verbose и :h 'verbose'.

:[level]verbose позволит вам активировать подробный режим для одного действия

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