Vim 편집기에서 행 세트의 공백을 삭제하십시오.

파일에 다음과 같은 텍스트가 있습니다.

  sample text
    some random text
            even more random text
text with no indent
 worst indention

각 줄 앞에 빈 공간을 삭제해야합니다. 한 줄에 내가하는 일은
0dw

를 사용하여 동일한 명령을 반복 할 수 있습니다. 다음 줄로 직접 이동하면됩니다.

그러나 해당 행 블록에 ‘0dw’를 적용하는 방법이 있습니까?

매크로를 사용하는 방법이 있다고 생각하지만 이전에는 사용하지 않았습니다. 그러나 다른 선택이 없다면 기꺼이 배우겠습니다.



답변

:%s/^\s\+
" Same thing (:le = :left = left-align given range):
:%le

http://vim.wikia.com/wiki/Remove_unwanted_spaces 에서 자세히 알아보십시오.

특정 범위의 행에 대해이 작업을 수행하려는 경우 :

:19,25s/^\s\+//

BTW, vim 학습을 시작하는 가장 좋은 방법은 vimtutor명령 을 실행 하는 것입니다. Vim 편집기에서 Vim을 사용하는 방법을 알려줍니다.


답변

이를 수행하는 다른 방법은 VIM의 들여 쓰기 도구를 사용하는 것입니다 (보통 </에 바인딩 됨 >). 먼저 어떤 라인이 영향을 받는지 나타내는 방법이 필요합니다. 시각적 선택 모드 또는 영향을받을 줄 범위를 지정하는 다른 방법을 사용한 다음 임의로 높은 수 또는 들여 쓰기 수준을 사용하여 제거 할 수 있습니다. 9<일반적으로 현재 줄에서 적어도 9 단계의 가능한 들여 쓰기 (탭 / 공백)를 제거하는 트릭을 아주 잘 수행합니다.


답변

간단한 다음 단계 에서이 작업을 수행하는 방법이 있습니다.

1. press `v` to go to visual selection mode
2. select the lines you want to affect
3. :'<,'>normal 0dw

세 번째 단계에 대한 설명 :

0 줄의 시작으로 이동합니다.

dw 단어를 삭제합니다 (빈 공간).

normal명령을 적용합니다 0dw.

'<,'> 시각적 모드에서 선택한 모든 선에 대해 법선을 반복합니다.


답변

ctrl+v원하는 것과 비슷하지만 정확하게 할 수없는 것을 할 수 있습니다. 시각적 블록을 선택하고 로트에 하나의 명령을 적용 할 수 있습니다.


답변