Guida all'ordinamento delle linee in Vim

Guida All Ordinamento Delle Linee In Vim



Per ordinare le linee in Vim, puoi usare il built-in ordinare comando che ordina le righe in base a un intervallo definito. In genere, tutte le righe del documento vengono ordinate se non viene fornito alcun intervallo.

Ad esempio, se desideri ordinare l'intero documento, utilizza il file :ordinare comando in modalità NORMALE. D'altra parte, se vuoi ordinare solo righe specifiche, usa il file :x,y ordinamento comando, dove X E E definire l'intervallo dal numero di riga X A E .







L'ordinamento è una delle funzionalità cruciali richieste durante la modifica dei documenti. Vim non è da meno di qualsiasi editor avanzato quando si tratta di fornire funzionalità uniche come l'ordinamento. Pertanto, in questa guida, spiegherò il built-in di Vim ordinare comando e come utilizzarlo in diversi modi per ordinare le righe.



Nota: Le istruzioni e i comandi menzionati in questa guida vengono eseguiti su Linux (Ubuntu 22.04). Vim è un editor di testo multipiattaforma e questi comandi funzioneranno senza errori anche su macOS e Windows.



Ordina tutte le righe





Per ordinare tutte le righe in un documento, eseguire il comando ordinare comando in modalità NORMALE.

:ordinare



Per impostazione predefinita, il ordinare Il comando ordinerà le righe in ordine lessicografico.

Tieni presente che se il tuo file ha righe vuote, il comando sort posizionerà le righe vuote in alto nell'ordinamento effettivo del testo.

Ordina le righe selezionate

Per ordinare le linee selezionate, dobbiamo prima selezionarle nella modalità di selezione. E per abilitare la modalità di selezione, premere In e selezionare le righe utilizzando il H , J , K, E l tasti o pulsanti direzionali.

Vim ha anche una modalità di selezione specifica della linea chiamata LINEA VISIVA modalità. Premere V (maiusc+v) per abilitare il LINEA VISIVA modalità per selezionare le linee.

Dopo aver selezionato le righe, visualizzerai ' <, ' > nella riga di comando, che rappresenta l'intervallo di selezione. IL ' < indicava la prima riga di selezione visiva, mentre ‘ > indica l'ultimo.

Ora basta digitare il ordinare comando e premi il tasto Invio per applicare l'ordinamento alle righe selezionate come mostrato nella GIF seguente.

Ordina le linee a distanza

L'intervallo di linee può essere passato prima di ordinare comando per ordinare le righe. IL :imposta il numero Il comando può essere utilizzato per attivare il numero di riga in Vim, rendendo quindi più semplice l'identificazione del numero di riga.

Ad esempio, per ordinare le righe dalla riga numero 1 alla riga numero 4, utilizzare il comando :1,4 ordinamento comando.

: 1 , 4 ordinare

Come si può vedere nell'output sopra, vengono ordinate solo le righe specificate.

Ordina al contrario

Come accennato in precedenza, il comportamento predefinito di ordinare Il comando consiste nell'ordinare le righe in ordine lessicografico. Per ordinare le righe in modo non lessicale, aggiungere il punto esclamativo ( ! ) dopo il ordinare comando.

:ordinare !

Ordina per lingua

I computer vengono utilizzati in tutto il mondo, avendo lingue diverse con diversi insiemi di caratteri e regole. Quando si tratta di ordinare le regole di confronto in base alle impostazioni locali, è importante. Ad esempio, se vivi in ​​Giappone e desideri ordinare le linee in base a quella località, devi specificarla. IL ordinare Il comando consente inoltre di impostare l'opzione locale con il comando l bandiera.

Per verificare le impostazioni internazionali di confronto correnti, utilizzare il file :lingua comando.

:lingua

Per ordinare con le impostazioni internazionali correnti, utilizzare:

: fortuna l

Nota: Questa opzione potrebbe non funzionare correttamente su sistemi basati su macOS.

Ordina per numero

Per ordinare le righe in base al primo numero decimale in una riga, utilizzare il comando N bandiera con il ordinare comando. Per impostazione predefinita, l'ordinamento procederà in ordine crescente.

:ordina n

Per ordinare in ordine decrescente, utilizzare il file ! simbolo dopo il comando.

:ordinare ! N

La differenza tra ordinare E ordinare n è che il comando sort ordina le righe lessicalmente, ignorando i numeri in esse contenuti. Se vuoi ordinare rispetto ai numeri, aggiungi il file N flag con il comando sort.

Ad esempio, anche le righe nel file seguente contengono lettere e numeri. Quando lo ordiniamo applicando il file ordinare solo comando, queste righe verranno ordinate alfabeticamente. D'altra parte, applicando il ordinare n comando ordina le righe per numero come mostrato nell'immagine seguente.

Alcune altre opzioni per l'ordinamento numerico sono menzionate nella tabella seguente.

F Ordinamento dei numeri in virgola mobile
B Ordinamento di numeri binari
O Ordinamento dei numeri ottali
H Ordinamento dei numeri esadecimali

Ordina per marchi

In Vim, i segni vengono utilizzati per impostare posizioni specifiche nel file per facilitare la navigazione di un file con centinaia di righe. I contrassegni possono essere utilizzati per eseguire un'operazione di ordinamento utilizzando il file ordinare comando.

Supponiamo di aver impostato due segni UN E B .

Quindi, per ordinare tutte le righe da mark UN contrassegnare B , utilizzare il seguente comando.

: 'UN,' B ordinare

La virgoletta singola ( ' ) viene utilizzato per accedere ai marchi.

Ordina per espressione regolare (RegEx)

L'espressione regolare (RegEx) è uno dei modi più comuni per ordinare le righe definendo un modello con il ordinare comando.

Ad esempio, per ordinare le righe rispetto a una colonna che contiene alfabeti e cifre, utilizzare il comando /[a-z]*[0-9]+/ modello con il ordinare comando. IL R bandiera dopo il ordinare Il comando viene utilizzato per indicare al comando di ordinare in base al modello menzionato.

:ordina r / [ az ] * [ 0 - 9 ] + /

Come puoi vedere nell'immagine sopra, l'ultima colonna è ordinata in ordine alfabetico. Per ordinare numericamente la colonna è sufficiente inserire il N bandiera.

Nota: Ho saltato le prime righe definendo l'intervallo dalla riga 2,5.

IL R flag ti consente di ordinare il file in base ai modelli specificati. Senza il R flag, il comando sort ordinerà tutte le righe che non corrispondono al modello.

Rimuovi le linee duplicate

Il modo più rapido per rimuovere le righe duplicate in un file è utilizzare il file ordinare comandare con il In bandiera, che rappresenta l'unico.

:varietà u

Tieni presente che l'utilizzo di questo metodo per rimuovere le righe duplicate ordinerà anche le righe, il che può essere indesiderato in molte situazioni. Utilizza metodi alternativi, come regex, per rimuovere le righe duplicate in un file senza la necessità di ordinarle.

Ordina le righe in base a una colonna

Esistono due metodi per ordinare le righe in Vim in base alla colonna. Il primo metodo utilizza il comando sort esterno di Linux, mentre il secondo utilizza il comando sort integrato.

Il comando esterno è facile da implementare rispetto al comando sort predefinito. Nota che i comandi esterni non sono i comandi predefiniti di Vim. Significa qualsiasi comando supportato dal sistema operativo.

Capiamo come funziona in Vim.

Per utilizzare qualsiasi comando esterno in Vim, ! Il simbolo viene utilizzato prima di quel comando. Supponiamo di avere un file separato da virgole (CSV) e di voler ordinare il file rispetto alla terza colonna. Il comando sarà

: %! ordinare -T ',' -k3

IL % indica l'intero buffer come selezione. IL -T flag viene utilizzato per definire il separatore di campo, che può essere una virgola, due punti o anche uno spazio. IL -K flag è il tasto che indica la posizione nella riga, e k2 indica il secondo campo dopo il delimitatore specificato.

Nell'esempio, ho menzionato l'intervallo invece di % per saltare la prima riga.

: 2 , 5 ! ordinare -T ',' -k3

L'esterno ordinare Il comando può essere utile anche in molti altri modi perché offre varie opzioni di ordinamento come il mescolamento, l'ordinamento casuale e l'unione. Per saperne di più sul comando sort di Linux, utilizzare il file aiuto dell'uomo comando.

D'altra parte, per utilizzare il file built-in di Vim ordinare comando, con il comando sort verrà utilizzato un modello di espressione regolare.

:ordinare / \v^ ( . { - } , ) { 2 } /

Nel comando sopra:

  • \In rappresenta la scheda verticale
  • ^ indica l'inizio della riga
  • (.{-},) è un gruppo che lo farà in cui .{-} è una versione non avida di .* E , è il campo di separazione
  • {2} rappresenta le prime 2 colonne da saltare

Si può vedere che il R flag non viene utilizzato con il modello, il che significa che il modello salterà qualsiasi colonna corrispondente e ordinerà le colonne dopo il modello. In questo caso, il file verrà ordinato in base alla terza colonna. Anche nell'esempio seguente, per saltare la prima riga, ho utilizzato il range 2,5.

La distinzione fondamentale tra .* E .{-} è quello il .{-} elaborerà il primo algoritmo con la corrispondenza più breve, mentre .* corrisponderà il più possibile. Ad esempio, in una stringa wxyz the x.*y corrisponderà all'intera stringa while x.{-}y corrisponderà solo a xy.

Ordina le righe senza distinzione tra maiuscole e minuscole

Se ordini le righe che iniziano con lettere maiuscole e minuscole, il comando ordina ordinerà prima le righe con lettere maiuscole. Bene, per ignorare la distinzione tra maiuscole e minuscole, usa il comando io bandiera.

Come puoi vedere nell'immagine seguente, le linee non ordinate e ordinate con entrambi i file :ordinare E :ordina i comandi.

Conclusione

L'ordinamento in Vim può essere eseguito facilmente utilizzando la funzionalità integrata Vim ordinare comando. Per impostazione predefinita, le righe sono ordinate alfabeticamente, tuttavia, se desideri ordinarle al contrario, utilizza il simbolo ! firmare dopo il comando. Il comando sort in genere ordina l'intero buffer; un intervallo può anche essere definito con una virgola separatore. IL N flag viene utilizzato per l'ordinamento numerico, mentre per rimuovere le righe duplicate In viene utilizzata la bandiera. Inoltre, per migliorare il processo di smistamento, l'esterno ordinare il comando può essere utilizzato anche in Vim.

Per saperne di più sull'ordinamento in Vim, esegui il file :aiuta a ordinare comando.