Vodič za sortiranje linija u Vimu

Vodic Za Sortiranje Linija U Vimu



Za sortiranje redaka u Vimu možete koristiti ugrađeni vrsta naredba koja razvrstava retke prema definiranom rasponu. Obično se svi redovi u dokumentu sortiraju ako nije naveden raspon.

Na primjer, ako želite sortirati cijeli dokument, koristite :vrsta naredba u NORMALNOM načinu rada. S druge strane, ako želite sortirati samo određene retke, koristite :x,y sortiranje naredba, gdje x i i definirajte raspon od broja retka x do i .







Sortiranje je jedna od ključnih funkcija koje su potrebne tijekom uređivanja dokumenata. Vim nije ništa manje od bilo kojeg naprednog uređivača kada je riječ o pružanju jedinstvenih značajki poput sortiranja. Stoga ću u ovom vodiču objasniti ugrađeni Vim vrsta naredbu i kako je koristiti na različite načine za sortiranje redaka.



Bilješka: Upute i naredbe spomenute u ovom vodiču izvode se na Linuxu (Ubuntu 22.04). Vim je višeplatformski uređivač teksta, a ove će naredbe raditi bez ikakvih pogrešaka i na macOS-u i Windowsu.



Poredaj sve retke





Da biste sortirali sve retke u dokumentu, izvršite vrsta naredba u NORMALNOM načinu rada.

:vrsta



Prema zadanim postavkama, vrsta naredba će sortirati retke leksikografskim redoslijedom.

Imajte na umu da ako vaša datoteka ima prazne retke, tada će naredba sortiranja postaviti prazne retke na vrh stvarnog sortiranja teksta.

Poredaj odabrane retke

Da bismo sortirali odabrane retke, prvo ih moramo odabrati u načinu odabira. A kako biste omogućili način odabira, pritisnite u , i odaberite linije pomoću h , j , k, i l tipke ili tipke za usmjeravanje.

Vim također ima način odabira specifičan za liniju tzv VIZUALNA LINIJA način rada. Pritisnite V (shift+v) omogućiti VIZUALNA LINIJA način za odabir linija.

Nakon odabira linija, vidjet ćete ' <, ' > u naredbenom retku, koji predstavlja raspon odabira. ' < označio prvi redak vizualnog odabira, dok je ' > označava posljednju.

Sada samo upišite vrsta naredbu i pritisnite tipku return kako biste primijenili sortiranje na odabrane retke kao što je prikazano na sljedećem GIF-u.

Razvrstaj rasponske linije

Raspon linija može se proslijediti prije vrsta naredba za sortiranje redaka. The :postavite broj naredba se može koristiti za aktiviranje broja retka u Vimu, čime se olakšava prepoznavanje broja retka.

Na primjer, za sortiranje redaka od retka broj 1 do retka broj 4, koristite :1,4 sortiraj naredba.

: 1 , 4 vrsta

Kao što se može vidjeti u gornjem izlazu, sortirane su samo navedene linije.

Poredaj obrnuto

Kao što je ranije spomenuto, zadano ponašanje vrsta naredba je sortirati retke leksikografskim redoslijedom. Za sortiranje redaka na neleksički način dodajte uskličnik ( ! ) nakon što vrsta naredba.

:vrsta !

Poredaj po lokalitetu

Računala se koriste diljem svijeta, imaju različite jezike s različitim skupovima znakova i pravila. Kada je riječ o razvrstavanju uspoređivanja po lokalnom značenju. Na primjer, ako živite u Japanu i želite sortirati retke prema toj lokaciji, morate je navesti. The vrsta naredba također omogućuje postavljanje opcije lokalizacije s l zastava.

Za provjeru trenutne regionalne postavke uspoređivanja koristite :Jezik naredba.

:Jezik

Za sortiranje s trenutnom oznakom zemlje koristite:

: sreća l

Bilješka: Ova opcija možda neće ispravno raditi na sustavima koji se temelje na macOS-u.

Poredaj po broju

Za sortiranje redaka na temelju prvog decimalnog broja u retku, koristite n zastava s vrsta naredba. Razvrstavanje će prema zadanim postavkama nastaviti uzlaznim redoslijedom.

: sortiraj n

Za sortiranje u silaznom redoslijedu, koristite ! simbol iza naredbe.

:vrsta ! n

Razlika između vrsta i sortirati n je da naredba sort sortira retke leksički, zanemarujući brojeve u njima. Ako želite sortirati s obzirom na brojeve, dodajte n zastavica s naredbom sort.

Na primjer, redovi u sljedećoj datoteci također imaju slova i brojeve. Kada to sortiramo primjenom vrsta samo naredba, ti će redovi biti poredani po abecedi. S druge strane, primjenom sortirati n naredba sortirati retke po broju kao što je prikazano na sljedećoj slici.

Neke druge opcije za numeričko sortiranje navedene su u sljedećoj tablici.

f Sortiranje brojeva s pomičnim brojem
b Sortiranje binarnih brojeva
O Oktalno sortiranje brojeva
h Heksadecimalno sortiranje brojeva

Poredaj po oznakama

U Vimu se oznake koriste za postavljanje određenih pozicija u datoteci radi lakšeg kretanja kroz datoteku sa stotinama redaka. Oznake se mogu koristiti za izvođenje operacije sortiranja pomoću vrsta naredba.

Pretpostavimo da ste postavili dvije oznake a i b .

Dakle, sortirati sve retke od oznake a označiti b , koristite sljedeću naredbu.

: 'a,' b vrsta

Jednostruki citat ( ' ) koristi se za pristup oznakama.

Poredaj po regularnom izrazu (RegEx)

Regularni izraz (RegEx) jedan je od uobičajenih načina sortiranja redaka definiranjem uzorka s vrsta naredba.

Na primjer, za sortiranje redaka s obzirom na stupac koji ima slova i znamenke, koristite /[a-z]*[0-9]+/ uzorak s vrsta naredba. The r zastava nakon vrsta naredba se koristi za naredbu naredbe za sortiranje na temelju spomenutog uzorka.

:razvrstaj r / [ a-z ] * [ 0 - 9 ] + /

Kao što možete vidjeti na gornjoj slici, posljednji stupac poredan je po abecedi. Da biste numerički sortirali stupac, samo umetnite n zastava.

Bilješka: Preskočio sam prve retke definirajući raspon od retka 2,5.

The r zastavica vam omogućuje sortiranje datoteke prema zadanim obrascima. Bez toga r zastavicom, naredba sort će sortirati sve retke koji ne odgovaraju uzorku.

Uklonite duplicirane linije

Najbrži način za uklanjanje dvostrukih redaka u datoteci je korištenje vrsta naredba s u zastava, koja predstavlja unikat.

:sort u

Imajte na umu da će upotreba ove metode za uklanjanje dvostrukih redaka također sortirati retke, što može biti neželjeno u mnogim situacijama. Upotrijebite alternativne metode, kao što je regex, za uklanjanje duplih redaka u datoteci bez potrebe za sortiranjem.

Poredaj retke na temelju stupca

Postoje dvije metode za sortiranje redaka u Vimu na temelju stupca. Prva metoda koristi vanjsku Linux naredbu sortiranja, dok druga koristi ugrađenu naredbu sortiranja.

Vanjsku naredbu je lako implementirati u usporedbi sa zadanom naredbom sortiranja. Imajte na umu da vanjske naredbe nisu zadane naredbe Vima. Označava bilo koju naredbu koju podržava operativni sustav.

Hajde da shvatimo kako to radi u Vimu.

Za korištenje bilo koje vanjske naredbe u Vimu, ! simbol se koristi prije te naredbe. Pretpostavimo da imamo datoteku odvojenu zarezima (CSV) i želimo sortirati datoteku s obzirom na treći stupac. Zapovijed će biti

: %! vrsta -t ',' -k3

The % označava cijeli međuspremnik kao odabir. The -t zastavica se koristi za definiranje razdjelnika polja, koji može biti zarez, dvotočka ili čak razmak. The -k zastavica je ključ koji označava poziciju u retku, i k2 znači drugo polje nakon navedenog graničnika.

U primjeru sam spomenuo raspon umjesto % za preskakanje prvog reda.

: 2 , 5 ! vrsta -t ',' -k3

Vanjski vrsta naredba može biti korisna i na mnoge druge načine jer nudi različite opcije sortiranja kao što su miješanje, slučajno sortiranje i spajanje. Da biste saznali više o naredbi sortiranja u Linuxu, upotrijebite čovječe pomoć naredba.

S druge strane, koristiti ugrađeni Vim vrsta s naredbom sortiranja koristit će se uzorak regularnog izraza.

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

U gornjoj naredbi:

  • \u predstavlja vertikalni jezičak
  • ^ označava početak retka
  • (.{-},) je grupa koja će u kojoj .{-} je nepohlepna verzija .* i , je polje razdvajanja
  • {2} predstavlja prva 2 stupca za preskakanje

Može se vidjeti da je r zastavica se ne koristi s uzorkom, što znači da će uzorak preskočiti sve podudarne stupce i sortirati stupce nakon uzorka. U ovom slučaju, datoteka će biti sortirana na temelju trećeg stupca. Opet u sljedećem primjeru, da bih preskočio prvi red, koristio sam raspon 2,5.

Osnovna razlika između .* i .{-} je li to .{-} će obraditi algoritam najkraćeg prvog podudaranja, dok .* odgovarat će što je više moguće. Na primjer, u nizu wxyz the x.*y odgovarat će cijelom nizu dok x.{-}y odgovarat će samo xy.

Sortiraj retke bez obzira na velika i mala slova

Ako sortirate retke koji počinju velikim i malim slovima, tada će naredba sortirati retke prvo velikim slovima. Pa, da zanemarite osjetljivost na velika i mala slova, upotrijebite ja zastava.

Kao što možete vidjeti na sljedećoj slici, nerazvrstane i razvrstane linije s oba :vrsta i :razvrstaj i naredbe.

Zaključak

Razvrstavanje u Vimu može se jednostavno obaviti pomoću ugrađenog Vima vrsta naredba. Prema zadanim postavkama, linije su poredane abecednim redom, međutim, ako želite sortirati obrnuto, koristite ! znak iza naredbe. Naredba sort tipično sortira cijeli međuspremnik; raspon se također može definirati pomoću zareza. The n zastavica se koristi za numeričko sortiranje, dok za uklanjanje dvostrukih redaka u koristi se zastava. Štoviše, kako bi se poboljšao proces sortiranja, vanjski vrsta naredba se također može koristiti u Vimu.

Da biste saznali više o sortiranju u Vimu, pokrenite :pomozite sortirati naredba.