IntelliJ에서 파일 저장시 gofmt 실행


답변:


133

물론 당신은 할 수.

  1. 파일 감시자 플러그인 설치
  2. "기본 설정-> 도구-> 파일 감시자"를 열고 새 감시자 추가
  3. 설정 File Type: Go, Program:의 abosolute 경로를 gofmt, Arguments:-w $FilePath$
  4. 딸깍 하는 소리 OK

여기에 이미지 설명 입력


4
이것은 항상 내 저장소의 모든 파일, 심지어 Godeps / *를 다시 포맷합니다. 그래서 대신 내 경로를 하드 코딩했습니다. 매번 repo의 모든 파일을 재귀 적으로 포맷하지 않고 $ FilePath $를 사용하는 방법은 무엇입니까? FilePath가 나를 위해 도미노 효과를 갖는 것 같습니다.
jayunit100 2015

1
@ jayunit100 범위 매개 변수를 구성 할 수 있습니다 . 1. 로컬 범위를 추가합니다 . 2. 이름을 지정하고 패턴 을 다음으로 설정 합니다. file [$ proj] : * / &&! file [$ proj] : Godeps // *! 스냅 샷
yee

1
내 파일을 편집 할 수 없습니다. 더 많은 코드를 작성하기 위해 새 줄을 추가하려고하면 프로그램이 이전 줄로 돌아가서 새 줄을 삭제합니다. 어떻게 막을 수 있습니까? 참고 : 사용 phpstorm은
bia.migueis

6
신경 쓰지 마 내가 알아 냈어 "즉시 파일 동기화"를 사용하면 변경하는 즉시 fmt가 실행됩니다. 그냥 선택을 취소하고 만 저장 파일에서 실행 (또는 윈도우의 초점을 없앱은)
bia.migueis

1
참고로,이 답변은 현재 다소 구식입니다. 이제 File Watchers 플러그인에는 많은 작업을 수행 할 필요없이 추가 할 수있는 사전 구축 된 "go fmt"watcher가 있습니다.
Aaron Shaver

61

Gogland EAP 16 은 저장시 작업을 더 이상 사용하지 않고 파일 감시자 플러그인으로 대체했습니다 .

이전에 저장시 작업을 구성한 경우 IDE는 플러그인을 설치하고 모든 것을 자동으로 구성하라는 메시지를 표시합니다. 처음부터 직접 설정하려면 File Watchers 플러그인이 있는지, 설치하지 않았는지 확인하십시오.

gofmt 활성화 :

  1. 로 이동하십시오 Settings | Tools | File Watchers.
  2. +버튼을 클릭 하고을 선택 go fmt합니다.
  3. 기본값이 좋습니다.
  4. 고급 옵션에서 다음을 선택합니다.
    • 감시자를 트리거하기 위해 편집 된 파일 자동 저장
    • 외부 변경시 감시자 트리거
  5. 확인을 클릭하십시오!

구성

goimports및에 대해 동일한 작업을 수행 할 수 있습니다 gometalinter.


8
goimports 문서에 지정된대로 fmt도 수행하므로 go fmt 대신 goimports 만 설정하는 것이 실제로 더 좋습니다. 편집자의 gofmt-on-save 후크 "
dux2

2
이것은 2018 년 10 월 현재 Goland에 대한 정답입니다
George Aristy

54

Gogland를 사용하는 경우 기본 설정 아래에 저장시 옵션이 있습니다.

여기에 이미지 설명 입력


1
gogland는 go 플러그인과 동일하지 않습니다.
감시자

python 플러그인과 pycharm과 거의 동일합니다. 유일한 차이점은 업데이트 지연입니다. 그 외에는 정확히 동일한 기능 세트를 제공합니다.
Alex Pavlenko

24
저장시 메커니즘은 더 이상 사용되지 않으며 향후 제거 될 예정입니다. 대신 File Watchers 플러그인 사용
Zangetsu

3
그러나 최신 GoLand에서도이 옵션이 표시되지 않습니다. 파일 이름을 마우스 오른쪽 버튼으로 클릭하면 "이동"에서 파일을 fmt 할 수 있습니다. 하지만 자동 저장 중에 활성화하는 옵션이 표시되지 않습니다.
curiousengineer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.