it-swarm.dev

Jak rychleji procházet dlouhé příkazy?

Existuje způsob, jak urychlit navigaci v systému Linux CLI, když musím zadávat dlouhé příkazy? Právě teď používám šipky a - pokud mám dlouhý příkaz, trvá nějakou dobu, než se dostanu od začátku příkazu do jeho středu.

Existuje způsob, jak například přeskočit do středu příkazu bez použití šipek?

143
Stann

Některé užitečné vazby kláves pro úpravu řádku poskytované knihovnou Readline :

  • Ctrl + A: přejděte na začátek řádku
  • Ctrl + E: přejděte na konec řádku
  • Alt + B: přeskočit jedno slovo zpět
  • Alt + F: přeskočit jedno slovo vpřed
  • Ctrl + U: smazat na začátek řádku
  • Ctrl + K: smazat na konec řádku
  • Alt + D: smazat na konec Wordu
183
Adam Byrtek

Další zkratky od zde

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
80
karlacio

Pokud jste uživatelem vi [m] a bash, může být užitečné, aby readline (používá bash) použití úpravy ve stylu vi přidáním set editing-mode vi tvému ​​~/.inputrc nebo /etc/inputrc soubory. Nebo můžete jednoduše použít bash pomocí editace ve stylu vi spuštěním příkazu bash set -o vi. Přidejte příkaz do svého ~/.bashrc soubor, aby chování zůstalo trvalé.

Pokud jste uživatelem zsh, přidejte bindkey -v tvému ​​.zshrc soubor pro editaci ve stylu vi.

14
user97589

Nevím o způsobu, jak konkrétně skočit do středu bez použití kurzorových kláves. Nicméně mohu doporučit použít kurzorové klávesy CTRL + k přesunu z prázdného na prázdné (tj. Skok z jednoho slova do druhého).

8
Kory Wnuk

Zdrojový fragment kódu níže ve svém .bashrc. Ctrl-a skočí na začátek a stiskem Ctrl-a opět skočí do středu.

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'

Nebo pokud chcete použít Ctrl-Something k přímému skoku do středu, změňte kód na:

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

A vázat ji na něco jiného než Ctrl-a.

1
marukse