Tente
echo Alt+1Alt+6Ctrl+V0
São 6 toques de teclas (supondo pelo menos um teclado QWERTY EUA / Reino Unido) para inserir esses 16 zeros (você pode segurar Alt para 1 e 6).
Você também pode usar o modo vi
padrão ( set -o vi
) e digitar:
echo 0Escx16p
(também 6 toques de tecla).
O equivalente a emacs
e que pode ser usado para repetir mais de um caractere ( echo 0Ctrl+WAlt+1Alt+6Ctrl+Y
) funciona em zsh
, mas não em bash
.
Todos esses também funcionarão com zsh
(e tcsh
de onde isso vem). Com zsh
, você também pode usar sinalizadores de expansão de variável de preenchimento e expandi-los com a aba :
echo ${(l:16::0:)}Tab
(muito mais pressionamentos de teclas, obviamente).
Com bash
, você também pode ter bash
expandindo seu $(printf '0%.0s' {1..16})
com Ctrl + Alt + E . Note, entretanto, que isso expandirá tudo (não os globs) na linha.
Para jogar o jogo com o menor número de toques de tecla, você pode vincular a um widget de chave que expande <some-number>X
para X
repetido <some-number>
times. E tem <some-number>
na base 36 para reduzir ainda mais.
Com zsh
(ligado a F8 ):
repeat-string() {
REPLY=
repeat $1 REPLY+=$2
}
expand-repeat() {
emulate -L zsh
set -o rematchpcre
local match mbegin mend MATCH MBEGIN MEND REPLY
if [[ $LBUFFER =~ '^(.*?)([[:alnum:]]+)(.)$' ]]; then
repeat-string $((36#$match[2])) $match[3]
LBUFFER=$match[1]$REPLY
else
return 1
fi
}
zle -N expand-repeat
bindkey "$terminfo[kf8]" expand-repeat
Então, por 16 zeros, você digita:
echo g0F8
(3 pressionamentos de tecla) em que g
é 16
na base 36.
Agora podemos reduzi-lo ainda mais a uma chave que insere esses 16 zeros, embora isso seja uma fraude. Nós poderíamos ligar F2 a dois 0
s (ou dois $STRING
, 0 por padrão), F3 a 3 0
s, F1 F6 para 16 0
s ... até 19 ... as possibilidades são infinitas quando você pode definir widgets arbitrários.
Talvez eu deva mencionar que se você pressionar e segurar a tecla 0 , você pode inserir quantos zeros quiser com apenas um pressionamento de tecla: -)