3

У меня есть проект ac с несколькими файлами (более 100), коды написаны в стиле Whitesmiths , но я хочу изменить их на отступ в стиле K & R. Можно ли использовать vim в автоматическом режиме?

Например, у меня есть скрипт emacs-lisp для достижения этой цели -

(progn 
  (find-file "{}") 
  (mark-whole-buffer) 
  (setq indent-tabs-mode nil) 
  (untabify (point-min) (point-max)) 
  (indent-region (point-min) (point-max) nil) 
  (save-buffer))

Мне было интересно, есть ли подобный трюк, который можно сделать с vim.

Обновление: я нашел еще один хороший инструмент под названием astyle, который также поддерживает автоиндентирование для разных языков (с широким диапазоном стилей).

2 ответа2

5

Либо передайте все файлы C в исполняемый файл Vim vim file1.c dir/file2.c , либо добавьте их в качестве аргументов изнутри Vim (см . :help file-searching):

:args **/*.c **/*.h

Затем вы можете массово редактировать их через :argdo . Vim имеет встроенный механизм отступов или может использовать внешний форматировщик кода. Подробности читайте по адресу :help C-indenting .

После настройки параметров отступа ('cindent' , 'cinoptions' и т.д.) Вы можете применить все файлы с помощью

:argdo execute 'normal! ggVG=' | update

(ggVG выбирает весь буфер в визуальном режиме, = затем переформатирует.)

4

отступ человека * прокрутка прокрутка прокрутка *

   The Kernighan & Ritchie style is used  throughout  their  well-known  book
   "The  C  Programming Language".  It is enabled with the ‘-kr’ option.  The
   Kernighan & Ritchie style corresponds to the following set of options:

        -nbad -bap -bbo -nbc -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0
        -cp33 -cs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs
        -nprs -npsl -saf -sai -saw -nsc -nsob -nss

Например:

indent -kr source.cpp

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .