Làm cách nào để định dạng lại / reindent tất cả các tệp nguồn trong một thư mục nhất định?


14

Đưa ra một thư mục chứa một cây nguồn, có cách nào đơn giản từ dòng lệnh để thay thế mỗi tệp nguồn bằng tương đương được định dạng lại đẹp không?

Hãy nhớ rằng thông thường một cây nguồn cho một dự án cũng chứa các tệp không phải là nguồn và bản thân các nguồn có thể bằng các ngôn ngữ khác nhau.

Tôi đang tìm kiếm một số công cụ hỗ trợ càng nhiều ngôn ngữ càng tốt, vì một dự án thường chứa các nguồn bằng nhiều ngôn ngữ khác nhau. Cụ thể, tôi đang tìm kiếm thứ gì đó hỗ trợ xml / html, javascript, ruby ​​và java.


1
Và ngôn ngữ là ...?
người dùng không xác định

2
Hỏi và trả lời tương tự tại stackoverflow: stackoverflow.com/questions/1731357/ cấp
thắt lưng

Câu trả lời:


7

Bạn có thể sử dụng vim trong chế độ ex và lệnh, từ terminal.

Để thụt lề một tệp:

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

Để thụt lề các tệp đệ quy, tạo tập lệnh sau:

thụt lề-with-vim.sh

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

Bây giờ, gõ:

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

Vim sẽ cố gắng hết sức để giới thiệu lại các tập tin. Bạn có thể cải thiện một số loại tệp cụ thể.

Đối với XML:

  • Cài đặt xmllint Thêm vào của bạn.vimrc

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

Để cải thiện định dạng PHP:

Tải xuống http://www.vim.org/scripts/doad_script.php?src_id=15001 (nó sẽ tải xuống một tệp có tên php.vim)

Tạo các thư mục sau trên nhà của bạn:

~/.vim/indent

Và sao chép php.vimvào~/.vim/indent

Nếu bạn không hài lòng với kết quả cho bất kỳ loại tệp nào, bạn có thể tìm kiếm các lựa chọn thay thế trên web (như htb cho HTML, https://github.com/vim-ruby/vim-ruby để cải thiện cho Ruby, v.v. ).

Dù bằng cách nào, bạn sẽ sử dụng hoặc kỹ thuật .vimrc hoặc tệp thụt lề foo.vim để cải thiện thụt lề.

Ngoài ra, bạn có thể thay đổi các tham số tìm để chỉ áp dụng cho một số loại cụ thể, chẳng hạn như:

find . -iname "*.html" -or -iname "*.xml"


0

Không miễn phí, không phải dòng lệnh, có thể quá phức tạp, nhưng IntelliJ Idea là một IDE có thể làm điều này. Tôi chưa thử nghiệm nó với java hoặc ruby, nhưng nó hoạt động khá tốt với dự án django (python + javascript + HTML).

Nó cũng có một loạt các tùy chọn để định cấu hình những gì cần định dạng lại.

Nếu đây là sự cố một lần, bạn có thể tải xuống bản dùng thử miễn phí.

Đây là ảnh chụp màn hình của các tùy chọn định dạng HTML. Nó được lấy từ PyCharm (phiên bản giới hạn của python, không hỗ trợ ruby ​​hay java ở đây) như những gì tôi sử dụng, nhưng IntelliJ nên giống nhau nhưng hỗ trợ nhiều ngôn ngữ hơn.

nhập mô tả hình ảnh ở đây


0

Định dạng Java của Google

Định dạng lại mã nguồn Java để tuân thủ Google Java Style:

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

Lời khuyên:

  • Để thực hiện trên nhiều tệp, sử dụng --replacetùy chọn này cùng vớixargs
  • Sử dụng spongeđể bạn có thể ghi đè trực tiếp tệp đầu vào
  • Có một plugin Eclipse và IntelliJ để thực hiện cùng một định dạng lại
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.