문자를 문자 그대로 입력할 수 있습니다.사용
tty 드라이버의 "lnext" 기능(보통 기본적으로 ^V)
그러나 터미널 에뮬레이터에서는 Ctrl+를 "붙여넣기"에 바인딩합니다 . (제어 흐름을 사용하지 않기 때문에) + 에 v다시 바인딩하고 싶습니다 . 나는 다음을 시도했다lnext
Ctrlq~/.zshrc
setopt noflowcontrol # Don't use ^s and ^q for control flow
bindkey -r "^Q" # Unbind ^q from push-line
stty lnext '^Q' # Bind ^q to lnext
그러나 작동하지 않는 것 같습니다. + lnext
에 다시 바인딩하는 방법이 있나요 ?Ctrlq
편집하다
추가 문제 해결을 수행했지만 다른 stty 키를 다시 바인딩할 수 없는 것 같습니다. 테스트를 위해 제거한 setopt noflowcontrol
다음 stty start '^A'
또는 stty start '^B'
. 둘 다 아무런 효과가 없습니다. start
여전히 Ctrl+ 에 바인딩되어 있습니다 q. (FWIW 나는 문자 그대로 ^A
또는 앞의 ^B
문자 자체를 시도했습니다.)lnext
답변1
stty lnext
터미널 장치 라인 규칙 내부 편집기에만 영향을 미칩니다(이와 같은 애플리케이션을 실행할 때 cat
자체 라인 편집기 없이 매우 제한된 편집기를 얻게 됩니다). zsh 편집기의 경우 자체 편집기에서 동일한 작업을 수행하기 위해 tty LD 설정을 쿼리하는 (줄 편집기와 달리) bindkey
을 사용해야 zle
합니다 .readline
bash
stty lnext '^Q' start '' -ixon # for tty LD editor
bindkey '^Q' quoted-insert # for zle
각 터미널에 대해 이 부분을 수행 해야 하며 stty
tty LD 설정이 기본값(예: 이후)으로 복원되면 다시 수행해야 합니다 stty sane
.
일부 시스템에서는 HPUX 및 stty lnext '^Q' < /dev/ttyconf
.
^V
zsh 줄 편집기의 커서에 X11 CLIPBOARD 선택 항목을 붙여넣습니다.
get-clipboard() {
local clip
clip=$(xclip -sel c -o 2> /dev/null && echo .) || return
LBUFFER+=${clip%.}
}
zle -N get-clipboard
bindkey '^V' get-clipboard