developer tip

Sublime Text 2 : 요청시 후행 공백 제거

optionbox 2020. 8. 30. 08:12
반응형

Sublime Text 2 : 요청시 후행 공백 제거


Sublime Text 2는 저장할 때 파일의 후행 공백을 삭제할 수 있다는 것을 알고 있습니다.

팀에서 작업하고 파일에 변경 사항을 커밋 할 때 이것은 동료 코드 검토를 더 복잡하게 만드는 큰 차이를 생성하는 경향이 있습니다. 그런 이유로 나는 어쨌든 파일에 큰 변경 사항을 커밋 할 때만 공백 정리를 수행하고 사소한 변경 사항에 대해서는 공백을 그대로 두는 것을 선호합니다.

.NET 이외의 파일 에서 요청시 공백 제거를 실행하는 명령이 있는지 알고 싶습니다 "Activate trimming on save > Save file > Deactivate trimming".

문서 및 stackoverflow에서 검색하면 관련성이 표시되지 않았으며 모든 링크가 저장시 자동 트리밍에 대해 이야기하는 것 같습니다.


주의 :이 플러그인을 사용하면 Sublime Text가 상당히 느려집니다.

나는 이것을 위해 TrailingSpaces 플러그인을 사용합니다.

후행 공백을 강조 표시하고 순식간에 삭제합니다.

ST2는 파일 저장시 후행 공백을 자동으로 삭제하는 방법을 제공합니다. 설정에 따라 강조 표시하거나 직접 삭제하는 것이 더 편리 할 수 ​​있습니다. 이 플러그인은 바로 그것을 제공합니다!

사용법 : "편집 / 후행 공백 / 삭제"를 클릭합니다.

키 바인딩을 추가하려면 "Preferences / Key Bindings-User"를 열고 다음을 추가하십시오.

{ "keys": ["ctrl+alt+t"], "command": "delete_trailing_spaces" }

Sublime Text 내에서 빠른 주문형 솔루션을 위해 다음 단계를 사용합니다.

  1. 찾기> 바꾸기 ...
  2. 무엇을 찾다: [ \t]+\n
  3. 다음으로 바꾸기 : \n
  4. 전부 교체

다음을 통해 많은 파일 세트에 대해이 작업을 수행 할 수도 있습니다.

  1. 찾기> 파일에서 찾기 ...
  2. 찾기: [ \t]+\n
  3. 어디:
  4. 바꾸다: \n
  5. 바꾸다

정규식을 사용하여 후행 공백을 제거 할 수 있습니다.

  1. 찾기> 바꾸기 ...
  2. 무엇을 찾다: [^\S\r\n]+$
  3. 바꿀 내용 : 비워 둡니다.
  4. '모두 바꾸기'를 클릭하십시오.

[^\S\r\n]+$정규식 "(공백 및 개행 탭 아니지만, 이중 부정 사용 그래서) 라인의 끝 다음에 적어도 하나 개의 공백 문자"를

정규식을 활성화해야합니다. 정규식 사용은 검색 대화 상자입니다.


다음은 플러그인이나 설정을 사용하지 않고 대부분의 상황에서 작동하는 매우 간단한 방법입니다.

  1. 다중 선택 및 모든 줄의 끝으로 커서 이동
  2. CTRL-Shift를 누른 상태에서 왼쪽, 오른쪽을 누릅니다.
  3. 이제 줄 끝에있는 공백과 탭을 선택해야합니다. Delete 또는 백 스페이스를 누릅니다.

    -이 시점에서 공백뿐 아니라 (및 +와 같은 특수 문자도 줄 끝에서 선택할 수 있습니다.

모든 라인을 다중 선택하는 방법 :

한 가지 방법은 가운데 마우스 키를 사용하여 세로로 선택한 다음 작은 선택 인 경우 End 키를 누르는 것입니다.

단축키 사용 :

  1. CTRL-A (모두 선택)
  2. CTRL-SHIFT-L (선택한 모든 줄에 커서 놓기)
  3. END (줄 끝으로 이동)

find 함수를 사용하여 공백 문자와 같이 모든 줄에있는 항목을 찾을 수도 있습니다.

  1. \ s (정규식 사용)
  2. 모두 찾기 클릭
  3. 각 줄의 끝에 여러 커서를 가져 오려면 "End"키를 누르십시오.

샘플 텍스트:

text and number     44  more text and a space  
text and number 44  more text and 2 tabs        
text and number 44  more text and no space or tab

text and number 44  more text after a line feed

여기에서 soulution을 찾았습니다. http://www.sublimetext.com/forum/viewtopic.php?f=4&t=4958

패키지를 수정할 수 있습니다.

trim_trailing_white_space.py

다음과 같이 기본 패키지 디렉토리에 있습니다.

import sublime, sublime_plugin

def trim_trailing_white_space(view):
    trailing_white_space = view.find_all("[\t ]+$")
    trailing_white_space.reverse()
    edit = view.begin_edit()
    for r in trailing_white_space:
        view.erase(edit, r)
    view.end_edit(edit)

class TrimTrailingWhiteSpaceCommand(sublime_plugin.TextCommand):
    def run(self, edit):
        trim_trailing_white_space(self.view)

class TrimTrailingWhiteSpace(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("trim_trailing_white_space_on_save") == True:
            trim_trailing_white_space(view)

class EnsureNewlineAtEof(sublime_plugin.EventListener):
    def on_pre_save(self, view):
        if view.settings().get("ensure_newline_at_eof_on_save") == True:
            if view.size() > 0 and view.substr(view.size() - 1) != '\n':
                edit = view.begin_edit()
                view.insert(edit, view.size(), "\n")
                view.end_edit(edit)

이제 키맵 구성에 명령을 추가 할 수 있습니다.

{ "keys": ["your_shortcut"], "command": "trim_trailing_white_space" }

참고 URL : https://stackoverflow.com/questions/12297169/sublime-text-2-trim-trailing-white-space-on-demand

반응형