Eclipse에서 후행 공백을 자동 제거하는 방법은 무엇입니까?


422

질문에는 두 부분이 있는데 그중 하나는 이미 대답했습니다.

  1. 편집중인 전체 파일에서 후행 공백을 자동 제거하는 방법은 무엇입니까? -> 답변 : AnyEdit 플러그인을 사용 하십시오. 파일에 저장할 때 설정할 수 있습니다.
  2. 내가 변경 한 줄에서만 후행 공백을 자동 제거하는 방법은 무엇입니까? -> 이것은 모르겠으며 도움을 주셔서 감사합니다.

97
내가 입력하지 않은 후행 공백을 추가하지 않도록 Eclipse를 설득시킬 수 있다면 기쁠 것입니다.
divegeek

5
플러그인이 필요하지 않습니다. C ++-> Editor-> Save Actions를 사용하십시오. 또한 일반-> 편집기-> 텍스트 편집기-> 공백 문자 표시 (세부 설정을 보려면 클릭하십시오)는 매우 편리합니다.
Trass3r 2016 년

3
기본 저장 조치는 Java Doc 주석에서 후행 공백을 제거하지 않습니다. 또한 Java 파일에서만 작동한다는 사실에 의해 제한됩니다. 모든 후행 공백을 오류로 표시하는 코드 검토 시스템이 있습니다. AnyEdit은 모든 파일 유형에 대해 후행 공백을 처리하는 데 매우 중요합니다. 또한 타사 소프트웨어에 대한 회사의 제한 사항을 찾는 것이 유용 할 수 있습니다. AnyEdit 플러그인은 EPL 라이센스 (이 opensource.org/licenses/eclipse-1.0.php :) [여기에서 andrei.gmxhome.de/anyedit/index.html]
아슈 JINDAL

1
귀하의 질문을보고 AnyEditPlugin의 대가로 밝혀 질 때까지 왜 갑자기 줄 끝에서 공백이 제거되는지 알 수 없었습니다. 감사!
Tzafrir

답변:


142
  1. 편집중인 전체 파일에서 공백 제거 :

Preferences-> Java-> Editors-> Save Actions-> 확인 Perform the selected actions on save-> 확인 Additional actions-> 클릭 Configure..-> Code organizing탭으로 이동 -> 확인 Remove trailing whitespace-> 선택 All lines.

  1. 내가 변경 한 줄에서만 공백을 제거하십시오 .

Preferences-> Java-> Editor-> Save Actions-> 확인 " Perform the selected actions on save-> 확인 Format source code-> 선택하십시오 Format edited lines.

클릭 할 필요는 없습니다. Configure the formatter settings on the Formatter page모든 코드 스타일에는 후행 공백 제거가 자동으로 포함됩니다. 적어도 Formatter 구성 에서이 설정을 찾을 수 없었으며 기본 제공 Java Conventions, Eclipse, Eclipse 2.1 스타일 및 GoogleStyle 상자에서 즉시 작동했습니다 .

이 설정을 사용할 때는 분명히 질문의 1 부에 대한 솔루션을 해제 해야합니다 .

Eclipse version checked: 4.5.2, 4.11

형식을 어떻게 정의합니까? 포맷터 링크 또는 구성 버튼을 사용합니까?
Vijay Kotari 2019

이 옵션은 Save Actions 아래의 PDT for PHP에서도 나타납니다.
thaddeusmt

1
@VijayKotari 답변이 편집되었습니다-형식을 정의 할 필요가 없습니다.
Jan Żankowski

350

귀하의 질문은 Java 코드와 관련이 있다고 가정합니다. 이 경우 실제로 1)을 달성하기 위해 추가 플러그인이 필요하지 않습니다. 환경 설정-> Java-> 편집기-> 조치 저장으로 이동하여 후행 공백제거 하도록 구성하십시오 .

그것의 소리로 당신은 이것을 팀 전체의 설정으로 만들고 싶습니다. 새 작업 공간이있을 때마다보다 쉽게 ​​작업하고 설정 작업을 기억하지 않으려면 저장 작업을 코드와 함께 SCM에 저장되는 프로젝트 별 기본 설정으로 설정할 수 있습니다.

이를 수행하려면 프로젝트를 마우스 오른쪽 단추로 클릭하고 특성-> Java 편집기-> 조치 저장으로 이동하십시오 . 거기에서 프로젝트 특정 설정을 활성화하고 후행 공백을 제거하도록 구성 할 수 있습니다 (다른 유용한 것들 중에서).

NB :이 옵션은 Eclipse Kepler (4.3) 및 다음 릴리스에서 제거되었습니다.

NB # 2 : 이클립스 루나에서 옵션이 돌아온 것 같습니다-Luna Service Release 1a (4.4.1)


2
고마워, gcastro-AnyEdit보다 쉽습니다. 불행히도, 그것은 편집중인 전체 파일을위한 것입니다 .. 여전히 내가 변경 한 줄에 대해서만 어떻게 해야할지 모르겠습니다-아마도 불가능할 것 같습니다.
Jan Żankowski

7
자바에 좋다; C / C ++에도 좋습니다. PyDev의 Python은 아닙니다.
Craig McQueen

14
PyDev의 Python의 경우이 기능 요청을했습니다. 출처
Craig McQueen

5
참고로 ... PHP와 같은 개념입니다. 환경 설정-> PHP-> 편집기-> 작업 저장.
seanmrafferty

1
이것이 효과가 있었는지는 모르겠지만 최신 버전의 Eclipse (Kepler)에서는 작동하지 않는 것 같습니다. 편집 된 줄에서만 포맷터를 실행할 수 있지만 공백을 자르는 것은 모든 줄로 제한되거나 빈 줄을 무시하는 것이 실제로 성가시다.
Thor84no

73

플러그인이 필요하지 않습니다. 예를 들어, JAVA를 코딩하면 저장 조치를 구성하는 후행 공백을 지울 수 있습니다.

이클립스 3.6

Preferences-> Java-> Editors-> Save Actions-> 확인 Perform the selected actions on save-> 확인 Additional actions-> Configure..버튼을 클릭하십시오 .

에서 Code organizing탭 확인Remove trailing whitespace


4
이것은 "후행 공백 제거"에 대한 "추가 작업"을 살펴 보는 것이 가장 좋습니다. 감사.
DavidRR

7
이것은 .java 파일에서만 작동합니다. 저는 보통 수십 개의
익스텐트로

Eclipse 4.12에서 작동
Matilda Smeds

46

PyDev의이 그것을 할 수 있습니다 Ctrl+ Shift+ F당신이, 또는으로 작업을 수행하는 코드 포맷 옵션 설정이있는 경우 during saving:

Eclipse-> Window-> Preferences-> PyDev-> Editor-> Code Style-> Code Formatter:

나는 적어도 이것들을 사용한다 :

  • 저장하기 전에 자동 형식
  • 오른쪽 트림 라인?
  • 파일 끝에 새 줄 추가

5
이것은 편집 된 선 에서만 공간을 제거하는 문제를 다루지 않습니다 . 또한 모든 Code Formatter 옵션을 실행하고 선택하지 않은 옵션은 "무시 / 사용하지 않음"과 동일하지 않으므로 위험한 기능 입니다. 예 : "쉼표 뒤에 공백 사용"이 선택되어 있지 않으면 Code Formatter는 옵션을 무시하지 않고 해당 공백 을 제거 합니다.
JCotton

7
PyDev Code Formatter에는 새로운 옵션이 있습니다. 저장시 변경된 행에만 서식을 적용하십시오.
warvariuc

2
-1 너무 일반적인 답변을 제시 한 경우 – 문제는 단지 공백에 관한 것입니다. 자동 코드 형식화를 활성화하면 소스 커밋에 계획되지 않은 항목이 포함되어 커밋 제목과 관련이없는 항목이 커지므로 지저분한 기록이 발생합니다.
Erik Kaplun

36

다음을 수행하십시오.

Preferences-> Java-> Editor->Save Actions

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


19

Eclipse에서 키를 맵핑하여 전체 파일에서 후행 공백을 수동으로 제거 할 수 있지만 요청시 자동으로 저장하는 대신에만 공백을 제거 할 수 있습니다. (기본 설정 / 키를 누른 다음 일련의 키를 파일 / 후행 공백 제거에 매핑) 모든 새 파일을 삭제하고 레거시 코드는 그대로 유지하려는 경우에 유용합니다.

또 다른 전략은 공백의 시각적 표시를 활성화하는 것이므로 최소한 공백을 추가 할 때 알 수 있습니다. 내가 아는 한, 후행 공백 만 표시하는 방법은 없지만 잘못되었다는 것이 기쁠 것입니다.


이 답변에 대단히 감사합니다! 지금까지 Aptana 플러그인에서 찾은 유일한 방법입니다.
Igor Zinov'yev

11

핀치에서, 후행 공백 제거를 전혀 지원하지 않는 편집기 (예 : XML 편집기)의 경우 찾기 및 바꾸기를 수행하여 정규식을 활성화 한 다음 "[\ ​​t]를 찾아 모든 행에서이를 제거 할 수 있습니다. + $ "로 바꾸고" "(공백)으로 바꿉니다. 아마 더 나은 정규 표현식이있을 수 있지만 AnyEdit을 설치할 필요없이 저에게 효과적입니다.


9

나는 AnyEdit도 말할 것입니다. 이 특정 기능을 제공하지는 않습니다. 그러나 사용자와 팀이 각 저장 작업에서 AnyEdit 기능을 사용하는 경우 파일을 열 때 뒤에 공백이 없어야합니다.

따라서이 파일을 수정하고 새 후행 공백을 추가하면 저장 작업 중에 AnyEdit는이 새 공백 만이 파일에서 후행 공백이므로 제거합니다.

어떤 이유로 인해 수정 되지 않은 줄에 후행 공백을 유지 해야하는 경우 답이 없으며 Eclipse 플러그인에 이러한 종류의 기능이 있는지 확실하지 않습니다 ...


4
예, 수정하지 않은 줄에 공백을 유지하고 싶습니다. Intellij Idea의 기본 동작입니다 (내 줄에서 공백을 제거하고 다른 줄에 유지). Eclipse에서 가져오고 싶습니다. . 답변 해주셔서 감사합니다.
Jan Żankowski 2016 년



4

유닉스 명령 줄 도구 인 sed를 사용하면이 작업을 쉽게 수행 할 수 있습니다. Eclipse에서 매크로를 작성하여 다음을 실행할 수 있습니다.

sed -i 's/[[:space:]]*$//' <filename>

4

@ Malvineous가 말했듯이 전문적이지는 않지만 찾기 / 바꾸기 방법을 사용하여 후행 공백을 제거하는 방법 (탭 U + 0009 및 공백 U + 0020 포함).
Ctrl + F (또는 command + F)를 누르십시오.

  1. 찾기 [\t ][\t ]*$
  2. 빈 문자열로 교체
  3. 정규식 사용
  4. 전부 교체

추가 :
선행 공간을 제거하려면 빈 줄을 제거하는 ^[\t ][\t ]*대신 [\t ][\t ]*$
찾기를 찾으십시오.^\s*$\r?\n


1
방법에 대해 [\t ]+$대신 [\t ][\t ]*$?
Jonah Graham

1

귀하의 질문의 두 번째 부분에 대한 해결책을 모릅니다. 그 이유는 내가 바뀐 정의 방법이 명확하지 않기 때문입니다 . 언제 바뀌 었습니까? 2 저장 사이 또는 커밋 사이 ... 기본적으로-잊어 버리십시오.

나는 당신이 어떤 지침을 고수하고 싶지만 나머지 코드를 만지지는 않는다고 가정합니다. 그러나 지침은 물기와 조각이 아닌 전체적으로 사용해야합니다. 그래서 내 제안은-모든 코드를 지침으로 변경하십시오 : 그것은 일회성 작업이지만 모든 개발자가 프로젝트에 대해 동일한 설정으로 동일한 플러그인 (AnyEdit)을 가지고 있는지 확인하십시오.


7
저장 조치이므로 저장간에 행이 변경됩니다. Eclipse는 이미 사이드 바에 표시하기 위해 이러한 라인을 추적합니다.
starblue 2016 년

0

git 에이 명령을 사용했습니다. git config --global core.whitespace cr-at-eol

^M후행 문자를 제거합니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.