Wie navigiere ich lange Befehle schneller?

120

Gibt es eine Möglichkeit, die Linux-CLI-Navigation zu beschleunigen, wenn ich lange Befehle eingeben muss? Ich benutze jetzt einfach Pfeile, und - wenn ich einen langen Befehl habe, braucht es etwas Zeit, um vom Befehlsbeginn bis zur Mitte des Befehls zu kommen.

Gibt es eine Möglichkeit, beispielsweise ohne Pfeile in die Mitte des Befehls zu springen?

    
Stann 27.05.2011, 17:17

5 Antworten

150

Einige nützliche Zeilenbearbeitungs-Tastenbelegungen, die von der Readline-Bibliothek bereitgestellt werden:

>
  • Ctrl-A : Gehe zum Anfang der Zeile
  • Ctrl-E : Gehe zum Ende der Zeile
  • Alt-B : Überspringe ein Wort rückwärts
  • Alt-F : Überspringe ein Wort vorwärts
  • Ctrl-U : lösche an den Anfang der Zeile
  • Ctrl-K : lösche bis zum Zeilenende
  • Alt-D : lösche bis zum Ende des Wortes
Adam Byrtek 27.05.2011, 19:49
64

Einige weitere Abkürzungen von hier

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
    
karlacio 09.06.2011 00:43
14

Wenn Sie ein vi [m] - und bash-Benutzer sind, könnte es nützlich sein, readline (von bash verwendet) vi-style-Bearbeitung zu verwenden, indem Sie set editing-mode vi zu Ihren ~/.inputrc - oder /etc/inputrc -Dateien hinzufügen. Oder Sie können bash einfach die vi-style-Bearbeitung verwenden, indem Sie den bash-Befehl set -o vi ausführen. Fügen Sie den Befehl Ihrer ~/.bashrc -Datei hinzu, um das Verhalten dauerhaft zu machen.

Wenn Sie ein zsh-Benutzer sind, fügen Sie bindkey -v zu Ihrer .zshrc -Datei für die Bearbeitung im Vi-Stil hinzu.

    
Smith John 14.10.2012 14:58
8

Ich kenne keine Möglichkeit, ohne die Cursortasten gezielt in die Mitte zu springen. Ich kann jedoch empfehlen, die STRG + Cursortaste zu verwenden, um von leer zu leer zu springen (d. H. Von einem Wort zu einem anderen zu springen).

    
Kory Wnuk 27.05.2011 17:26
0

Geben Sie das Code-Snippet unten in Ihrer .bashrc ein. Strg-a springt an den Anfang und drückt Strg-a springt erneut in die Mitte.

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'

Oder wenn Sie Strg-Etwas verwenden möchten, um direkt in die Mitte zu springen, ändern Sie den Code in:

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

Und binden Sie es an etwas anderes als Strg-a.

    
marukse 05.10.2017 14:00

Tags und Links