Como navegar por comandos longos mais rapidamente?

116

Existe uma maneira de acelerar a navegação do Linux CLI quando devo inserir comandos longos? Eu simplesmente uso flechas agora, e - se eu tiver um comando longo, levará algum tempo para começar do comando até o meio dele.

Existe uma maneira de, por exemplo, pular para o meio do comando sem usar as setas?

    
por Stann 27.05.2011 / 17:17
fonte

5 respostas

148

Algumas linhas de edição úteis de teclas fornecidas pela biblioteca Readline :

  • Ctrl-A : vai para o começo da linha
  • Ctrl-E : vai para o final da linha
  • Alt-B : pula uma palavra para trás
  • Alt-F : pule uma palavra para frente
  • Ctrl-U : delete para o começo da linha
  • Ctrl-K : exclua para o final da linha
  • Alt-D : excluir até o final da palavra
por Adam Byrtek 27.05.2011 / 19:49
fonte
60

Mais alguns atalhos de aqui

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

Se você é um usuário vi [m] e bash, pode achar útil fazer readline (usado pelo bash) usando a edição no estilo vi adicionando set editing-mode vi aos arquivos ~/.inputrc ou /etc/inputrc . Ou você poderia apenas fazer o bash usar a edição no estilo vi executando o comando bash set -o vi . Adicione o comando ao seu arquivo ~/.bashrc para tornar o comportamento persistente.

Se você for um usuário zsh, adicione bindkey -v ao seu arquivo .zshrc para edição no estilo vi.

    
por Smith John 14.10.2012 / 14:58
fonte
8

Eu não sei de uma maneira de pular especificamente para o meio sem usar as teclas do cursor. No entanto, posso recomendar o uso da tecla de cursor CTRL + para passar de branco para branco (ou seja, pule de uma palavra para outra).

    
por Kory Wnuk 27.05.2011 / 17:26
fonte
0

Crie o snippet de código abaixo em seu .bashrc. Ctrl-a pula para o início e pressionando Ctrl-a novamente pula para o meio.

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'

Ou se você quiser usar Ctrl-Something para pular diretamente para o meio, altere o código para:

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

E ligue-o a algo diferente de Ctrl-a.

    
por marukse 05.10.2017 / 14:00
fonte