Brincando com macros:
Ligue a tecla de função F8para multiplicar por duas a última palavra (no espaço anterior) (código da tecla F8 encontrado usando Ctrl-V F8
):
$ bind '"\e[19~": "\C-w\C-y\C-y"'
Isso pode ser permanente enviando o mesmo texto para ~/.inputrc
$ echo '"\e[19~": "\C-w\C-y\C-y"' >> ~/.inputrc
então digite:
eco 0F8F8F8F8
para obter 2 ^ 4 vezes o zero. (ainda cinco pressionamentos de tecla).
ou digite:
livro de ecoF8F8F8
para obter 2 ^ 3 palavras no livro.
Ainda mais rápido:
Multiplique por 4:
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y"'
eco 0F8F8
3 pressionamento de tecla.
Multiplique por 8 (o mesmo número da tecla de função)
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
eco 00F8
Ainda 3 pressionamentos de tecla.
Enganação?
Trapaça ao multiplicar por 16.
$ bind '"\e[19~": "\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y\C-w\C-y\C-y"'
eco 0F8
Apenas 2 teclas pressionadas. (e ainda uma função simples e útil)
^^^^^^^^^^^^^^^^ (base 36? Hah!) :-P
Claramente trapaceando:
$ bind '"\e[19~": "0000000000000000"'
eco F8
Apenas 1 (sim: um ) pressionamento de tecla.
Alterando a ligação para ctrl+U:
Envie para ~/.inputrc
:
echo '"\C-u": universal-argument >> ~/.inputrc
Releia o ~/.inputrc
arquivo:
ctrl+Xctrl+R
faça como de costume no emacs (como você queria):
foo --bar = baz ctrl+U16 ctrl+U0
7 teclas (após a "configuração").
Um pouco mais curto:
Use o padrão "multiplique por 4" de "argumento universal" e termine com
ctrl+V 0 0
foo --bar = baz ctrl+Uctrl+Uctrl+V0
Apenas 5 chaves.
Usando o alt+nacesso a (arg: n)
foo --bar = baz Alt+16Ctrl+V0
São 6 chaves para obter os 16 zeros.
Não alterando nenhum atalho de teclado:
Se em sua festa você tem bash C-u kills the currently-being-typed line
.
Isso é porque "\C-u":
está vinculado unix-line-discard
.
Mas isso também pode ajudar:
quando, o que é antes do cursor ser apagado, ele também é colocado no "anel de matança".
Então ctrl+u
apaga e ctrl+y
puxa de volta o que foi apagado.
Em uma linha limpa: Digite 00
apague-o e puxe-o novamente duas vezes para fazê-lo 0000
.
Repita para obter 00000000
(8 zeros), finalmente digite o comando e retroceda duas vezes.
O primeiro conjunto (7 teclas são mantidas ctrlpressionadas):
00 ctrl+Uctrl+Yctrl+Y ctrl+U
O segundo conjunto (5 teclas)
ctrl+Uctrl+Yctrl+Y ctrl+U
Isso receberá oito zeros no anel de apagamento e digite o que você deseja:
foo --bar = baz ctrl-Y ctrl-Y
para obter:
foo --bar=baz 0000000000000000
Depois de ter a idéia, você também pode digitar o que precisa, ir para o início da linha ( ctrl-Y), fazer o acima (até oito zeros) até o final ( ctrl-E) e puxar duas vezes.
foo --bar = baz ctrl-A00ctrl-Uctrl-Yctrl-Y ctrl-Uctrl-Yctrl-Y ctrl-U ctrl-Ectrl-Yctrl-Y
São 15 chaves (além do próprio comando).
Não é curto, eu sei, mas isso funciona apenas com o que estava disponível.
Isso é um pouco mais curto:
0000 ctrl-U ctrl-Y ctrl-Y ctrl-Y ctrl-Yctrl-A foo --bar = baz
São 11 chaves
know what you want to do
. Em um comando aninhado complexo, como o bash saberia quais partes você queria ver o resultado da execução no histórico em oposição ao próprio comando? E as variáveis? Em resumo, o bash sempre terácode
o histórico, não o resultado da execução do código.