전체 소스 트리에서 fmt로 이동
현재 다음과 같은 프로젝트를 구성했습니다.
~ / 코드 / 이동 /큰 상자 / pkg / src /proj/main.go /some_package/package.go /some_other_package/some_other_package.go
이제 go fmt
전체 프로젝트 에서 도구 를 사용하려는 경우 유일한 방법은 프로젝트 소스 트리의 각 디렉토리에 대해 별도로 수행하는 것 같습니다.
go fmt proj
go fmt proj/package
go fmt proj/some_other_package
fmt 명령이 전체 소스 트리에서 실행되도록 지시하는 방법이 있습니까?
세 개의 점 ( ...
)을 와일드 카드로 사용할 수 있습니다 . 예를 들어 다음 명령은 모든 github.com 패키지의 형식을 지정합니다.
go fmt github.com/...
이 와일드 카드는 go list
, 등과 같은 다른 go 명령에서도 작동합니다 go get
. 이러한 추악한 찾기 명령을 기억할 필요가 없습니다.
gofmt
대신 사용 하는 경우 go fmt
재귀 적입니다. 예를 들어, 다음 명령
gofmt -s -w .
(끝에있는 작은 점에 유의하십시오) 재귀 적으로 형식을 지정하고, 단순화하고, 현재 디렉토리 아래의 모든 파일에 결과를 저장합니다. 셸 별칭이로 gf
정의되어 gofmt -s -w .
있으며 매우 편리합니다.
시도 gofmt -l .
( 그 gofmt의 차이가 포맷 목록 파일 당신이 원하는 첫번째 경우를) :-)
또한 다음 명령을 실행할 수 있습니다.
go fmt ./...
프로젝트 디렉토리에서.
find proj -type f -iregex '.*\.go' -exec go fmt '{}' +
설명
find proj
:이 디렉토리에서 모든 것을 찾습니다 ...-type f
: ... 그것은 파일입니다-iregex '.*\.go'
: ... 그리고 대소 문자를 구분하지 않고 정규 표현식과 일치.*\.go
- ...
go fmt
운영 체제가 한 번에 실행 파일로의 전달을 처리 할 수있는만큼 일치하는 파일을 실행합니다.
gofmt ./...
일부에서 언급 한 명령 은 Windows에서 작동하지 않습니다 (적어도 Win7에서는).
대신 gofmt -d .\
재귀 적으로 작동하는 것을 사용했습니다 . -d
확인을 통과하기 위해 변경해야하는 사항을 나열하고 싶기 때문에 플래그를 사용합니다 .
NB : golint ./...
Windows에서는 작동 gofmt ./...
하지만 그렇지 않습니다.
참조 URL : https://stackoverflow.com/questions/13319165/go-fmt-on-a-whole-source-tree
'your programing' 카테고리의 다른 글
React Formik : 커스텀 onChange 및 onBlur 사용방법 (0) | 2023.03.13 |
---|---|
ubuntu 12.04에서 openCV 프로그램 컴파일 오류 "libopencv_core.so.2.4 : 공유 객체 파일을 열 수 없음 : 해당 파일 또는 디렉토리 없음" (0) | 2021.01.05 |
Windows Azure 웹 사이트 정리 (0) | 2021.01.05 |
std :: vector에서 텍스트 파일로 데이터를 쓰는 빠른 방법 (0) | 2021.01.05 |
protobuf 3에서 선택적 필드를 정의하는 방법 (0) | 2021.01.05 |