No Curso de Linha de Comando do Codecademy , ao tentar usar o atalho de teclado Alt+Shift+#
(que deveria comentar a linha atual) no prompt de comando, ele alterna o prompt de $
para (arg: 3)
em vez de adicionar um traço no início da linha. Alt+Shift+@
fará com que seja exibido (arg: 2)
, etc. Veja a última linha na captura de tela abaixo. Antes de eu bater Alt+Shift+#
era apenas $
.
O atalho funciona bem na minha máquina.
- O que é essa
(arg: n)
coisa? - Do que os atalhos de teclado dependem para funcionar? Disposição do teclado? Distribuição do SO? Emulador de terminais? CLI padrão? O que?
Este é o prompt da biblioteca readline quando você insere um argumento numérico. Ao digitar AltShift@em seu teclado, você aparentemente está digitando Alt2qual mapeia para
M-2
, que é executadodigit-argument
em linha de leitura por padrão e começa a inserir um argumento numérico. Se você pressionar Alt3(que AltShift#mapeia no seu caso), verá o prompt mudar para(arg: 23)
; você pode continuar com qualquer Altcombinação de dígitos.Esses argumentos são usados para certas funções readline, por exemplo
yank-nth-arg
. Para ver isso em ação, executeem seguida, pressione Alt2seguido de CtrlAltY; você verá o
(arg: 2)
prompt aparecer, depois desaparecer, e o segundo argumento do comando anterior (“my”) será anexado à sua linha de comando atual.Consulte a documentação vinculada acima para obter detalhes. Bash usa readline para manipular sua entrada; outros shells não mostrarão o mesmo comportamento.
Alguns emuladores de terminal usam algumas dessas combinações de teclas para seus próprios propósitos; por exemplo, no Terminal GNOME, Alt-digit alterna para a n - ésima guia. Você precisará desabilitar essas combinações para usar as funções readline.
No seu caso, o emulador de terminal baseado na Web Codecademy não parece lidar AltShiftmuito bem com combinações. Se você não precisar dos atalhos de argumentos numéricos, poderá redirecioná-los executando
Em teoria, você deve ser capaz de armazenar isso permanentemente adicionando
para um
~/.inputrc
arquivo, mas não consegui fazer isso funcionar no Codecademy.