2011-08-05 2 views
59

VIM을 사용하여 각 줄의 처음 2 칸을 삭제하는 가장 쉬운 방법은 무엇입니까? 기본적으로 각 라인에 대해 "2x"를 반복합니다.vim : 여러 줄의 처음 2 칸 삭제

설명 : 여기서 처음 두 문자는 공백입니다. 그래서 질문은 여러 줄을 함께 들여 쓰기하는 것에 관한 것입니다. (당신이 붙여 넣기 위해 Ctrl-V를 사용하는 경우 또는 Ctrl-Q)

+0

공백에 관계없이 처음 두 문자가 무엇입니까? –

+0

처음 두 글자입니다. 처음 두 문자가 공백이라고 가정합니다. – zzhang

+0

나는 ex 편집기 모드에서 검색 및 바꾸기를 통해이를 수행하는 방법을 보여주었습니다. 한 가지 방법은 두 개의 공백으로 시작하는 줄에 대해서만이를 수행하고 두 개의 공백을 제거하는 것입니다. 다른 하나는 처음 두 글자가 무엇인지에 상관없이 배제됩니다. –

답변

78

몇 가지 추가 옵션이 있습니다. "가장 쉬운 방법"을 결정할 수 있습니다.

모든 라인의 첫 번째 두 문자를 제거

:%s/^/

주 마지막이 :

:%normal 2x 

들이 공간입니다 만, 모든 라인의 처음 두 문자를 제거 슬래시는 선택 사항이며 두 공간 만 볼 수 있도록 여기에 있습니다. 슬래시가 없으면 문자는 :을 포함하여 7 자입니다.

이동 들여 쓰기는 모든 라인 왼쪽으로 :

:%normal << 
+10

나는 Vim에서 무언가를하는 30 가지 다른 방법이 있다는 것을 좋아합니다. 이런 질문들은 당신이 결코 알지 못했던 것들을 가져옵니다. % 정상에 대해서는 전혀 몰랐습니다. –

+0

마지막 대시에 대한 설명을 가져 주셔서 감사합니다. 도움이됩니다. – ryanjdillon

+1

'%'기호는 단순히 "현재 행뿐만 아니라 문서의 각 행에 대해이 명령을 실행하십시오"라는 의미입니다. 나는 생각한다. 그것에 대한 많은 문서를 찾을 수 없습니다. – Sammaron

84
  1. Ctrl-V와 시각 블록 모드를 입력;
  2. 화살표를 사용하여 삭제할 영역을 선택하십시오.
  3. 그런 다음 d을 눌러 선택한 영역을 삭제하십시오.
+6

ctrl-v 을 눌러 제거 할 문자를 선택하고 d 절단하십시오. –

+2

별표 표시된 최고 응급 처치! :-) –

+0

이것은 내가 사용하는 모든 vim에서 작동하지는 않지만, 작동하는 것은 매우 편리하며, 실제로 수행하기 전에 삭제하려는 영역을 시각화하는 것이 좋다. – searchengine27

4

두 칸 또는 두 자? (2x 후자를한다.)

:[range]s/^ // 

각 행의 처음 두 공백 삭제; % (1,$에 해당)을 [range]으로 사용하면 전체 파일에서이 작업을 수행 할 수 있습니다.

:[range]s/^..// 

은 각 행의 처음 두 문자를 삭제합니다. 두 개의 문자 두 개를 삭제하며, 반드시 두 개 일 필요는 없습니다. , 탭 문자는 한 문자로 간주됩니다.

들여 쓰기를 변경하는 경우, < 명령을 사용하여 들여 쓰기를 낮추거나 > 명령을 사용하여 들여 쓰기를 늘릴 수 있습니다. 얼마나 멀리 이동하는지 제어하려면 shiftwidth을 설정하십시오.

:set shiftwidth=2 
10

또한 검색을 사용합니다 (를 통해 액세스 ex 편집기에서 : 문자) : 대체 할 수

상관없이 처음 두 문자를 제거하지 않습니다 무엇 :

%s/^.\{2}// 

제거 처음 두 개의 공백 문자 (시작 부분에 있어야하며 둘 다 공백이어야합니다 ... 해당 기준과 일치하지 않는 행은 건너 뜁니다) :

%s/^\s\{2}// 
+1

끝에있는/g은 불필요합니다. 한 줄에 하나씩 일치하는 것입니다. – bhinesley

+0

@bhinesley : 좋은 지적 ... 습관의 힘. 업데이트 됨. –

6

가 나는 두 가지 방법 중 하나를 시도 할 것 %

:%< 
2

의 범위와 변화를 사용하여 shiftwidth=2 가정 :

  1. bl에서 열 편집 Ctrl+V (주로 Ctrl+Q에 매핑 됨)을 사용하여 삭제하십시오.
  2. q1 (또는 레코딩 레지스터를 나타낼 다른 숫자/문자)을 사용하여 첫 번째 행에 매크로를 기록한 다음 @1을 사용하여 해당 매크로를 여러 번 재생합니다 (위의 예를 사용하십시오. 실행 횟수 - 예를 들어 [email protected]을 실행하면 해당 매크로가 10 번 실행됩니다. 그러나 기록한 내용에 따라 다르지만 커서를 되감거나 1 줄을 줄여야합니다 (j).
2

vim에 들여 쓰기를 구성하는 방법을 알아두면 간단한 gg=G이 트릭을 수행합니다.

관련 문제