모든 줄에 명령을 어떻게 적용합니까?


19

문서의 모든 줄을 들여 쓰려면 >G현재 줄과 아래에 입력 한 다음 >gg위 줄에 적용 할 수 있습니다.

>한 번에 모든 줄에 적용 할 수있는 조합이 있습니까?

답변:


19

당신이 찾고있는 :>명령의 범위 1,$( %전체 파일에 대한 짧은).

:%>

자세한 내용은 다음을 참조하십시오.

:h :>
:h :range

5
이 질문의 제목 ( "모든 줄에 명령 적용")으로 인해 질문의 예가 ​​일반 모드 연산자를 언급 >하고이 답변이 명령 모드 명령을 사용 한다는 점에 주목할 가치가 있다고 생각합니다 :>. 이것들은 엄밀히 말하면 같은 것이 아닙니다. 그것들이 같은 이름을 갖는 것은 우연의 일치로 간주되어야합니다. 연산자와 명령을 일반적으로 교환 할 수 있다고 가정하지 마십시오. 예를 들어, gU연산자는 텍스트를 대문자로 변환하지만 전체 버퍼에 동일하게 적용하는 유효한 명령 :%gU아닙니다 .
tommcdo


3

일반 모드를 종료하지 않고 간단하게 수행 할 수 있습니다.

gg>G

2
여기서 단점은 파일에서 당신의 위치를 ​​잃는다는 것입니다
TankorSmash

다른 모든 답변은 그 단점을 공유하며 OP는 "커서 위치 존중"을 요구 사항으로 언급하지 않았습니다.
romainl

1
<co>를 사용하여 이전 위치로 돌아갈 수 있습니다. @romainl의 솔루션을 사용하려면 두 번 되돌아 가고 다른 한 번만 돌아 가면됩니다
Brett Y

분명히 당신은 당신의 자리를 지키는 것의 가치와 그 입장을 지키는 대답이 얼마나 가치 있는지를 이해할 수 있습니다.
TankorSmash

1
그것이 다운 보트되지 않는 이유입니다. 어딘가에 더 나은 옵션이 있으며 계속 지켜봐야한다는 메모입니다. 예를 들어, 프로그래밍 SE 사이트에서 문제를 해결하는 조잡한 코드는 문제를 해결하지만 여전히 문제를 해결하고 좋아 보이는 다른 솔루션을 찾을 것으로 기대합니다.
TankorSmash

3

아직 언급되지 않은 다른 옵션 :

:g/^/>

이것은 >패턴과 일치하는 모든 줄 에서 명령 을 실행합니다 ^.

단점은 검색 기록을 덮어 씁니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.