숭고한 텍스트에서 공백 들여 쓰기를 수정 / 변환하는 방법?


228

예 : 공백 들여 쓰기가 2 개인 문서가 있고 공백 들여 쓰기가 4 개인 경우 Sublime Text 편집기를 사용하여 자동으로 변환하려면 어떻게해야합니까?

답변:


525

Sublime Text 2 또는 3에는 문서의 들여 쓰기 간격을 변환하는 깔끔한 트릭이 있습니다.

TL; DR :

2 개의 공백에서 4 개의 공백으로 변환 :

탭 너비가 2로 설정되어 있는지 확인하십시오. 2 칸 들여 쓰기를 탭으로 변환하고 탭 너비 4로 전환 한 다음 들여 쓰기를 다시 공백으로 변환하십시오.

자세한 설명 :

이동 :

View -> Indentation

읽어야합니다.

  • Indent using spaces [x]
  • Tab width: 2

고르다:

  • Convert Indentation to Tabs

그런 다음 다음을 선택하십시오.

  • Tab width: 4
  • Convert Indentation to Spaces

끝난.


5
감사합니다! : D 많은 시간을 절약했습니다. 노트. "찾기 : space-space => 모두 선택 => 탭"
Automatico

11
나는 당신을 위해이 모든 것을 수행하는 숭고한 매크로를 만들었습니다 . gist.github.com/joshmfrankel/5707020 . 즐기십시오 :-)
Josh Frankel

2
탭이 전체 탭 너비를 차지하지 않는 텍스트 파일이있는 경우 "들여 쓰기를 공백으로 변환"도 작동한다는 점을 지적하고자합니다. 작성자가 탭을 사용하여 열의 형식을 지정한 파일의 경우 탭에서 찾기 및 바꾸기를 수행하면 결과 열이 더 이상 정렬되지 않습니다. "들여 쓰기를 공백으로 변환"을 사용하면 올바르게 정렬됩니다.
Joe Pinsonault

또한 Josh의 매크로를보기 전에 동료를 위해 매크로 및 예제 키 바인딩을 만들었습니다. 내 ctrl + 2 및 ctrl + 4를 사용하여 앞뒤로 전환 할 수 있습니다. gist.github.com/beaugunderson/8588871
Beau

74

실제로 내 정신이 사용자 환경 설정을 다음과 같이 정의하는 것이 좋습니다.

"translate_tabs_to_spaces": true,
"tab_size": 2,
"indent_to_bracket": true,
"detect_indentation": false

detect_indentation: false는 반대로, 모든 파일에 이러한 설정을 존중 라임을 강제로, 특히 중요 View -> Indentation설정.

화려하게 만들고 싶다면 다음을 붙여 넣어 코드 (YMMV)를 자동으로 다시 들여 쓰는 키보드 단축키를 정의 할 수도 있습니다 Sublime -> Preferences -> Key Binding - User.

[
  { "keys": ["ctrl+i"], "command": "reindent" }
]

공백을 시각화하려면 다음을 수행하십시오.

"indent_guide_options": ["draw_active"],
"trim_trailing_white_space_on_save": true,
"ensure_newline_at_eof_on_save": true,
"draw_white_space": "all",
"rulers": [120],

9

내 생각에 Magne보다 간단한 솔루션을 찾았습니다.

맥 :

"cmd+f" => "  "(two spaces) => "alt+enter" => "arrow right" => "  "(two more spaces) => set tab width to 4(this can be done before or after.

창문이나 다른 플랫폼에서 cmd+f, alt+enter당신 findselect all핫키가 무엇이든 변경 하십시오 .

참고 :이 방법은 코드 내에 공간이 두 개 이상 있으면 "오류"가 발생하기 쉽습니다. 따라서 Magne의 방법보다 안전하지 않지만 더 빠릅니다 (적어도 나를 위해).


나는 이처럼 작동하지 못했지만 원리를 사용하고 찾기 및 바꾸기 (Mac의 경우 cmd-option-F)를 수행하고 ""(4 공백)을 ""(2 공백)으로 바꿨습니다. 그리고 효과가있었습니다!
evanbikes

나는 이것을 할 다른 방법을 찾았지만 언어마다 다릅니다. RubyFormat다음 과 같은 포맷팅 플러그인이있는 경우 원하는 탭 크기를 설정 한 다음 코드를 다시 포맷 할 수 있습니다. 의 경우 RubyFormat그 것이다 cmd+shift+R.
Automatico

7

2-> 4 공간을 변환 할 때 많은 제안이 작동하지만. 4-> 2를 변환 할 때 몇 가지 문제가 발생했습니다.

내가 사용한 결과는 다음과 같습니다.

Sublime Text 3/Packages/User/to-2.sublime-macro

[
  { "args": null, "command": "select_all" },
  { "args": { "set_translate_tabs": true }, "command": "unexpand_tabs" },
  { "args": { "setting": "tab_size", "value": 1 }, "command": "set_setting" },
  { "args": { "set_translate_tabs": true }, "command": "expand_tabs" },
  { "args": { "setting": "tab_size", "value": 2 }, "command": "set_setting" }
]

5

검색을 사용하고 더 빨리 교체하면 다음과 같이 정규식 대체를 사용할 수 있습니다.

찾기 (정규식) : (^|\G) {2}( "{2}" 대신 <space>{2}두 개의 공백 만 쓸 수 있습니다. 명확성을 위해 여기에 사용했습니다.)

4 개의 공백 또는 원하는대로 바꾸십시오 \t.


5

나는 그것을 위해 플러그인을 썼다. 여기에서 찾 거나 패키지 제어에서 "다시 들여 쓰기"를 찾을 수 있습니다 . Kyle Finley가 작성한 것과 거의 동일하지만 2와 4 사이의 변환을위한 단축키와 그 반대로의 편리한 방법이 있습니다.


2

이 코드를 사용자 정의 키 바인딩에 추가해야합니다.

{ "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} }

ctrl + f12를 누르면 파일이 탭 크기 4로 다시 들여 쓰기됩니다. 다른 탭 크기를 원하면 "값"숫자 만 변경하면됩니다. 테 형식은 간단한 JSON입니다.


고마워요! 다음과 같이 2와 4를 추가했습니다.{ "keys": ["ctrl+f10"], "command": "set_setting", "args": {"setting": "translate_tabs_to_spaces", "value": 2} }, { "keys": ["ctrl+f11"], "command": "set_setting", "args": {"setting": "tab_size", "value": 2} }, { "keys": ["ctrl+f12"], "command": "set_setting", "args": {"setting": "tab_size", "value": 4} },
JREAM

0

내가 한 가장 쉬운 일은

들여 쓰기를 탭으로 변경

내 문제가 해결되었습니다.

당신도 똑같이 할 수 있습니다

우주로

당신의 필요에 따라.

동일한 스냅 샷을 언급했습니다.

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


예, 그러나 질문은 공백으로 들여 쓰기로 시작하고 끝나는 상황을 묻습니다.
Magne

0

최근에 비슷한 문제에 직면했습니다. 나는 숭고한 편집기를 사용하고있었습니다. 코드가 아니라 편집기에 문제가 있습니다.

아래 환경 설정의 변경 사항이 저에게 효과적이었습니다.

숭고한 텍스트 메뉴-> 환경 설정-> 설정 : 구문 특정 :

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