zsh bindkey ctrl-enter를 눌러 키티를 사용하여 자동 제안 수락

zsh bindkey ctrl-enter를 눌러 키티를 사용하여 자동 제안 수락

ctrl-enterzsh 자동 제안을 허용하도록 설정하고 싶습니다 . 계속 노력했지만 bindkey "\C-\r" autosuggest-accept결국 Enter 키를 누르는 것으로 이해되었습니다(그래서 재정의로 인해 accept-line아무것도 하기가 어려워졌습니다 :)). 나는 bash에서 자동 제안을 통해 이 작업을 수행하는 기능을 사용 kitty하고 있으므로 zsh에서도 구현될 수 있기를 바랍니다.kittyble.sh

답변1

\C-\r전통적으로 이것은 효율적이지 않았기 때문에 터미널 토지에서는 발생하지 않았습니다.ASCII 제어 문자. 따라서 대부분의 터미널에서 달리 구성하지 않는 한 누르면 CtrlEnter동일한 출력 (또는 아무것도 출력되지 않음)이 출력됩니다.Enter

ble.sh그러나 이로 인해 Katie는특수 XTerm 모드전통적으로 (다른) 출력을 생성하지 않았던 수정자 키 조합을 구현하는 것이 가능합니다. ble.shZsh에 상응하는 것이 존재하는지 모르겠지만 작성하는 것이 가능할 것입니다. 간단히 말해서, 이러한 스크립트(또는 원하는 경우 플러그인)는 다음을 수행해야 합니다.

  1. 이 특수 모드에서 다른 출력을 생성하는 모든 기존 키 바인딩에 대한 새 키 바인딩을 추가합니다.
  2. 언제든지Zsh 라인 편집기(ZLE)초기화하고 이 모드를 활성화합니다.
    autoload -Uz add-zle-hook-widget
    modify-other-keys-extended() {
      print -n '\e[>4;2m'
    }
    add-zle-hook-widget line-init \
        modify-other-keys-extended
    
  3. ZLE가 완료될 때마다 이 모드를 비활성화합니다.
    modify-other-keys-off() {
      print -n '\e[>4;0m'
    }
    add-zle-hook-widget line-finish \
        modify-other-keys-off
    

관련 정보