No prompt do Bash, por que Control + x e Backspace limpam a linha atual?

5

Descobri isso por engano: Controle + x seguido por Backspace

Alguém sabe por que isso limpa a linha? Alguma documentação?

    
por Belmin Fernandez 07.11.2011 / 18:56

4 respostas

12

Sim. De man bash :

   Killing and Yanking
       kill-line (C-k)
              Kill the text from point to the end of the line.
       backward-kill-line (C-x Rubout)
              Kill backward to the beginning of the line.
    
por 07.11.2011 / 19:02
3

Isso é o equivalente a um corte no Windows. Você pode colá-lo de volta com Ctrl + Y.

    
por 07.11.2011 / 19:06
3

Como observado, está na página man. Mais precisamente, as combinações de teclas em questão são do EMACS, que é a ligação padrão de chaves do Bash em várias distribuições do Linux. Se você precisar usar o vi no Bash, você pode usar:

set -o vi

Para voltar ao EMACS:

set -o emacs
    
por 07.11.2011 / 19:59
2

bash suporta algo chamado de biblioteca readline , que permite que você faça um número totalmente incrível de coisas com o seu shell. Uma dessas coisas é que readline vem configurado com um grande número de atalhos de teclado padrão , como:

Ctrl-b  Move the cursor one character   ⇦ to the left
Ctrl-f  Move the cursor one character   ⇨ to the right
Alt-b   Move the cursor one word    ⇦ to the left
Alt-f   Move the cursor one word    ⇨ to the right
Ctrl-a  Move the cursor     ⇤ to the start of the line
Ctrl-e  Move the cursor     ⇥ to the end of the line
Ctrl-x-x    Move the cursor      ⇤⇥ to the start, and to the end again
Ctrl-d  Delete  the character   underneath the cursor
Ctrl-u  Delete  everything  ⇤ from the cursor back to the line start
Ctrl-k  Delete  everything  ⇥ from the cursor to the end of the line
Alt-d   Delete  word    ⇨ untill before the next word boundary
Ctrl-w  Delete  word    ⇦ untill after the previous word boundary
Ctrl-y  Yank/Paste  prev. killed text   at the cursor position
Alt-y   Yank/Paste  prev. prev. killed text at the cursor position
Ctrl-p  Move in history one line    ⇧ before this line
Ctrl-n  Move in history one line    ⇩ after this line
Alt->   Move in history all the lines   ⇩ to the line currently being entered
Ctrl-r  Incrementally search the line history   ⇧ backwardly
Ctrl-s  Incrementally search the line history   ⇩ forwardly
Ctrl-J  End an incremental search
Ctrl-G  Abort an incremental search and restore the original line
Alt-Ctrl-y  Yank/Paste  arg. 1 of prev. cmnd    at the cursor position
Alt-.
Alt-_   Yank/Paste  last arg of prev. cmnd  at the cursor position
Ctrl-_
Ctrl-x
Ctrl-u  Undo the last editing command; you can undo all the way back to an empty line
Alt-r   Undo all changes made to this line
Ctrl-l  Clear the screen, reprinting the current line at the top
Ctrl-l  Clear the screen, reprinting the current line at the top
Completion  TAB Auto-complete a name
Alt-/   Auto-complete a name (without smart completion)
Alt-?   List the possible completions of the preceeding text
Alt-*   Insert all possible completions of the preceeding text
Ctrl-t  Transpose/drag  char. before the cursor ↷ over the character at the cursor
Alt-t   Transpose/drag  word before the cursor  ↷ over the word at/after the cursor

Veja algumas boas informações sobre como personalizar readline também.

    
por 09.11.2011 / 09:14