vim에서 왜 :-1j
위 줄에 합류해야 합니까?
예를 들어 :g/^ /-1j
공백으로 시작하는 모든 줄을 연결합니다.
명령이 어떻게 생성되는지 이해하면 명령을 기억하기가 더 쉽습니다. 이 경우에는 예상한 대로였습니다.:g/^ /-1J
-1
move는 위의 줄로 이동하고, 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
.