Vim autocmd (сохранить файл, запустить средство форматирования кода, перезагрузить файл)

Я хочу интегрировать средство форматирования исходного кода Uncrustifyс Vim. Подойдет любой из двух приведенных ниже вариантов.

  1. Отформатировать код, который я редактирую в данный момент (т. е. при нажатии gq).
  2. Отформатируйте код, когда я сохраняю файл, а затем перезагружаю отформатированный файл в текущее окно Vim.

Вариант 1 предпочтительнее. Я пробовал

set formatprg=uncrustify\ -c ~/misc/uncrustify.cfg --no-backup

, т.е. вызываю Uncrustify с параметрами командной строки. Это не работает. Vi выдает ошибку E518: Unknown option: ~/misc/uncrustify.cfg.

Для варианта 2 я попробовал следующее в файле vimrc

autocmd bufwritepost *.cpp ! ~/bin/uncrustify -c ~/misc/uncrustify.cfg --no-backup 

Файл форматируется после сохранения, но мне приходится вручную перезагружать файл в Vim.

6
задан ib. 20 March 2012 в 08:33
поделиться