Como posso voltar a ligar stty lnext a ^ q?

3

Você pode digitar caracteres literalmente usando

the "lnext" functionality (often ^V per default) in your tty driver

No entanto, eu ligo Ctrl + v para "colar" no meu emulador de terminal. (Como não uso fluxo de controle) gostaria de religar lnext a Ctrl + q . Eu tentei o seguinte em ~/.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

No entanto, não parece funcionar. Existe uma maneira de religar lnext a Ctrl + q ?

EDITAR

Fiz mais solução de problemas e não consigo reativar outras chaves stty. Eu removi setopt noflowcontrol para testes e, em seguida, tentei stty start '^A' ou stty start '^B' . Nenhum deles teve qualquer efeito; start ainda estava ligado a Ctrl + q . (FWIW Eu tentei tanto um literal ^A ou ^B e o próprio caractere com lnext precedendo-o.)

    
por Sparhawk 20.09.2016 / 12:45

1 resposta

3

stty lnext afeta apenas o editor interno de disciplina de linha do dispositivo de terminal (o muito limitado que você obtém ao executar aplicativos como cat que não possuem seu próprio editor de linha). Para o editor do zsh, você precisaria usar bindkey ( zle não faz como readline ( bash 's line editor) que consulta a configuração tty LD para fazer o mesmo em seu próprio editor). / p>

stty lnext '^Q' start '' -ixon # for tty LD editor
bindkey '^Q' quoted-insert     # for zle

Note que você precisaria fazer a parte stty para cada terminal, e fazê-lo novamente sempre que as configurações do tty LD forem revertidas para os padrões como depois de stty sane .

Alguns sistemas permitem que você altere as configurações tty padrão, como HPUX com stty lnext '^Q' < /dev/ttyconf .

E para ^V colar o conteúdo da seleção CLIPBOARD X11 no cursor quando estiver no editor de linhas zsh:

get-clipboard() {
  local clip
  clip=$(xclip -sel c -o 2> /dev/null && echo .) || return
  LBUFFER+=${clip%.}
}
zle -N get-clipboard
bindkey '^V' get-clipboard
    
por 20.09.2016 / 15:24

Tags