Pergunta
Eu li em vários lugares que o retângulo funções emacs são muito úteis.Eu li um pouco sobre eles, e eu não consigo figura porquê.Quero dizer, quando você quer matar um parágrafo, você marca a primeira linha/coluna e, em seguida, o último, e que na verdade é um retângulo, certo?Mas você ainda pode usar o kill normal...
Então, que tipo de transformações que você faria com eles?
Solução
Se você tiver dados em colunas em um arquivo de texto com M-x delete-rectangle
ou M-x kill-rectangle
você pode excluir uma única coluna de dados.Da mesma forma, M-x yank-rectangle
irá colar em uma coluna de texto.
Tome, por exemplo, o seguinte texto:
1. alligator alphorn
2. baboon bugle
3. crocodile cornet
4. dog didgeridoo
5. elephant euphonium
6. fish flugelhorn
7. gopher guitar
Selecione a partir de um de jacaré para o g de guitarra.O início e o fim da seleção marcar dois cantos opostos do retângulo.Entrar M-x kill-rectangle
e você imediatamente tem:
1. alphorn
2. bugle
3. cornet
4. didgeridoo
5. euphonium
6. flugelhorn
7. guitar
Próximo de colocar a marca no final da linha superior, adicionar alguns espaços, se necessário, e enter M-x yank-rectangle
e ta-da!Você tem re-ordenar as colunas:
1. alphorn alligator
2. bugle baboon
3. cornet crocodile
4. didgeridoo dog
5. euphonium elephant
6. flugelhorn fish
7. guitar gopher
Outras dicas
Eu gosto de usar o retângulo para 2 propósitos, inserir o mesmo texto em cada linha, ou matar uma coluna de texto (semelhante ao Dave Webb resposta).
Há 2 atalhos úteis para estes, C-x r k
vai matar um retângulo, e C-x r t
para inserir (existem outros comandos com um retângulo C-x r
prefixo, mas esses são os que eu uso).
Então, digamos que você queira levar algum código e formatá-lo de modo que você pode publicá-la em um Estouro de Pilha post...você precisa prefixar com 4 espaços.Então, vá para o início da primeira linha, C-SPC
para marcar, em seguida, vá para o início da última linha e C-x r t <SPC> <SPC> <SPC> <SPC> <RET>
, e aí está ele!Em seguida, você pode apenas copiar e colar no Estouro de Pilha.Eu tenho que correr em situações mais complexas em que isso é útil, onde você realmente tem o texto que você deseja inserir em cada linha em um determinado lugar.
Então, a outra situação, como Dave Webb situação, se você quer matar um retângulo, use C-x r k
embora, porque é muito mais rápido ;-)
Também, de acordo com a minha cartão de referência que eu impressos quando eu comecei, você pode fazer o seguinte:
C-x r r
:copiar um registoC-x r y
:copie um retânguloC-x r o
:abra um retângulo, mudando o texto para a direita (o que isso significa...)C-x r c
:de branco com um retângulo (eu assumo que significa substituí-lo com espaços, mas você tem que experimentá-lo para ver)C-x r t
:prefixo com o texto (como descrito acima)C-x r k
:matar (como descrito acima)
Em emacs24+ há também uma função para a numeração de linhas:
(rectangle-number-lines START END START-AT &optional FORMAT)
Insert numbers in front of the region-rectangle.
START-AT, if non-nil, should be a number from which to begin
counting. FORMAT, if non-nil, should be a format string to pass
to `format' along with the line count. When called interactively
with a prefix argument, prompt for START-AT and FORMAT.
Binded para C-x r N por predefinição.