Como você usa um atalho de teclado que requer ctrl- \ quando você precisa usar várias teclas para digitar um \?

4

Padrão na maioria dos terminais você pode pressionar ctrl \ para enviar um sinal SIGQUIT para o processo.

No entanto, no meu teclado para digitar uma barra invertida, você tem que fazer assim: alt deslocamento 7

Ao fazer ctrl shift 7 não funciona, então como devo fazer o atalho do teclado?

    
por Tyilo 15.11.2012 / 13:45

4 respostas

3

Eu não sei como você pode digitar Ctrl + \ , mas eu posso te dar uma maneira alternativa de gerar SIGQUIT no teclado. Encontre um personagem que você pode digitar como uma simples combinação de teclas. Isso provavelmente precisa mapear para um caractere ASCII (único) (ou seja, um único byte); por exemplo, Ctrl + A . Então digite

stty quit ^A

Isso pode ser s t t y q u i t Ctrl + A Introduzir (se você receber uma mensagem de erro, tente digitar Ctrl + V antes do Ctrl + A ) ou literalmente s t t y q u i t ^ A Introduzir (se você receber uma mensagem de erro, tente colocar o ^ A entre aspas). Em seguida, digite um comando como sleep 9 , pressione sua combinação de teclas (ou seja, Ctrl + A ), e ver se o programa termina como você esperaria para Ctrl + \ .

Se você encontrar uma combinação que funcione, coloque-a (o comando stty quit ) no seu .login , .profile , .bashrc , ou qualquer outro arquivo de comando de inicialização usado por você.

    
por 15.11.2012 / 17:53
0

Eu tive quase o mesmo problema com um teclado francês " azerty ".

Para obter o caractere de barra invertida \ , eu tenho que pressionar alt deslocar / .

Mas pressionar ctrl alt deslocamento / não envia nenhum sinal, apenas insere um ponto . no terminal.

Descobri que pressionar ctrl ' (a chave backtick ou backquote) envia o sinal SIGQUIT :

$ sleep 9
^\Quit: 3

Pressionar ctrl deslocamento ' também funciona.

Note que, em um teclado francês, "mudando" o caractere de backtick (isto é, pressionando shift ') produz o sinal de Pound £ .

Você pode obter a lista de todos os sinais com o comando kill -l :

$ kill -l
 1) SIGHUP       2) SIGINT       3) SIGQUIT  4) SIGILL
 5) SIGTRAP      6) SIGABRT      7) SIGEMT   8) SIGFPE
 9) SIGKILL     10) SIGBUS      11) SIGSEGV 12) SIGSYS
13) SIGPIPE     14) SIGALRM     15) SIGTERM 16) SIGURG
17) SIGSTOP     18) SIGTSTP     19) SIGCONT 20) SIGCHLD
21) SIGTTIN     22) SIGTTOU     23) SIGIO   24) SIGXCPU
25) SIGXFSZ     26) SIGVTALRM   27) SIGPROF 28) SIGWINCH
29) SIGINFO     30) SIGUSR1     31) SIGUSR2 
    
por 12.12.2016 / 15:55
0

Já tentou mapear uma chave diferente para ^\ ?

Por exemplo (no terminal macOS):

Vá para "Terminal - > Preferências - > Configurações - > Keyboard ”, clique no + e mapeie algo como control + f4 para 4 .

    
por 15.11.2012 / 13:57
0

Ctrl - \ provavelmente gera o código ASCII 28. Tente fazer outra coisa que envie o código ASCII 28.

Por exemplo, talvez tente isso: mantenha pressionado Alt e, em seguida, pressionando 2 no teclado numérico e, em seguida, 8 no teclado numérico, e, em seguida, liberando a tecla Alt . (Concedido, se você tiver problemas ao usar barra invertida, talvez tenha problemas usando teclas numpad.) Não tenho um Mac por mim, mas isso funciona em muitos sistemas Unix-ish (e DOS / Microsoft Windows), portanto pode valer a pena dando um tiro.

Se você estiver interagindo com um sistema remoto, poderá colocar o caractere em um arquivo e, em seguida, algum software de terminal permitirá que você use um "upload ASCII" para enviar o pressionamento de tecla.

Outro recurso possível: AppleScript: enviando chaves para o OSX

    
por 27.04.2017 / 22:32