나는 imap과 재귀와 같은 vim 매핑에 관한 두 부분으로 질문을했습니다. Vim에서 매핑은 오른쪽 재귀 적이거나 왼쪽 또는 오른쪽 재귀가 될 수 없지만 왼쪽 재귀 적으로 허용되지 않습니다. 왜 안돼?Vim 매핑에서 재귀에 관한 규칙은 무엇입니까?
제가:imap x xyz
후 삽입 모드에서 "X"를 입력 실행
(왼쪽 재귀), 버퍼로 입력 무엇
된다 : I는 I의 의미를 설명하기 위해 다음의 실시 예를 테스트xyz
내가 알 수있는 한,이 동작은 imap 대신 inoremap을 사용했을 때 일어날 일과 구별 할 수 없습니다.
(둘 재귀 왼쪽이나 오른쪽) 내가
:imap x yxz
다음 삽입 모드에서 'x'를 입력 실행하면, 버퍼에 넣어 (이 시도) 무엇 없습니다
y...yz
- 내가
:imap x yzx
다음 삽입 모드에서 'x'를 입력 실행하면
(오른쪽 재귀), 무엇이다 버퍼에 넣어 (이 시도) I는
:imap x abc :imap a x
후 삽입 모드에서 "X"를 입력하여 실행하는 경우 (상호 재귀)
yzyzyzyzyzyz...
이고, I는 "순환 매핑 E223"를 수신한다.
은 내가 Vim은 왼쪽 재귀 매핑과 상호 재귀 매핑을 허용하지 않습니다 것을 증명 한 것 같다,하지만 난 확인하고 싶습니다 : 규칙이 빔에 (상호 가능) 재귀 매핑을 정의하는 무엇입니까 ?
하지만 ... 왜?! 재귀 매핑의 유일한 유효한 사용은 버퍼 끝에 오류가 발생할 때까지 적용하는 것입니다. –
@IngoKarkat, 왜 안 되니? Vim은 그것을 허용하므로 어떻게 작동하는지 알고 싶었습니다. 당신이 제공하는 유스 케이스가 재귀 적 매핑 (아마도 상호적일 수있다)의 유일하게 유효한 사용인가 확신 할 수 있는가? – BlueBomber