Domanda

Ho letto in diversi posti che le funzioni del rettangolo in emacs sono molto utili.Ho letto qualcosa su di loro e non riesco a capire il perché.Voglio dire, quando vuoi eliminare un paragrafo, segni la prima riga/colonna e poi l'ultima, e in realtà è un rettangolo, giusto?Ma puoi ancora usare l'uccisione normale...

Quindi che tipo di trasformazioni faresti con loro?

È stato utile?

Soluzione

Se hai dati in colonne in un file di testo con M-x delete-rectangle O M-x kill-rectangle puoi eliminare una singola colonna di dati.Allo stesso modo, M-x yank-rectangle incollerà in una colonna di testo.

Prendiamo ad esempio il seguente testo:

1. alligator    alphorn
2. baboon       bugle
3. crocodile    cornet
4. dog          didgeridoo
5. elephant     euphonium 
6. fish         flugelhorn   
7. gopher       guitar

Seleziona dalla la dell'alligatore alla g della chitarra.L'inizio e la fine della selezione delimitano due angoli opposti del rettangolo.accedere M-x kill-rectangle e hai subito:

1. alphorn
2. bugle
3. cornet
4. didgeridoo
5. euphonium 
6. flugelhorn
7. guitar

Successivamente metti il ​​segno alla fine della riga superiore, aggiungi alcuni spazi se necessario ed entra M-x yank-rectangle e ta-da!Hai riordinato le colonne:

1. alphorn      alligator    
2. bugle        baboon       
3. cornet       crocodile    
4. didgeridoo   dog          
5. euphonium    elephant     
6. flugelhorn   fish         
7. guitar       gopher       

Altri suggerimenti

Mi piace usare il rettangolo per 2 scopi principali, inserendo lo stesso testo su ogni riga o eliminando una colonna di testo (simile alla risposta di Dave Webb).

Ci sono 2 scorciatoie utili per questi, C-x r k ucciderà un rettangolo e C-x r t da inserire (ci sono altri comandi rettangolari con a C-x r prefisso, ma questi sono quelli che uso).

Quindi supponiamo che tu voglia prendere del codice e formattarlo in modo da poterlo pubblicare in un post Stack Overflow...è necessario prefissare 4 spazi.Quindi, vai all'inizio della prima riga, C-SPC per contrassegnare, quindi andare all'inizio dell'ultima riga e C-x r t <SPC> <SPC> <SPC> <SPC> <RET>, E il gioco è fatto!Quindi puoi semplicemente copiarlo e incollarlo in Stack Overflow.Mi sono imbattuto in situazioni più complesse in cui ciò è utile, in cui in realtà hai del testo che desideri inserire su ogni riga in un punto particolare.

Quindi l'altra situazione come quella di Dave Webb, se vuoi eliminare un rettangolo, usa C-x r k però, perché è molto più veloce ;-)

Inoltre, secondo il mio scheda di riferimento che ho stampato quando ho iniziato, puoi fare quanto segue:

  • C-x r r:copia in un registro
  • C-x r y:strattonare un rettangolo
  • C-x r o:apri un rettangolo, spostando il testo a destra (qualunque cosa significhi...)
  • C-x r c:cancella un rettangolo (presumo che ciò significhi sostituirlo con spazi, ma dovresti provarlo per vedere)
  • C-x r t:prefisso con testo (come descritto sopra)
  • C-x r k:uccidere (come descritto sopra)

In emacs24+ c'è anche una funzione per numerare le righe:

(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.

È vincolato a C-xr N per impostazione predefinita.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top