Como colar o texto que foi copiado (alt-w) antes da minha última pasta (ctrl-y)?

7

Depois de selecionar algum texto, uso Alt-wpara copiar a região e depois ctrl-ycolá-la. Existe uma maneira de colar algo que eu selecionei e copiei Alt-wantes da minha pasta mais recente?

Vass
fonte
11
Tente C-y M-yrepetir M-yquantas vezes for necessário.
legoscia
Veja também o undo-treemodo.
Mankoff

Respostas:

5

Após puxar com C-y, pressione M-ypara executar o comando yank-pop. Prensas repetidas percorrerão o kill-ring.

Por exemplo, se você tiver:

Hello, world!

e você mata Helloe world(você , !saiu), então vá para a próxima linha e pressione:

C-y world

M-y Hello

SPCC-y Hello Hello

C--M-y Hello world

babá
fonte
quando eu pressionar M-ydiz comando anterior não foi um puxão
Vass
@Vass Sim, você terá que executar o comando yank( C-y) e pressionar M-ypara percorrer.
babá
Eu seleciono o texto e depois pressiono Cy e ele é colado no local
Vass
11
@ Vas Eu não entendo o que você quer dizer. C-yexecuta o comando yank, que é análogo ao conceito de "colar". Cada vez que você mata um texto ou copia-o com C-w( kill-ring-save), ele é enviado para o kill-ring. Quando você pressiona C-y, aparece o primeiro elemento do kill-ringe o insere no buffer. Pressões subsequentes de M-y( kill-ring-pop) percorrerão os elementos salvos no kill-ring.
Nano
11
@Vass, oops, isso é um erro de digitação da minha parte. Deveria ter lido M-w. O comando está certo, no entanto.
babá
3

@nanny deu a resposta. E se M-ydiz que o comando anterior não foi um puxão, você provavelmente se esqueceu de fazer C-yprimeiro. IOW, você primeiro faz C-ypara arrancar a última morte, que não é o que você deseja. Então você faz M-ypara obter o anterior. Você pode repetir M-ypara retroceder.

Consulte o manual do Emacs, nó Yanking, para obter informações gerais sobre copiar e colar, e o kill-ring.


Enfim, eu queria mencionar a seleção secundária . Em particular, pode ser muito útil em situações em que você talvez queira usar C-y M-y.

A seleção secundária é exatamente o que diz: uma segunda seleção, não relacionada à seleção que é a região no Emacs. Ele permanece disponível independentemente de a região estar ativa e sua posição não ser afetada por ponto ou marca.

Se você usa a biblioteca second-sel.el, obtém muitas das vantagens da kill-ring(que é para a região) para a seleção secundária. Ele adiciona a seleção secundária a um segundo anel de seleção secondary-selection-ring, que é semelhante, mas separado do kill-ring. Isso também impede que a seleção secundária seja adicionada ao kill-ring, portanto, agora você tem dois anéis de histórico de seleção separados.

M-y depois, alterna os itens do anel apropriado, dependendo de seguir um puxão da primária (região) ou colar da seleção secundária.

Desenhou
fonte
então eu não uso Alt-w para copiar? Eu tenho que matar isso?
Vass 27/03
2
Não, você pode usar M-w(Alt-w, se desejar) para copiar. Se você C-h k M-wver, isso M-westá vinculado kill-ring-savee você verá o que esse comando faz - ele copia a região para o kill-ring. Os bits de texto que estão no kill-ringsão chamados de "mata", independentemente de terem chegado lá matando ou copiando texto (por exemplo, usando M-w).
Tirou
2

A melhor solução que encontrei é helm-show-kill-ring. Usei Helm por um bom tempo antes de perceber que isso existia. Eu tenho isso ligado M-y. Torna muito rápido e fácil ver as entradas existentes, reduzi-las e escolher a que você deseja.

Blujay
fonte
1

Depois de colar, M-ysubstituirá o texto colado pelo texto copiado anteriormente.

Se você pressionar M-yvárias vezes, poderá percorrer todo o texto anteriormente copiado (ou cortado / cortado)

tomwalker
fonte
0

Se você deseja ver facilmente partes do texto copiado e morto anteriormente e escolher uma ou mais dessas partes, elas podem ajudar:

  • Browse Kill Ring - Naveguekill-ringpara escolher um kill para puxar. Essa página mostra várias bibliotecas alternativas que oferecem esse comportamento de maneiras diferentes. O principal ébrowse-kill-ring.el.

  • Pingentes -

    • M-y: Arranque do kill-ringou do secondary-selection-ring, dependendo do último tipo de arranque (você precisa da biblioteca second-sel.elpara a segunda alternativa). Se o último comando não foi um puxão, é o mesmo que C-- C-y(veja a seguir).
    • C-- C-y( C-ycom um prefixo negativo arg): permite escolher qualquer número de mortes a serem inseridas usando a conclusão. Durante a conclusão, você pode usar:

      • C-, para ordenar os candidatos a puxar de maneiras diferentes (repita)
      • S-delete remover uma entrada de candidato do anel de seleção
      • C-S-return copiar um candidato para o outro anel de seleção
  • Leme - Veja a resposta de @ bluejaynesta página.

Desenhou
fonte