Mac OS X의 zsh에서 Fn-Delete 바인딩


22

zsh에서는 Fn + Delete (정방향 삭제)를 누를 때마다 물결표 (~)가 삽입됩니다. 이것은 zsh에 키 바인딩이 없음을 나타냅니다.

어떻게 바인딩하고 정상적으로 작동하게합니까 (커서 앞의 삭제)?

답변:


20

먼저 어떤 시퀀스를 생성하는지 알아냅니다.

echo "CtrlVFnDelete" | od -c

그런 다음 일반 zsh 바인드 메커니즘을 사용하여 해당 시퀀스를 바인드하십시오.


1
~> echo "~"| od -c 0000000 ~ \ n 0000002 ~>이 정보로 지금 무엇을해야합니까?
토마스 R

10
@ rixth : 실제로 물결표 만 출력하지는 않습니다. 당신은 사용할 수 없습니다 echo "~", 당신은 실제로 이그나시오가 준 지시를 따라야합니다 . 내 시스템에서는 ^[[3~(또는 od출력 :) 033 [ 3 ~입니다. 그래서 당신의 명령이 될 bindkey "^[[3~" delete-char것입니다 ~/.zshrc.
추후 공지가있을 때까지 일시 중지되었습니다.

2
위의 내용을 명확하게하기 위해 ctrl-v"보통 이스케이프 처리되지 않은 문자로 다음 문자를 입력하는 대신 일반적으로 수행하는 작업 대신에 다음 문자를 삽입하십시오"를 의미하는 특수 이스케이프 시퀀스가 ​​있습니다. 의미는로 변환되지 않지만 ~이스케이프 시퀀스로 유지됩니다.
NHDaly

위의 출력을 사용하여 bindkey를 파생시키는 방법을 이해하지 못합니다. 내 출력은 0000000 C t r l V F n D e l e t e \n 0000016입니다.
Oliver Joseph Ash

4

나를 위해 위의 트릭을 수행하지 않았으므로 다음 키 바인딩을 내 키에 추가했습니다 ~/.zshrc.

bindkey "\e[3~" delete-char

참고 : 저는 Mac (High Sierra)에 있습니다.


그리고 바인딩하려는 다른 키의 코드를 아는 방법 (예 : Fn + F1)? 내에 해당 코드를 설정할 수 있습니다 ~/.zshrc.
alexventuraio

1
cat키를 입력 한 다음 입력 할 수 있습니다. Fn+F1저를 준다 ^[OP예를 들어.
LordTribual

1

bindkey 'CtrlvFnDelete' delete-char

단일 문자를 앞으로 삭제하기 위해 Fn+ Delete를 바인딩 합니다. 위의 내용이 명확하지 않으면 따옴표를 입력하는 사이에 Ctrl+ v, Fn+ Delete를 입력해야합니다. Ctrl+ v키 뒤에 오는 키의 리터럴 이스케이프 이스케이프 시퀀스를 입력 할 수 있습니다.

이 줄을 ~/.zshrc파일 에 넣을 수 있습니다 .

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