Muitas vezes, pareço copiar e colar várias colunas, por exemplo, colo uma coluna
line one
line two
line three
Agora eu gostaria de poder arrancar outra coluna atrás dela. Supondo que meu buffer de interrupção tenha o seguinte:
added to one
added to two
added to three
Qual comando eu precisaria chamar para obter o seguinte:
line one added to one
line two added to two
line three added to three
Atualizar
O uso da funcionalidade de retângulos do Emacs ajuda bastante, mas ainda é subótimo. Por exemplo, se você estiver usando o Emacs no modo gráfico e estiver usando programas externos, ou seja, usando a funcionalidade Copiar e Colar do seu sistema operacional, o kill-buffer não terá meta informações retangulares, portanto, o arranque retangular não funcionará. Outro problema é se você está tendo colunas com largura interna variável:
short line *
a much larger line which goes on
short line again
E você deseja puxar retangular, terá que colocar o ponteiro no ponto marcado (*). Embora isso seja trivial com três linhas, pode ser bastante complicado garantir que você esteja colocando o ponteiro na extremidade mais externa da primeira coluna.
Respostas:
Aqui está um comando único que você pode usar para puxar cada linha da interrupção atual no final de cada linha subseqüente, iniciando na linha atual.
A implementação é bastante simples. Pegue o
current-kill
, divida-o por linha. Em seguida, para cada linha de divisão: vá para o final da linha de divisão, insira um espaço, insira uma linha e avance uma linha.Isso também pode ser feito com uma macro repetível que move uma linha de um lugar no buffer para o final de uma linha em outra parte do buffer.
fonte