Z 쉘 vi-모드에서 삽입 작업 시작을 검토합니다.

Z 쉘 vi-모드에서 삽입 작업 시작을 검토합니다.

백스페이스가 문자를 삭제할 수 있도록 Z 쉘의 vi-모드를 구성할 수 있습니까?~ 전에삽입 작업이 시작된 위치는 무엇입니까?

기본적으로 vim의 동작은 다음 줄을 추가하여 얻을 수 있습니다.~/.vimrc

set backspace=start

– Z 쉘 vi-모드에서 이것을 가질 수 있습니까?

답변1

zsh 구성에 다음을 추가할 수 있습니다.

bindkey -M viins '^?' backward-delete-char
bindkey -M viins '^H' backward-delete-char

설명:

Vi 모드사전 구성된 키맵 세트일 뿐입니다(포도원,vicmd,비오프,시각적) 특정 키를 특정 위젯에 바인딩합니다. 이러한 위젯 중 일부는 다음과 같은 방식으로 작동하도록 특별히 설계되었습니다.vi편집자가 그렇습니다.

귀하의 경우 이것은 기본적 vi-backward-delete-char으로Backspace포도원모드는 삽입 모드로 진입한 위치 이후에는 삭제하지 않는 특별한 기능을 가지고 있습니다.

종종 이러한 위젯의 약간 다른 버전이 존재합니다.이맥스편집자. 이 경우 backward-delete-char현재 삽입 세션으로 제한되지 않는 위젯이 됩니다 . 기본적으로 바인딩되어 있지만이맥스 모드, 어떤 모드에서 어떤 위젯을 사용할 수 있는지에 대한 엄격한 제한은 없습니다. backward-delete-char이내에 사용할 수 있습니다.vi 모드Backspace대신 위젯을 호출하기 위해 간단히 리바인딩하면 됩니다 backward-delete-char.

두 개의 바인딩이 있는 이유는 터미널에 따라 달라지며 두 키 시퀀스 중 를 누를 때 전송되는 것 ^?입니다 . 기본적으로 둘 다 동일한 위젯에 바인딩되어 있습니다.^HBackspacevi 모드게다가이맥스 모드.

관련 정보