Notei que o bash tem um atalho para ctrl+, Tque troca os dois últimos caracteres antes do cursor.
Eu estou querendo saber por que os engenheiros decidiram incluir isso.
- Foi herdado de uma convenção anterior?
- Ou existe um objetivo prático para o qual é comumente usado?
bash
keyboard-shortcuts
history
Philip Kirkbride
fonte
fonte
bash
, como tal, masreadline
(que o bash usa para entrada no prompt). Seu bash está usandoemacs
combinações de teclas; você pode mudar para vi-key bindings se for um editor do Wars Wars;) sanctum.geek.nz/arabesque/vi-mode-in-bash Há algumas dicasreadline
aqui: readline.kablamo.org/emacs .html e readline.kablamo.org/vi.html .readline
ChangeLog
dicas neste. Então, originalmente, o atalho foi tratado no próprio Bash, embora brevemente, antes de ser puxado para dentroreadline
- mas o atalho veio para o Bash do Emacs (não sei se foi inventado no Emacs ou de outro lugar).Respostas:
Isso é herdado (por linha de leitura) do GNU Emacs, que usa control- Tpara transpor caracteres:
https://www.gnu.org/software/emacs/manual/html_node/emacs/Transpose.html
Observe que o editor de linhas do bash usa como padrão o modo Emacs, mas você também pode alterná-lo para o modo vi, se preferir.
fonte
É muito útil corrigir rapidamente erros de digitação:
torna-se
com um único CtrlT.
Você também pode AltTtrocar palavras ( por exemplo, ao alternar entre
service
esystemctl
...).Historicamente falando, o CtrlTrecurso chegou ao Bash do Emacs com toda a probabilidade. Provavelmente foi copiado para o Emacs de algum outro editor; estava presente no editor E de Stanford (veja a página E essencial 13) em 1980, e E teve um forte impacto em Richard Stallman (conforme descrito em Free e em Freedom ). Foi implementado em versões muito antigas do Bash, antes de seu primeiro lançamento em 1989, quando foi retirado da
readline
biblioteca onde vive hoje (a primeira entrada nasreadline
ChangeLog
dicas sobre isso).fonte
word1 word2 word3
paraword3 word2 word1
se executado emword3
.Essa combinação de teclas, uma ligação herdada do
emacs
editor, faz com que os dois últimos caracteres digitados sejam trocados no final da linha, usados no meio de uma linha, trocando o caractere à esquerda do cursor e o caractere abaixo do cursor.Pode parecer inútil ter uma ligação para um recurso tão raramente usado que pode ser facilmente alcançado com mais algumas teclas. Temporizadores antigos, como eu o uso com bastante frequência, costumavam economizar algum tempo de transmissão nos dias de modems de 300 bauds, no final dos anos 70, principalmente no meio de longas filas.
Um comando semelhante e mais útil, vinculado a Alt+ T, transpõe as palavras à esquerda e à direita do cursor.
Tfoi escolhido porque é a letra inicial da transposição . Outras ligações com origem semelhante incluem:
Essas ligações, implementadas no pacote GNU readline, estão disponíveis em todos os programas que a utilizam para entrada do usuário, como bash , mas também gdb , bc , ...
Algumas delas também estão disponíveis em outros ambientes: a linha de entrada da URL do Firefox, os campos de entrada de texto na interface gráfica do OS / X e muitos gerenciadores de janelas baseados em X.
Os usuários do vim podem selecionar as ligações correspondentes por meio de uma variável de ambiente.
fonte
Alt
eCtrl
versões desses teclas digitadas estão relacionados de uma forma consistente.C-t
no entanto, parece não fazer nada. wiki.archlinux.org/index.php/GTK%2B#Emacs_keybindingsÉ muito útil para corrigir erros simples, mas você pode ter veias acidentalmente transpostas.
(Tendo RSI grave nos dois pulsos, acabo usando muito isso, pessoalmente ...)
fonte
Uma correção muito rápida de erros de digitação. efetua o bloco corretor imediato 2 antes do cursor.
Se você digitou
ls-
e deseja um espaço entrels
& hífen, pode usar Ctrl+TIsso funciona se você tem um espaço após hífen e, em seguida, fazer Ctrl+T
fonte