[vim] vim : 여러 줄의 처음 2 개 공백 삭제
VIM을 사용하여 각 줄의 처음 2 개 공백을 삭제하는 가장 쉬운 방법은 무엇입니까? 기본적으로 각 줄에 대해 “2x”를 반복합니다.
설명 : 여기에서 처음 두 문자가 공백이라고 가정합니다. 따라서 문제는 여러 줄을 함께 들여 쓰기하는 것입니다.
답변
더 많은 옵션. “가장 쉬운 방법”을 결정할 수 있습니다.
모든 줄의 처음 2자를 제거합니다.
:%normal 2x
공백 인 경우에만 모든 줄의 처음 2자를 제거합니다.
:%s/^ /
마지막 슬래시는 선택 사항이며 두 개의 공백을 볼 수 있도록 여기에만 있습니다. 슬래시 없이는 :
.
모든 줄에 대해 들여 쓰기를 왼쪽으로 이동 :
:%normal <<
답변
- 로
Ctrl-V
(또는 붙여 넣기에Ctrl-Q
사용Ctrl-V
하는 경우) 시각적 블록 모드로 들어갑니다 . - 화살표로 삭제할 영역을 선택하십시오.
- 그런 다음를 눌러
d
선택한 영역을 삭제합니다. - 프레스
Esc
답변
검색 및 바꾸기를 사용할 수도 있습니다 (ex 편집기에서 :문자 를 통해 액세스 ).
무엇이든지 처음 두 문자를 제거하십시오.
%s/^.\{2}//
처음 두 개의 공백 문자를 제거합니다 (처음에 있어야하고 둘 다 공백이어야합니다 … 해당 기준과 일치하지 않는 행은 건너 뜁니다).
%s/^\s\{2}//
답변
을 가정하고 shiftwidth=2
다음 범위로 시프트를 사용합니다.%
:%<
답변
두 개의 공백 또는 두 개의 문자? ( 2x
후자를 수행합니다.)
:[range]s/^ //
각 줄의 시작 부분에서 두 개의 공백을 삭제합니다. 전체 파일에 대해이 작업을 수행하는 것처럼 %
(과 동일)을 사용 하십시오.1,$
[range]
:[range]s/^..//
각 줄의 처음 두 문자를 삭제합니다. ( 반드시 두 개의 열이 아닌 두 개의 문자를 삭제합니다 . 탭 문자는 하나의 문자로 계산됩니다).
실제로 수행중인 작업이 들여 쓰기를 변경하는 경우 <
명령을 사용하여 줄이거 나 >
명령을 사용하여 늘릴 수 있습니다. shiftwidth
이동 거리를 제어하도록 설정 합니다. 예 :
:set shiftwidth=2
답변
두 가지 접근 방식 중 하나를 시도합니다.
Ctrl+V
(종종에 매핑 됨Ctrl+Q
)을 사용하여 삭제할 블록에서 열 편집을 수행합니다 .q1
(또는 기록 레지스터를 표시하려는 다른 숫자 / 문자)를 사용하여 첫 번째 행에 매크로를 기록한 다음@1
(이전 예제를 사용하려면) 해당 매크로를 여러 번 재생합니다 . 더 좋은 방법은 앞의 숫자를 사용하여 실행 시간-10@1
예를 들어 매크로를 10 번 실행하지만 기록한 내용에 따라 다릅니다 . 관련이있는 경우 커서를 되감0
거나 한 줄을 드롭j
해야합니다.
답변
또한 추가 할 사항 : vim에 대한 들여 쓰기를 구성하는 방법을 배우십시오. 그러면 간단한 gg=G
것이 트릭을 할 것입니다.