Jak rychleji navigovat dlouhé příkazy?

123

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

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

    
dané Stann 27.05.2011 17:17

5 odpovědí

153

Některé užitečné vazby k úpravám linek, které poskytuje knihovna 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 dozadu
  • Alt-F: přeskočit jedno slovo dopředu
  • Ctrl-U: odstranit na začátek řádku
  • Ctrl-K: odstranit do konce řádku
  • Alt-D: odstranit do konce slova
odpověděl Adam Byrtek 27.05.2011 19:49
65

Některé další zkratky z 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
    
odpověděl karlacio 09.06.2011 00:43
14

Pokud jste uživateli vi [m] a bash, může být užitečné učinit readline (používáním bash) použitím edice stylu vi přidánímset editing-mode vi do vašich souborů~/.inputrc nebo/etc/inputrc. Nebo můžete jednoduše použít bash ve stylu vi-style spuštěním příkazu bashset -o vi. Přidejte příkaz do vašeho souboru~/.bashrc, aby bylo chování trvalé.

Pokud jste uživatel zsh, přidejtebindkey -v do souboru.zshrc pro úpravu ve stylu vi.

    
odpověděl Smith John 14.10.2012 14:58
8

Nevím o způsobu, jak přesně přeskočit na střed bez použití kurzorových kláves. Mohu však doporučit pomocí kurzorové klávesy CTRL + přesunout z prázdného na prázdné (tj. Přeskočit z jednoho slova na druhé).

    
odpověděl Kory Wnuk 27.05.2011 17:26
0

Zkopírujte kódový úryvek níže ve vašem souboru .bashrc. Ctrl-a přeskočí na začátek a stisknutím klávesy Ctrl opět přeskočí 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 chcete-li Ctrl-Něco přímo přeskočit do středu, změňte kód na:

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

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

    
odpověděl marukse 05.10.2017 14:00