O que significa “girar o anel de matar”?

6

Nas páginas de informações da linha de leitura:

info bash -n "Commands For Kill"

M-y Rotate the kill-ring, and yank the new top. You can only do this if the prior command is C-y or M-y.

Ì entenda que C-y "cola" o último texto finalizado, mas não consegui descobrir o que o M-y faz exatamente.

Você pode explicar

    
por edi9999 23.05.2016 / 09:34

2 respostas

7

M-y desfaz o último yank, rotaciona as listas de todas as strings de kill mantidas e arranca o novo topo da lista. Experimente este exemplo:

  1. digite os 5 caracteres a b c (sem nova linha)
  2. posicione o cursor (com C-b ) na frente do c e digite C-k para matar o c na parte superior do anel kill.
  3. Posicione o cursor 2 caracteres para a esquerda e digite C-k para matar o b ,
  4. e novamente para o início da linha e digite C-k para matar o a .

Agora digite C-y e você puxa o a do topo da lista. Digite C-y novamente, você acabou de obter outro a , mas se você digitar imediatamente M-y , o a será removido e substituído por b .

Se você digitar agora outro C-y , você obtém b , não a , porque o anel kill foi girado. Da mesma forma, um M-y substituirá o b por um c .

Quando você digita a seqüência C-y seguida por um monte de M-y você obtém cada uma das strings kill-ring, uma por uma.

    
por 23.05.2016 / 11:28
4

Eu não sou usuário do Emacs, mas há um mês estou experimentando o modo Emacs no Readline como uma alternativa ao modo Vi.

Sempre que você mata (excluir) o texto, ele é removido do buffer e adicionado ao kill ring . Quando você arranca (cola) o texto com C-Y , o texto mais recente é impresso na posição do cursor.

Se você imediatamente seguir isto com M-Y (a tecla Meta pode ser obtida pressionando Alt - Y ou Esc seguido por Y ), o texto impresso pelo C-Y yank é substituído pelo segundo texto mais recente. Se você seguir isso com outro M-Y , o texto colado será substituído pelo terceiro texto mais recente, e assim por diante. Cada pressionamento sucessivo de M-Y altera o texto colado para o do próximo "kill" no kill-ring até chegar ao fim do kill ring - onde ele gira de volta para o kill mais recente .

    
por 23.05.2016 / 11:35

Tags