Przewodnik po sortowaniu linii w Vimie

Przewodnik Po Sortowaniu Linii W Vimie



Aby sortować linie w Vimie, możesz użyć wbudowanej funkcji sortować polecenie sortujące linie według określonego zakresu. Zazwyczaj wszystkie wiersze w dokumencie są sortowane, jeśli nie podano zakresu.

Na przykład, jeśli chcesz posortować cały dokument, użyj opcji :sortować polecenie w trybie NORMALNYM. Z drugiej strony, jeśli chcesz posortować tylko określone linie, użyj metody :x, sortuj polecenie, gdzie X I I zdefiniuj zakres od numeru linii X Do I .







Sortowanie to jedna z kluczowych funkcjonalności wymaganych podczas edycji dokumentów. Vim nie jest gorszy od innych zaawansowanych edytorów, jeśli chodzi o zapewnianie unikalnych funkcji, takich jak sortowanie. Dlatego w tym przewodniku wyjaśnię wbudowaną funkcję Vima sortować polecenie i jak go używać na różne sposoby do sortowania linii.



Notatka: Instrukcje i polecenia wymienione w tym przewodniku są wykonywane w systemie Linux (Ubuntu 22.04). Vim to wieloplatformowy edytor tekstu i te polecenia będą działać bez żadnych błędów również na macOS i Windows.



Sortuj wszystkie linie





Aby posortować wszystkie wiersze w dokumencie, wykonaj polecenie sortować polecenie w trybie NORMALNYM.

:sortować



Domyślnie sortować polecenie posortuje linie w porządku leksykograficznym.

Pamiętaj, że jeśli plik zawiera puste linie, polecenie sort umieści puste linie na górze rzeczywistego sortowania tekstu.

Sortuj wybrane linie

Aby posortować wybrane linie, najpierw musimy je zaznaczyć w trybie selekcji. Aby włączyć tryb wyboru, naciśnij W i wybierz linie za pomocą H , J , k, I l klawisze lub przyciski kierunkowe.

Vim posiada również tryb zaznaczania specyficznego dla linii, zwany LINIA WIZUALNA tryb. Naciskać V (shift+v) aby umożliwić LINIA WIZUALNA tryb, aby wybrać linie.

Po wybraniu linii wyświetli się „ <, ' > w wierszu poleceń, który reprezentuje zakres wyboru. „ < wskazał pierwszą linię selekcji wizualnej, natomiast „ > wskazuje ostatni.

Teraz po prostu wpisz sortować polecenie i naciśnij klawisz Return, aby zastosować sortowanie do wybranych linii, jak pokazano na poniższym GIF-ie.

Sortuj linie dystansowe

Zakres linii można przekazać przed sortować polecenie sortowania linii. The :Ustaw numer polecenie może zostać użyte do aktywowania numeru linii w Vimie, ułatwiając w ten sposób identyfikację numeru linii.

Na przykład, aby posortować linie od linii nr 1 do linii nr 4, użyj metody :1,4 sortowanie Komenda.

: 1 , 4 sortować

Jak widać z powyższego wyniku, sortowane są tylko określone linie.

Sortuj odwrotnie

Jak wspomniano wcześniej, domyślne zachowanie sortować polecenie polega na posortowaniu wierszy w porządku leksykograficznym. Aby posortować linie w sposób nieleksykalny, dodaj wykrzyknik ( ! ) po sortować Komenda.

:sortować !

Sortuj według ustawień regionalnych

Komputery działają na całym świecie, posługując się różnymi językami, różnymi zestawami znaków i regułami. Jeśli chodzi o sortowanie zestawień według ustawień regionalnych. Na przykład, jeśli mieszkasz w Japonii i chcesz posortować wiersze według tego ustawienia regionalnego, musisz je określić. The sortować polecenie umożliwia również ustawienie opcji ustawień regionalnych za pomocą l flaga.

Aby sprawdzić bieżące ustawienia regionalne sortowania, użyj opcji :język Komenda.

:język

Aby posortować według bieżącego użycia ustawień regionalnych:

: szczęście l

Notatka: Ta opcja może nie działać poprawnie w systemach opartych na systemie macOS.

Sortuj według numeru

Aby posortować wiersze na podstawie pierwszej liczby dziesiętnej w wierszu, użyj funkcji N flaga z sortować Komenda. Sortowanie będzie domyślnie przebiegać w kolejności rosnącej.

:sortuj rz

Aby posortować w kolejności malejącej, użyj opcji ! symbol po poleceniu.

:sortować ! N

Różnica pomiędzy sortować I sortowanie rz polega na tym, że polecenie sort sortuje linie leksykalnie, ignorując zawarte w nich liczby. Jeśli chcesz sortować według liczb, dołącz N flagę za pomocą polecenia sort.

Na przykład linie w poniższym pliku również zawierają litery i cyfry. Kiedy sortujemy to, stosując metodę sortować tylko polecenie, linie te zostaną posortowane alfabetycznie. Z drugiej strony, stosując sortowanie rz polecenie posortuj linie według numerów, jak pokazano na poniższym obrazku.

Niektóre inne opcje sortowania numerycznego są wymienione w poniższej tabeli.

F Sortowanie liczb zmiennoprzecinkowych
B Sortowanie liczb binarnych
O Sortowanie liczb ósemkowych
H Sortowanie liczb szesnastkowych

Sortuj według znaków

W Vimie znaczniki służą do ustawiania określonych pozycji w pliku w celu łatwiejszej nawigacji po pliku zawierającym setki linii. Znaki mogą być używane do wykonywania operacji sortowania za pomocą sortować Komenda.

Załóżmy, że ustawiłeś dwa znaczniki A I B .

Aby posortować wszystkie linie od mark A oznaczać B , użyj następującego polecenia.

: 'A,' B sortować

Pojedynczy cytat ( ' ) służy do uzyskiwania dostępu do znaków.

Sortuj według wyrażenia regularnego (RegEx)

Wyrażenie regularne (RegEx) to jeden z powszechnych sposobów sortowania linii poprzez zdefiniowanie wzorca za pomocą sortować Komenda.

Na przykład, aby posortować linie według kolumny zawierającej litery i cyfry, użyj metody /[a-z]*[0-9]+/ wzór z sortować Komenda. The R flaga po sortować polecenie służy do instruowania polecenia, aby sortowało na podstawie wspomnianego wzorca.

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

Jak widać na powyższym obrazku, ostatnia kolumna jest posortowana alfabetycznie. Aby posortować kolumnę numerycznie, wystarczy wstawić N flaga.

Notatka: Pierwsze linie pominąłem, definiując zakres od linii 2,5.

The R flaga pozwala posortować plik według podanych wzorców. Bez R flag, polecenie sort posortuje wszystkie linie, które nie pasują do wzorca.

Usuń zduplikowane linie

Najszybszym sposobem usunięcia zduplikowanych linii z pliku jest użycie metody sortować polecenie za pomocą W flaga, która reprezentuje wyjątkowość.

:różnorodność ty

Należy pamiętać, że użycie tej metody do usunięcia zduplikowanych linii spowoduje również ich posortowanie, co w wielu sytuacjach może być niepożądane. Użyj alternatywnych metod, takich jak regex, aby usunąć zduplikowane linie z pliku bez konieczności sortowania.

Sortuj linie na podstawie kolumny

Istnieją dwie metody sortowania linii w Vimie na podstawie kolumny. Pierwsza metoda wykorzystuje zewnętrzne polecenie sortowania systemu Linux, podczas gdy druga wykorzystuje wbudowane polecenie sortowania.

Polecenie zewnętrzne jest łatwe do wdrożenia w porównaniu z domyślnym poleceniem sortowania. Zauważ, że polecenia zewnętrzne nie są domyślnymi poleceniami Vima. Oznacza dowolne polecenie obsługiwane przez system operacyjny.

Rozumiemy, jak to działa w Vimie.

Aby użyć dowolnego polecenia zewnętrznego w Vimie, ! symbol jest używany przed tym poleceniem. Załóżmy, że mamy plik rozdzielany przecinkami (CSV) i chcemy posortować plik względem trzeciej kolumny. Polecenie będzie

: %! sortować -T ',' -k3

The % wskazuje cały bufor jako wybór. The -T flaga służy do zdefiniowania separatora pól, którym może być przecinek, dwukropek lub nawet spacja. The -k flaga to klucz wskazujący pozycję w linii, oraz k2 oznacza drugie pole po określonym ograniczniku.

W przykładzie zamiast tego wspomniałem o zasięgu % aby pominąć pierwszą linię.

: 2 , 5 ! sortować -T ',' -k3

Zewnętrzne sortować polecenie może być przydatne również na wiele innych sposobów, ponieważ oferuje różne opcje sortowania, takie jak tasowanie, sortowanie losowe i łączenie. Aby dowiedzieć się więcej o poleceniu sortowania w systemie Linux, użyj człowieku, pomóż Komenda.

Z drugiej strony, aby użyć wbudowanego Vima sortować poleceniem, w poleceniu sort zostanie zastosowany wzorzec wyrażenia regularnego.

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

W powyższym poleceniu:

  • \W reprezentuje zakładkę pionową
  • ^ wskazuje początek linii
  • (.{-},) to grupa, w której będzie .{-} jest niechciwą wersją .* I , jest polem separacji
  • {2} reprezentuje pierwsze 2 kolumny do pominięcia

Widać, że R flaga nie jest używana ze wzorcem, co oznacza, że ​​wzorzec pominie każdą dopasowaną kolumnę i posortuje kolumny według wzorca. W takim przypadku plik zostanie posortowany według trzeciej kolumny. Ponownie w poniższym przykładzie, aby pominąć pierwszą linię, użyłem zakresu 2,5.

Podstawowe rozróżnienie pomiędzy .* I .{-} jest to, że .{-} przetworzy algorytm pierwszego dopasowania, podczas gdy .* będzie pasować jak najbardziej. Na przykład w ciągu wxyz x.*y dopasuje cały ciąg while x.{-}y będzie pasować tylko do xy.

Sortuj linie bez uwzględniania wielkości liter

Jeśli sortujesz linie rozpoczynające się od dużych i małych liter, polecenie sort najpierw posortuje linie rozpoczynające się od wielkich liter. Cóż, aby zignorować wielkość liter, użyj metody I flaga.

Jak widać na poniższym obrazku, nieposortowane i nieposortowane linie z obydwoma :sortować I :sortuj ja polecenia.

Wniosek

Sortowanie w Vimie można łatwo wykonać za pomocą wbudowanego Vima sortować Komenda. Domyślnie linie są sortowane alfabetycznie, jednak jeśli chcesz posortować odwrotnie, użyj klawisza ! podpisz po poleceniu. Polecenie sort zazwyczaj sortuje cały bufor; zakres można również zdefiniować za pomocą separatora przecinka. The N flaga służy do sortowania numerycznego, natomiast do usuwania zduplikowanych linii W używana jest flaga. Ponadto, aby usprawnić proces sortowania, zewnętrzne sortować polecenie może być również użyte w Vimie.

Aby dowiedzieć się więcej o sortowaniu w Vimie, uruchom plik :pomoc w sortowaniu Komenda.