VIM을 사용하여 각 줄의 처음 2 개 공백을 삭제하는 가장 쉬운 방법은 무엇입니까? 기본적으로 각 줄에 대해 "2x"를 반복합니다.
설명 : 여기에서 처음 두 문자가 공백이라고 가정합니다. 따라서 문제는 여러 줄을 함께 들여 쓰기하는 것입니다.
VIM을 사용하여 각 줄의 처음 2 개 공백을 삭제하는 가장 쉬운 방법은 무엇입니까? 기본적으로 각 줄에 대해 "2x"를 반복합니다.
설명 : 여기에서 처음 두 문자가 공백이라고 가정합니다. 따라서 문제는 여러 줄을 함께 들여 쓰기하는 것입니다.
답변:
더 많은 옵션. "가장 쉬운 방법"을 결정할 수 있습니다.
모든 줄의 처음 2자를 제거합니다.
:%normal 2x
공백 인 경우에만 모든 줄의 처음 2자를 제거합니다.
:%s/^ /
마지막 슬래시는 선택 사항이며 두 개의 공백을 볼 수 있도록 여기에만 있습니다. 슬래시 없이는 :.
모든 줄에 대해 들여 쓰기를 왼쪽으로 이동 :
:%normal <<
%기호는 단순히 "현재 행이 아닌 문서의 각 행에 대해이 명령을 실행"을 의미 한다고 덧붙일 것입니다 . 나는 생각한다. 그것에 대한 많은 문서를 찾을 수 없습니다.
Ctrl-V(또는 붙여 넣기에 Ctrl-Q사용 Ctrl-V하는 경우) 시각적 블록 모드로 들어갑니다 .d선택한 영역을 삭제합니다.Esc검색 및 바꾸기를 사용할 수도 있습니다 (ex 편집기에서 :문자 를 통해 액세스 ).
무엇이든지 처음 두 문자를 제거하십시오.
%s/^.\{2}//
처음 두 개의 공백 문자를 제거합니다 (처음에 있어야하고 둘 다 공백이어야합니다 ... 해당 기준과 일치하지 않는 행은 건너 뜁니다).
%s/^\s\{2}//
두 개의 공백 또는 두 개의 문자? ( 2x후자를 수행합니다.)
:[range]s/^ //
각 줄의 시작 부분에서 두 개의 공백을 삭제합니다. 전체 파일에 대해이 작업을 수행하는 것처럼 %(과 동일)을 사용 하십시오.1,$[range]
:[range]s/^..//
각 줄의 처음 두 문자를 삭제합니다. ( 반드시 두 개의 열이 아닌 두 개의 문자를 삭제합니다 . 탭 문자는 하나의 문자로 계산됩니다).
실제로 수행중인 작업이 들여 쓰기를 변경하는 경우 <명령을 사용하여 줄이거 나 >명령을 사용하여 늘릴 수 있습니다. shiftwidth이동 거리를 제어하도록 설정 합니다. 예 :
:set shiftwidth=2