Comment naviguer plus rapidement dans les commandes longues?

120

Y a-t-il un moyen d'accélérer la navigation Linux CLI lorsque je dois entrer de longues commandes? J'utilise simplement des flèches en ce moment, et - si j'ai une longue commande, il faut un certain temps pour passer du début de la commande au milieu.

Y a-t-il un moyen par exemple de sauter au milieu de la commande sans utiliser les flèches?

    
posée Stann 27.05.2011 - 17:17
la source

5 réponses

150

Quelques liens utiles pour la modification de lignes fournis par la bibliothèque Readline :

  • Ctrl-A : aller au début de la ligne
  • Ctrl-E : aller à la fin de la ligne
  • Alt-B : ignore un mot en arrière
  • Alt-F : ignore un mot en avant
  • Ctrl-U : supprime au début de la ligne
  • Ctrl-K : supprime à la fin de la ligne
  • Alt-D : supprime la fin du mot
réponse donnée Adam Byrtek 27.05.2011 - 19:49
la source
64

D'autres raccourcis de ici

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
    
réponse donnée karlacio 09.06.2011 - 00:43
la source
14

Si vous êtes un utilisateur vi [m] et bash, vous trouverez peut-être utile de faire de readline (utilisé par bash) une modification de style vi en ajoutant set editing-mode vi à vos fichiers ~/.inputrc ou /etc/inputrc . Ou, vous pouvez simplement faire en sorte que bash utilise l’édition de style vi en exécutant la commande bash set -o vi . Ajoutez la commande à votre fichier ~/.bashrc pour que le comportement persiste.

Si vous êtes un utilisateur zsh, ajoutez bindkey -v à votre fichier .zshrc pour une édition de style vi.

    
réponse donnée Smith John 14.10.2012 - 14:58
la source
8

Je ne connais pas de moyen de sauter spécifiquement au centre sans utiliser les touches du curseur. Cependant, je peux recommander d'utiliser CTRL + touche de curseur pour passer d'un blanc à un autre (par exemple, passer d'un mot à un autre).

    
réponse donnée Kory Wnuk 27.05.2011 - 17:26
la source
0

Source de l'extrait de code ci-dessous dans votre fichier .bashrc. Ctrl-a saute au début et en appuyant sur Ctrl-a saute au milieu.

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'

Ou si vous voulez utiliser Ctrl-Something pour sauter directement au centre, changez le code en:

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

Et le lier à autre chose que Ctrl-a.

    
réponse donnée marukse 05.10.2017 - 14:00
la source

Lire d'autres questions sur les étiquettes