¿Cómo navegar comandos largos más rápido?

120

¿Hay alguna manera de acelerar la navegación CLI de Linux cuando debo ingresar comandos largos? Simplemente uso flechas en este momento, y si tengo un comando largo, lleva un tiempo desde el inicio del comando hasta el medio.

¿Hay alguna manera, por ejemplo, de saltar al medio del comando sin usar flechas?

    
pregunta Stann 27.05.2011 - 17:17

5 respuestas

152

Algunos enlaces de teclas de edición de línea útiles proporcionados por la biblioteca Readline :

  • Ctrl-A : ir al principio de la línea
  • Ctrl-E : ir al final de la línea
  • Alt-B : omita una palabra hacia atrás
  • Alt-F : omita una palabra hacia adelante
  • Ctrl-U : eliminar al comienzo de la línea
  • Ctrl-K : eliminar hasta el final de la línea
  • Alt-D : eliminar hasta el final de la palabra
respondido por el Adam Byrtek 27.05.2011 - 19:49
64

Algunos atajos más de aquí

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

Si eres usuario de vi [m] y bash, puede que te resulte útil hacer que readline (usado por bash) use la edición vi-style agregando set editing-mode vi a tus archivos ~/.inputrc o /etc/inputrc . O bien, podría hacer que bash utilice la edición estilo vi ejecutando el comando bash set -o vi . Agregue el comando a su archivo ~/.bashrc para que el comportamiento sea persistente.

Si es usuario de zsh, agregue bindkey -v a su archivo .zshrc para la edición de estilo vi.

    
respondido por el Smith John 14.10.2012 - 14:58
8

No sé de una forma de saltar específicamente al medio sin usar las teclas del cursor. Sin embargo, puedo recomendar el uso de las teclas de cursor CTRL + para pasar del espacio en blanco al espacio en blanco (es decir, saltar de una palabra a otra).

    
respondido por el Kory Wnuk 27.05.2011 - 17:26
0

Fuente el fragmento de código a continuación en su .bashrc. Ctrl-a salta al inicio y al presionar Ctrl-a nuevamente salta al medio.

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'

O si desea usar Ctrl-Something para saltar directamente al medio, cambie el código a:

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

Y vincularlo a algo diferente de Ctrl-a.

    
respondido por el marukse 05.10.2017 - 14:00

Lea otras preguntas en las etiquetas