จะทำการฟอร์แมท / จัดทำดัชนีไฟล์ต้นฉบับทั้งหมดใหม่ในไดเรกทอรีที่กำหนดได้อย่างไร


14

ให้ไดเรกทอรีที่มีต้นไม้ต้นกำเนิดมีวิธีง่าย ๆ จากบรรทัดคำสั่งเพื่อแทนที่แต่ละแฟ้มต้นฉบับด้วยเทียบเท่าที่จัดรูปแบบใหม่อย่างสวยงามหรือไม่

โปรดจำไว้ว่าโดยปกติทรีซอร์สสำหรับโครงการจะมีไฟล์ที่ไม่ใช่ซอร์สและแหล่งที่มาของตัวเองอาจเป็นภาษาต่าง ๆ

ฉันกำลังมองหาเครื่องมือบางอย่างที่รองรับภาษาได้มากที่สุดเนื่องจากโครงการมักจะมีแหล่งที่มาในภาษาต่าง ๆ มากมาย โดยเฉพาะฉันกำลังมองหาบางอย่างที่สนับสนุน xml / html, javascript, ruby ​​และ java


1
และภาษาก็คือ ... ?
ผู้ใช้ไม่ทราบ

2
คำถาม & คำตอบที่คล้ายกันที่ stackoverflow: stackoverflow.com/questions/1731357/…
lumbric

คำตอบ:


7

คุณสามารถใช้ vim ในโหมด ex และ command จากเทอร์มินัล

หากต้องการเยื้องไฟล์เดียว:

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เพื่อการปรับปรุงทับทิมและอื่น ๆ )

ไม่ว่าจะด้วยวิธีใดคุณจะใช้หรือใช้เทคนิค. vimrc หรือไฟล์ foo.vim เพื่อเพิ่มการเยื้อง

นอกจากนี้คุณสามารถเปลี่ยนพารามิเตอร์ค้นหาเพื่อใช้กับบางประเภทที่ระบุเท่านั้นเช่น:

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

2

ติดตั้งindentแพคเกจแล้วเรียกใช้โปรแกรมในไฟล์


1
นั่นรองรับ C เท่านั้นใช่ไหม indent.isidore-it.eu/beautify.html
Cesium

คุณคิดว่า fdierre กำลังค้นหาสิ่งที่เป็นสากลหรือไม่?
ผู้ใช้ที่ไม่รู้จัก

1
ใช่ฉันกำลังมองหาเครื่องมือที่เป็น 'สากล' ที่สุด ฉันแก้ไขคำถามเพื่อระบุว่า
fdierre

0

ไม่ฟรีไม่ใช่บรรทัดคำสั่งมีความซับซ้อนเกินไป แต่IntelliJ Ideaเป็น IDE ที่สามารถทำได้ ฉันยังไม่ได้ทดสอบด้วย java หรือ ruby ​​แต่ใช้งานได้ดีกับโปรเจค django (python + javascript + HTML)

นอกจากนี้ยังมีตัวเลือกมากมายเพื่อกำหนดค่าสิ่งที่จะจัดรูปแบบใหม่

หากนี่เป็นปัญหาแบบครั้งเดียวคุณสามารถดาวน์โหลดรุ่นทดลองใช้ฟรี

นี่เป็นภาพหน้าจอของตัวเลือกการจัดรูปแบบ HTML มันนำมาจาก PyCharm (เวอร์ชัน จำกัด ของ python ไม่มีการสนับสนุน ruby ​​หรือ java ที่นี่) เนื่องจากเป็นสิ่งที่ฉันใช้ แต่ IntelliJ ควรเหมือนกัน แต่รองรับภาษาอื่น ๆ อีกมากมาย

ป้อนคำอธิบายรูปภาพที่นี่


0

รูปแบบ Google Java

จัดรูปแบบซอร์สโค้ด Java ใหม่เพื่อให้สอดคล้องกับ 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

เคล็ดลับ:

  • ในการทำไฟล์หลายไฟล์ให้ใช้--replaceตัวเลือกพร้อมกับxargs
  • ใช้spongeเพื่อให้คุณสามารถเขียนทับไฟล์อินพุตโดยตรง
  • มีปลั๊กอิน Eclipse และ IntelliJ เพื่อทำการฟอร์แมตเดียวกัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.