vim에서 위 줄과 결합하는 것이 왜 :-1j입니까?

vim에서 위 줄과 결합하는 것이 왜 :-1j입니까?

vim에서 왜 :-1j위 줄에 합류해야 합니까?

예를 들어 :g/^ /-1j공백으로 시작하는 모든 줄을 연결합니다.

명령이 어떻게 생성되는지 이해하면 명령을 기억하기가 더 쉽습니다. 이 경우에는 예상한 대로였습니다.:g/^ /-1J

-1move는 위의 줄로 이동하고, J아래의 줄과 합류하는 것입니다.

답변1

명령줄에서는 일반 명령을 사용할 수 없습니다.있는 그대로.

는 의 약어입니다 :g/^ /-1j. 한 줄 위로 올라가서( 일 수도 있음 ) 실행합니다 .j:join-1-:join

에서 는 Vim에게 아무 의미가 없습니다. 즉 :g/^ /-1J, J해당 컨텍스트에서 벗어난 일반 모드 명령을 사용하고 있으므로 기본적으로 Vim은 -1명확한 오류 메시지를 출력하는 것 외에는 아무것도 하지 않습니다.

Vim은 일반 모드 명령이 아닌 Ex 명령을 기대합니다.

콜론은 한 번만 필요하므로 Ex 명령을 인식하지 못하기 때문에 혼란스러울 수 있습니다. 몇 개의 콜론을 추가하면 전체 명령이 더 이해가 될 것입니다.

:g/^ /:-1:j

명령줄에서 일반 모드 명령을 사용하려면 다음을 사용하십시오 :norm.

:g/^ /-1norm J

답변2

에는 두 가지 유형의 명령이 있습니다 vi. 파일의 어느 곳에서나 명령 모드에서 직접 호출할 수 있는 명령이 있으며(이러한 종류의 명령에 대한 특정 이름이 있는지는 확실하지 않습니다), ex특별히 라인에서 작동하는 명령이 있습니다. 문자) :를 호출하려면 문자가 필요합니다.

일반적으로 명령과 함께 명령만 ex사용할 수 있습니다 :g.

관련 정보