주어진 디렉토리에서 모든 소스 파일을 다시 포맷 / 재 입력하는 방법은 무엇입니까?


14

소스 트리를 포함하는 디렉토리가 주어지면 명령 행에서 각 소스 파일을 아름답게 재구성 된 동등한 파일로 바꾸는 간단한 방법이 있습니까?

일반적으로 프로젝트의 소스 트리에는 소스가 아닌 파일도 포함되어 있으며 소스 자체는 다른 언어로되어있을 수 있습니다.

프로젝트에는 일반적으로 여러 언어로 된 소스가 포함되어 있으므로 가능한 한 많은 언어를 지원하는 도구를 찾고 있습니다. 특히, 나는 xml / html, javascript, ruby ​​및 java를 지원하는 것을 찾고 있습니다.


1
그리고 언어는 ...?
사용자가 알 수 없음

2
stackoverflow의 비슷한 Q & A : stackoverflow.com/questions/1731357/…
lumbric

답변:


7

터미널에서 ex 및 명령 모드에서 vim을 사용할 수 있습니다.

단일 파일을 들여 쓰려면

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

파일 형식에 대한 결과가 만족스럽지 않으면 웹에서 대안을 찾을 수 있습니다 (HTML의 경우 htb, https://github.com/vim-ruby/vim-ruby). Ruby의 개선 사항 등). ).

어느 쪽이든 들여 쓰기를 향상시키기 위해 .vimrc 기술 또는 foo.vim 들여 쓰기 파일을 사용합니다.

또한 다음과 같은 특정 유형에만 적용되도록 찾기 매개 변수를 변경할 수 있습니다.

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


0

자유롭지 않고, 명령 줄이 아니며, 너무 복잡 할 수 있지만 IntelliJ Idea 는이를 수행 할 수있는 IDE입니다. Java 또는 ruby로 테스트하지는 않았지만 django 프로젝트 (python + javascript + HTML)에서 꽤 잘 작동합니다.

또한 다시 포맷 할 항목을 구성 할 수있는 광범위한 옵션이 있습니다.

이것이 일회성 문제인 경우 무료로 평가판을 다운로드 할 수 있습니다.

HTML 형식 옵션의 스크린 샷입니다. PyCharm (파이썬 제한 버전, 루비 또는 Java 지원 없음)에서 가져 왔지만 IntelliJ는 동일하지만 훨씬 더 많은 언어를 지원해야합니다.

여기에 이미지 설명을 입력하십시오


0

구글 자바 형식

Google Java 스타일을 준수하도록 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 플러그인이 있습니다
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.