Come navigare i comandi lunghi più velocemente?

120

C'è un modo per accelerare la navigazione con la CLI di Linux quando devo inserire comandi lunghi? Ora uso semplicemente le frecce e, se ho un comando lungo, ci vuole del tempo per passare dall'inizio del comando al centro di esso.

C'è un modo, ad esempio, di saltare al centro del comando senza usare le frecce?

    
posta Stann 27.05.2011 - 17:17
fonte

5 risposte

151

Alcune utili associazioni di tasti per la modifica della linea fornite dalla Readline libreria:

  • Ctrl-A : vai all'inizio della riga
  • Ctrl-E : vai alla fine della riga
  • Alt-B : salta una parola indietro
  • Alt-F : salta una parola in avanti
  • Ctrl-U : cancella all'inizio della riga
  • Ctrl-K : cancella alla fine della riga
  • Alt-D : cancella alla fine della parola
risposta data Adam Byrtek 27.05.2011 - 19:49
fonte
64

Altre scorciatoie da qui

Ctrl + a – go to the start of the command line
Ctrl + e – go to the end of the command line
Ctrl + k – delete from cursor to the end of the command line
Ctrl + u – delete from cursor to the start of the command line
Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word)
Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor
Ctrl + xx – move between start of command line and current cursor position (and back again)
Alt + b – move backward one word (or go to start of word the cursor is currently on)
Alt + f – move forward one word (or go to end of word the cursor is currently on)
Alt + d – delete to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + c – capitalize to end of word starting at cursor (whole word if cursor is at the beginning of word)
Alt + u – make uppercase from cursor to end of word
Alt + l – make lowercase from cursor to end of word
Alt + t – swap current word with previous
Ctrl + f – move forward one character
Ctrl + b – move backward one character
Ctrl + d – delete character under the cursor
Ctrl + h – delete character before the cursor
Ctrl + t – swap character under cursor with the previous one
    
risposta data karlacio 09.06.2011 - 00:43
fonte
14

Se sei un utente vi [m] e bash, potresti trovare utile rendere readline (usato da bash) usare la modifica in stile vi aggiungendo set editing-mode vi ai tuoi file ~/.inputrc o /etc/inputrc . Oppure, puoi semplicemente fare in modo che bash usi la modifica in stile vi eseguendo il comando bash set -o vi . Aggiungi il comando al tuo file ~/.bashrc per rendere il comportamento persistente.

Se sei un utente zsh, aggiungi bindkey -v al tuo file .zshrc per le modifiche in stile vi.

    
risposta data Smith John 14.10.2012 - 14:58
fonte
8

Non conosco un modo per saltare specificatamente al centro senza usare i tasti cursore. Tuttavia, posso consigliare di utilizzare CTRL + tasto cursore per passare da vuoto a vuoto (ad esempio, saltare da una parola a un'altra).

    
risposta data Kory Wnuk 27.05.2011 - 17:26
fonte
0

Sorgente il codice-snippet riportato di seguito nel tuo .bashrc. Ctrl-a salta all'inizio e premendo Ctrl-a salta nuovamente al centro.

jump_mid() {
    if [ "$READLINE_POINT" -eq "0" ]; then
        LEN=${#READLINE_LINE}
        POS=$(($LEN / 2))
        READLINE_POINT=$POS
    else
        READLINE_POINT=0
    fi
}
bind -x '"\C-a" : jump_mid'

O se vuoi usare Ctrl-Qualcosa per saltare direttamente al centro, cambia il codice in:

jump_mid() {
    LEN=${#READLINE_LINE}
    POS=$(($LEN / 2))
    READLINE_POINT=$POS
}

E collegalo a qualcosa di diverso da Ctrl-a.

    
risposta data marukse 05.10.2017 - 14:00
fonte

Leggi altre domande sui tag