한 번의 키 입력으로 Vim에서 공백으로 확장 된 “탭”을 삭제 하시겠습니까? 합니다. tab키를 사용하면 들여 쓰기를

Vim으로 파이썬 코드를 편집 합니다.

tab키를 사용하면 들여 쓰기를 위해 4 개의 공백이 삽입됩니다. 하나의 “Backspace”(?) 스트로크를 사용하여 공백을 삭제하려면 어떻게해야합니까?

그것에 대한 “설정”옵션이 있어야합니다 …

내 .vimrc는 다음과 같습니다.

set autoindent
set ts=4
set sw=4
set et


답변

Ctrl+D하나의 탭 정지를 백업하는 데 사용할 수 있습니다 . 이것은 실제로 전체 줄을 왼쪽의 탭 정지로 이동시킵니다. Ctrl+T오른쪽에도 같은 일을합니다. 참고 삽입 모드에서 (사용이 키 입력에만 작업 <<>>명령 모드에서 등가물은).


답변

set softtabstop=4

답변

tl; dr : set tabstop=4 softtabstop=-1 shiftwidth=0 expandtab

짧은 형식: set ts=4 sts=-1 sw=0 et

설명

로 설정하면 softtabstop(또는 sts) -1자동으로 tabstop( ts) 와 동일하게 동작하므로 탭을 많이 변경하면 번거 로움이 줄어 듭니다. shiftwidth( sw)를 설정 0하면 효과적으로 동일하게 만들어야합니다 tabstop.

상세히

shiftwidth sw

(자동) 들여 쓰기의 각 단계에 사용할 공간 수입니다. 에 사용 cindent, >>, <<, 등
제로 때 tabstop값이 사용됩니다.

tabstop ts

파일에서 a가 계산하는 공간 수입니다. : retab 명령 및
softtabstop옵션 도 참조하십시오
.

softtabstop sts

자리의 수있는 Tab삽입과 같은 편집 동작들을 수행하기위한 계산하는 동안 Tab또는 사용 BS. 그것은
느낌 처럼 TabS가 삽입되는 사실 공간과의 혼합 사용하는 동안. 이 tabs설정을 표준 값 으로 유지하면서 로 설정 한대로 편집 할 수 있으면 유용 합니다 sts. 때는
sts음수의 값이 shiftwidth사용된다.
tabstops를 많이 변경하면 번거 로움을 덜어줍니다. 때는 expandtab설정되지 않으며, 공간의 수는 사용함으로써 최소화 Tab들.

expandtab et

삽입 모드에서 : 적절한 수의 공백을 사용하여을 삽입하십시오. 공백은 ><명령과 함께 들여 쓰기에 사용 autoindent됩니다. expandtab켜져 있을 때 실제 탭을 삽입하려면 Ctrl-를 사용하십시오 V Tab. 참조
: retab


답변

나는 이것을 원했던 누군가를 위해 GreedyBackspace.vim 을 썼습니다 . 개인적으로 사용하지 않으므로 업데이트한지 오래되었습니다. 그래도 최근에 버그 보고서를받지 못했습니다.


답변

몇 가지 옵션 :

  1. 모든 공백을 ‘리탭’하여 탭으로 대체 할 수 있습니다. 그렇게하면 쉽게 삭제할 수 있습니다.
  2. 당신은 (테스트되지 않았으므로 여기서 아이디어를 제안하고 있습니다) 일반 모드에서 백 스페이스 키의 4 배를 ‘실행하는’기능을 만들 수 있습니다. 그런 다음 무언가에 매핑하십시오. 그러나 공백이나 중요한 문자를 삭제할지 여부를 알 방법이 없으므로 잠재적으로 안전하지 않습니다.
  3. ‘4X’는 마지막 4자를 삭제합니다 (작고 크지 않은 X는 작고 Del 키처럼 작동합니다).

답변

가장 쉬운 방법은 <<, A를 반복.


답변

VIM 의 확장 탭 설정을 사용하여 확인 했습니까 ?

:set noet

파일 작업을하는 동안 탭을 유지하는 것이 좋습니다.
필요할 때 탭을 4 칸 또는 필요한만큼 교체합니다.

:%s/<ctrl+V><tab>/    /g
                  ----

작은 보너스로 소스 파일은 탭당 3 자씩 짧아집니다 :-)