Escreva comandos estruturados em várias linhas com a tecla tab ativada

10

Eu gostaria de escrever um comando estruturado em várias linhas como

$ for i in *;
 do
    file $i;
 done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text

mas encontre a guia não funcionando,

Como eu poderia ativar a tecla tab no console bash?

Cálculo
fonte
4
pressione Control-V Tab em vez disso; A guia está vinculada à conclusão do arquivo / comando por padrão.
mosvy

Respostas:

10

Quando você pressiona Enterapós digitar um comando incompleto, o bashshell mostra um prompt de continuação (o prompt secundário $PS2) e permite que você complete o comando digitado. Os recursos de edição de linha de comando do shell nesse ponto são os mesmos do prompt original (o prompt primário $PS1), o que significa que a Tabchave executaria a conclusão de comandos e nomes de arquivos como de costume.

Para inserir um caractere de tabulação, use Ctrl+V Tabou use espaços para indentação. Caracteres de tabulação (ou qualquer outro caractere literal) sempre podem ser inseridos se prefixados por Ctrl+V.


Como alternativa, se no modo de edição de linha de comando do Emacs (que eu acredito ser o padrão bash), use Ctrl+X Ctrl+Epara abrir um editor para inserir seu comando. O editor usado será o especificado pela EDITORvariável shell / environment ou emacsse essa variável estiver desabilitada.

No modo de edição da linha de comando do Vi, pressione Escape vpara fazer a mesma coisa.

O comando será executado após salvar e sair do editor.

Kusalananda
fonte
Posso perguntar o que é a linha de comando vi, sei que o Vim é um editor que deve ser aberto com antecedência, entrar e editar, em vez de digitar diretamente o comando e executar.
Cálculo
1
@avirate Vim é uma variante do editor Vi original. "Modo de edição da linha de comando do Vi" é um modo que você ativa set -o vie que permite usar os comandos de edição do Vi / Vim na linha de comando, como ( Esc) dwpara excluir o final da palavra atual etc. Use set -o emacspara voltar para o modo de edição da linha de comando do Emacs.
Kusalananda
incrível, eu imediatamente procuro e exploro.
Cálculo
1
@avirate Observe que o editor não precisa ser aberto com antecedência. Se você pressionar Ctrl+X Ctrl+E, o shell o abrirá para você.
Kusalananda