Как переформатировать / переопределить все исходные файлы в данном каталоге?

Учитывая каталог, содержащий исходное дерево, существует ли простой способ из командной строки заменить каждый исходный файл его красиво переформатированным эквивалентом?

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

Я ищу какой-нибудь инструмент, который поддерживает как можно больше языков, потому что проект обычно содержит источники на разных языках. В частности, я бы искал что-то, поддерживающее xml / html, javascript, ruby ​​и java.

14
задан 27 February 2012 в 18:58

4 ответа

Вы могли использовать энергию в исключая и командный режим от терминала.

Располагать единственный файл с отступом:

vim -c "normal gg=G" -e <file-to-indent> <<'EOF'
:wq
EOF

В файлы отступа рекурсивно, создайте следующий сценарий:

indent-with-vim.sh

vim -c "normal gg=G" -e $1 <<'EOF'
:wq
EOF

Теперь, тип:

$ chmod u+x indent-with-vim.sh
$ find . | xargs -I {} ./indent-with-vim.sh {}

Vim приложит все усилия для перерасположения с отступом файлов. Можно улучшить некоторые определенные типы файлов.

Для XML:

  • Установка xmllint Добавьте к Вашему .vimrc

    au FileType xml setlocal equalprg=xmllint\ --format\ --recover\ -\ 2>/dev/null
    

Улучшить форматирование PHP:

Загрузите http://www.vim.org/scripts/download_script.php?src_id=15001 (это загрузит файл, названный php.vim),

Создайте следующие каталоги на своем доме:

~/.vim/indent

И копия php.vim кому: ~/.vim/indent

Если Вы не удовлетворены результатом ни для какого типа файла, можно искать альтернативы в сети (как htb для HTML, https://github.com/vim-ruby/vim-ruby для улучшений для Ruby, и так далее).

Так или иначе Вы использовали бы или .vimrc техника или foo.vim файл отступа для улучшения добавления отступа.

Кроме того, можно изменить параметры находки для применения к некоторым определенным типам только, таким как:

find . -iname "*.html" -or -iname "*.xml"
7
ответ дан 27 February 2012 в 18:58

Google Java Format

Переформатирует исходный код Java для соответствия стилю Google Java:

https://github.com/google/google-java-format

wget https://github.com/google/google-java-format/releases/download/google-java-format-1.5/google-java-format-1.5-all-deps.jar
java -jar google-java-format-1.5-all-deps.jar /path/to/MyClass.java

Советы:

  • Чтобы сделать это с несколькими файлами, используйте опцию --replace вместе с xargs
  • Используйте sponge так Вы можете напрямую перезаписать входной файл
  • . Существует плагин Eclipse и IntelliJ для того же переформатирования
0
ответ дан 27 February 2012 в 18:58

Установите пакет indent, а затем запустите программу для файлов.

0
ответ дан 27 February 2012 в 18:58

Не свободная, не командная строка, вероятно, слишком сложная, но IntelliJ Idea - это IDE, способная сделать это. Я не тестировал его с java или ruby, но он прекрасно работает с проектом django (python + javascript + HTML).

Он также имеет довольно обширный набор опций для настройки того, что нужно переформатировать.

Если это разовая проблема, вы можете скачать пробную версию бесплатно.

Это скриншот параметров формата HTML. Он взят из PyCharm (версия с ограниченным числом python, здесь нет поддержки ruby ​​или java), так как это то, что я использую, но IntelliJ должен быть таким же, но поддерживать гораздо больше языков.

enter image description here

0
ответ дан 27 February 2012 в 18:58

Другие вопросы по тегам:

Похожие вопросы: