Frage Wie navigiere ich lange Befehle schneller?


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

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


121
2018-05-27 15:17


Ursprung




Antworten:


Einige nützliche Zeilenbearbeitungs - Tastenbelegungen, die von der Zeile lesen Bibliothek:

  • 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öschen an den Anfang der Zeile
  • Ctrl-K: Löschen bis zum Ende der Zeile
  • Alt-D: lösche bis zum Ende des Wortes

153
2018-05-27 17:49



+1, weil das funktioniert, auch wenn aus irgendwelchen Gründen Strg-Pfeile nicht funktionieren. Es lohnt sich zu beachten, für screen Benutzer, Strg-A wird Strg-A A. - enzotib
Um ein Löschen rückgängig zu machen (oder Text durch Löschen zu verschieben), verwenden Sie Strg + Y. - Lekensteyn
Strg + Pfeil nach rechts, Strg + Pfeil nach links, der Erwähnung verdient. - mac
Auf Ubuntu mit Gnome und GnomeTerminal Alt-A öffnet das Menü, anstatt den Cursor zu bewegen. Wie benutzt du Alt-A mit Gnom? Ich meine, Gnome ist der Standard, also würde wahrscheinlich jeder, der dies liest, ein Terminal in Gnome laufen lassen. - Jason
Wenn du dich mit Ubuntu verbindest von OS X über SSH müssen Sie möglicherweise "Esc" anstelle von Strg verwenden, z. B. Esc-A, Esc-E und so weiter. Dies gilt für iTerm und Terminal. - Fred Clausen


Einige weitere Verknüpfungen 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

64
2018-06-08 22:43



Danke für diese einfache, chit-chat-less-Liste. - neverMind9


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

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


14
2017-10-14 12:58





Ich kenne keine Möglichkeit, gezielt in die Mitte zu springen, ohne die Cursortasten zu benutzen. 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).


8
2018-05-27 15:26





Rufen Sie das Code-Snippet unten in Ihrem Bashrc auf. Strg-a springt zum Start und durch Drücken von Strg-a springt man wieder 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.


0
2017-10-05 12:00