Scrivi comandi strutturati su più righe con il tasto tab attivato


10

Vorrei scrivere un comando strutturato su più righe come

$ 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

ma trova la scheda non funzionante,

Come potrei attivare il tasto tab nella console bash?


4
premi invece Control-V Tab; La scheda è associata al completamento di file / comandi per impostazione predefinita.
mosvy,

Risposte:


10

Quando si preme Enterdopo aver immesso un comando incompleto, la bashshell mostrerà un prompt di continuazione (il prompt secondario $PS2) e consentirà di completare il comando immesso. Le funzionalità di modifica della riga di comando della shell in quel punto sono le stesse del prompt originale (prompt primario $PS1), il che significa che la Tabchiave eseguirà il comando e il completamento del nome del file come al solito.

Per inserire un carattere di tabulazione, utilizzare Ctrl+V Tabo utilizzare gli spazi per il rientro. I caratteri di tabulazione (o qualsiasi altro carattere letterale) possono sempre essere inseriti se preceduti da Ctrl+V.


In alternativa, se nella modalità di modifica della riga di comando di Emacs (di cui credo sia l'impostazione predefinita bash), utilizzare Ctrl+X Ctrl+Eper visualizzare un editor in cui immettere il comando. L'editor utilizzato sarà quello specificato dalla EDITORvariabile shell / ambiente o emacsse questa variabile non è impostata.

Nella modalità di modifica della riga di comando Vi, premere Escape vper fare la stessa cosa.

Il comando verrà eseguito dopo il salvataggio e l'uscita dall'editor.


Potrei chiedere Cos'è la riga di comando vi, sono consapevole che Vim è un editor che dovrebbe essere aperto in anticipo, andare dentro e modificare, piuttosto che digitare direttamente il comando ed eseguire.
Calcolo

1
@avirate Vim è una variante dell'editor Vi originale. "Modalità di modifica della riga di comando Vi" è una modalità che abiliti con set -o vie che ti dà la possibilità di utilizzare i comandi di modifica Vi / Vim sulla riga di comando, come ( Esc) dwper eliminare fino alla fine della parola corrente, ecc. Usa set -o emacsper tornare indietro alla modalità di modifica della riga di comando di Emacs.
Kusalananda

fantastico, lo cerco immediatamente ed esploro.
Calcolo

1
@avirate Nota che l'editor non deve essere aperto in anticipo. Se premi Ctrl+X Ctrl+E, la shell lo aprirà per te.
Kusalananda
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.