Gabay sa Pagbukud-bukurin ang mga Linya sa Vim

Gabay Sa Pagbukud Bukurin Ang Mga Linya Sa Vim



Upang ayusin ang mga linya sa Vim, maaari mong gamitin ang built-in uri command na nag-uuri ng mga linya ayon sa isang tinukoy na hanay. Karaniwan, ang lahat ng mga linya sa dokumento ay pinagsunod-sunod kung walang ibinigay na saklaw.

Halimbawa, kung gusto mong ayusin ang buong dokumento, gamitin ang :uri utos sa NORMAL mode. Sa kabilang banda, kung gusto mo lang mag-uri-uriin ang mga partikular na linya, gamitin ang :x,y uri utos, saan x at at tukuyin ang hanay mula sa numero ng linya x sa at .







Ang pag-uuri ay isa sa mga mahahalagang pag-andar na kinakailangan habang nag-e-edit ng mga dokumento. Ang Vim ay hindi mas mababa sa anumang advanced na editor pagdating sa pagbibigay ng mga natatanging tampok tulad ng pag-uuri. Samakatuwid, sa gabay na ito, ipapaliwanag ko ang built-in ni Vim uri command, at kung paano ito gamitin sa iba't ibang paraan upang pagbukud-bukurin ang mga linya.



Tandaan: Ang mga tagubilin at utos na binanggit sa gabay na ito ay isinasagawa sa Linux (Ubuntu 22.04). Ang Vim ay isang cross-platform na text editor, at ang mga utos na ito ay gagana nang walang anumang error sa macOS at Windows din.



Pagbukud-bukurin ang Lahat ng Linya





Upang ayusin ang lahat ng mga linya sa isang dokumento, isagawa ang uri utos sa NORMAL mode.

:uri



Bilang default, ang uri ang utos ay mag-uuri ng mga linya sa pagkakasunud-sunod ng lexicographic.

Tandaan na kung ang iyong file ay may mga walang laman na linya, ang sort command ay maglalagay ng mga walang laman na linya sa itaas na aktwal na pag-uuri ng teksto.

Pagbukud-bukurin ang mga Napiling Linya

Upang ayusin ang mga napiling linya, una, kailangan nating piliin ang mga ito sa mode ng pagpili. At para paganahin ang selection mode, pindutin ang sa , at pumili ng mga linya gamit ang h , j , k, at l mga susi o mga pindutan ng direksyon.

Ang Vim ay mayroon ding line-specific na selection mode na tinatawag VISUAL LINE mode. Pindutin V (shift+v) upang paganahin ang VISUAL LINE mode upang piliin ang mga linya.

Pagkatapos piliin ang mga linya, makikita mo ang ' <, ' > sa command line, na kumakatawan sa hanay ng pagpili. Ang ' < ipinahiwatig ang unang linya ng visual na pagpili, habang ' > nagpapahiwatig ng huli.

Ngayon, i-type lang ang uri command, at pindutin ang return key upang ilapat ang pag-uuri sa mga napiling linya tulad ng ipinapakita sa sumusunod na GIF.

Pagbukud-bukurin ang Ranged Lines

Maaaring maipasa ang hanay ng linya bago ang uri utos upang ayusin ang mga linya. Ang :itakda ang numero Maaaring gamitin ang command upang i-activate ang numero ng linya sa Vim, samakatuwid ay ginagawang mas madaling makilala ang numero ng linya.

Halimbawa, upang pagbukud-bukurin ang mga linya mula sa linyang numero 1 hanggang linyang numero 4, gamitin ang :1,4 uri utos.

: 1 , 4 uri

Tulad ng makikita sa output sa itaas na ang tanging tinukoy na mga linya ay pinagsunod-sunod.

Pagbukud-bukurin sa Baliktad

Tulad ng nabanggit kanina, ang default na pag-uugali ng uri Ang utos ay pag-uri-uriin ang mga linya sa pagkakasunud-sunod ng leksikograpiko. Upang pagbukud-bukurin ang mga linya sa paraang hindi leksikal, idagdag ang tandang padamdam ( ! ) pagkatapos ng uri utos.

:uri !

Pagbukud-bukurin ayon sa Lokal

Ang mga computer ay pinapatakbo sa buong mundo, na may iba't ibang wika na may iba't ibang hanay ng mga character at panuntunan. Pagdating sa pag-uuri ng collation ayon sa lokal na usapin. Halimbawa, kung nakatira ka sa Japan at gusto mong ayusin ang mga linya ayon sa lokal na iyon, kailangan mong tukuyin ito. Ang uri Ang command ay nagbibigay din upang itakda ang lokal na opsyon sa l bandila.

Upang suriin ang kasalukuyang collation locale, gamitin ang :wika utos.

:wika

Upang pag-uri-uriin ang kasalukuyang paggamit ng lokal:

: swerte l

Tandaan: Maaaring hindi gumana nang maayos ang opsyong ito sa mga system batay sa macOS.

Pagbukud-bukurin ayon sa Numero

Upang pagbukud-bukurin ang mga linya batay sa unang decimal na numero sa isang linya, gamitin ang n bandila na may uri utos. Ang pag-uuri ay magpapatuloy sa pataas na pagkakasunud-sunod bilang default.

:uri n

Upang ayusin sa pababang pagkakasunud-sunod, gamitin ang ! simbolo pagkatapos ng utos.

:uri ! n

Ang pagkakaiba sa pagitan ng uri at uri n ay ang sort command ay nag-uuri ng mga linya sa leksikal na paraan, hindi pinapansin ang mga numero sa kanila. Kung gusto mong pag-uri-uriin nang may paggalang sa mga numero, pagkatapos ay idagdag ang n bandila na may utos ng pag-uuri.

Halimbawa, ang mga linya sa sumusunod na file ay may mga titik at numero din. Kapag pinag-uri-uriin natin ito sa pamamagitan ng paglalapat ng uri command lamang, ang mga linyang ito ay pag-uuri-uriin ayon sa alpabeto. Sa kabilang banda, ang paglalapat ng uri n utos pagbukud-bukurin ang mga linya ayon sa numero tulad ng ipinapakita sa sumusunod na larawan.

Ang ilang iba pang mga opsyon para sa numerical sorting ay binanggit sa sumusunod na talahanayan.

f Pag-uuri ng float number
b Pag-uuri ng binary number
O Pag-uuri ng octal na numero
h Hexadecimal number sorting

Pagbukud-bukurin ayon sa Marks

Sa Vim, ginagamit ang mga marka upang magtakda ng mga partikular na posisyon sa file para sa mas madaling pag-navigate ng isang file na may daan-daang linya. Ang mga marka ay maaaring gamitin upang magsagawa ng isang uri ng operasyon gamit ang uri utos.

Ipagpalagay na nagtakda ka ng dalawang marka a at b .

Kaya, upang ayusin ang lahat ng mga linya mula sa marka a Markahan b , gamitin ang sumusunod na command.

: 'a,' b uri

Ang nag-iisang quote ( ' ) ay ginagamit upang ma-access ang mga marka.

Pagbukud-bukurin ayon sa Regular Expression (RegEx)

Ang regular na expression (RegEx) ay isa sa mga karaniwang paraan upang pag-uri-uriin ang mga linya sa pamamagitan ng pagtukoy ng pattern na may uri utos.

Halimbawa, upang pag-uri-uriin ang mga linya na may kinalaman sa isang column na may mga alpabeto at digit, gamitin ang /[a-z]*[0-9]+/ pattern na may uri utos. Ang r bandila pagkatapos ng uri Ang utos ay ginagamit upang turuan ang utos na pag-uri-uriin batay sa nabanggit na pattern.

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

Tulad ng makikita mo sa larawan sa itaas, ang huling hanay ay pinagsunod-sunod ayon sa alpabeto. Upang pag-uri-uriin ang column ayon sa numero, ipasok lamang ang n bandila.

Tandaan: Nilaktawan ko ang mga unang linya sa pamamagitan ng pagtukoy sa hanay mula sa linya 2,5.

Ang r flag ay nagbibigay-daan sa iyo upang ayusin ang file ayon sa mga ibinigay na pattern. Kung wala ang r flag, pag-uuri-uriin ng sort command ang lahat ng linyang hindi tumutugma sa pattern.

Alisin ang Mga Duplicate na Linya

Ang pinakamabilis na paraan upang alisin ang mga duplicate na linya sa isang file ay ang paggamit ng uri utos kasama ang sa bandila, na kumakatawan sa natatangi.

:iba't-ibang u

Tandaan na ang paggamit ng paraang ito upang alisin ang mga duplicate na linya ay pag-uuri-uriin din ang mga linya, na maaaring hindi gusto sa maraming sitwasyon. Gumamit ng mga alternatibong pamamaraan, tulad ng regex, upang alisin ang mga duplicate na linya sa isang file nang hindi nangangailangan ng pag-uuri.

Pagbukud-bukurin ang mga Linya Batay sa isang Column

Mayroong dalawang paraan upang pag-uri-uriin ang mga linya sa Vim batay sa column. Ang unang paraan ay gumagamit ng panlabas na Linux sort command, habang ang pangalawa ay gumagamit ng built-in sort command.

Ang panlabas na utos ay madaling ipatupad kumpara sa default na utos ng pag-uuri. Tandaan na ang mga panlabas na utos ay hindi ang mga default na utos ng Vim. Nangangahulugan ito ng anumang utos na sinusuportahan ng operating system.

Unawain natin kung paano ito gumagana sa Vim.

Upang gumamit ng anumang panlabas na utos sa Vim, ! simbolo ang ginagamit bago ang utos na iyon. Ipagpalagay na mayroon kaming comma-separated file (CSV) at gusto naming pag-uri-uriin ang file na may kinalaman sa ikatlong column. Ang utos ay magiging

: %! uri -t ',' -k3

Ang % ay nagpapahiwatig ng buong buffer bilang isang seleksyon. Ang -t flag ay ginagamit upang tukuyin ang field separator, na maaaring maging isang kuwit, tutuldok, o kahit na espasyo. Ang -k flag ay ang susi na nagpapahiwatig ng posisyon sa linya, at k2 nangangahulugang ang pangalawang field pagkatapos ng tinukoy na delimiter.

Sa halimbawa, nabanggit ko ang saklaw sa halip na % upang laktawan ang unang linya.

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

Ang panlabas uri Ang command ay maaaring maging kapaki-pakinabang din sa maraming iba pang paraan dahil nag-aalok ito ng iba't ibang opsyon sa pag-uuri gaya ng shuffling, random na pag-uuri, at pagsasama. Upang matuto nang higit pa tungkol sa Linux sort command, gamitin ang tulong ng tao utos.

Sa kabilang banda, gamitin ang built-in na Vim uri command, isang regular na expression pattern ang gagamitin sa sort command.

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

Sa utos sa itaas:

  • \sa kumakatawan sa patayong tab
  • ^ ay nagpapahiwatig ng simula ng linya
  • (.{-},) ay isang pangkat na kung saan .{-} ay isang di-matakaw na bersyon ng .* at , ay ang separation field
  • {2} ay kumakatawan sa unang 2 column na lalaktawan

Makikita na ang r hindi ginagamit ang flag kasama ng pattern, na nangangahulugang lalaktawan ng pattern ang anumang katugmang column at pag-uuri-uriin ang mga column pagkatapos ng pattern. Sa kasong ito, pag-uuri-uriin ang file batay sa ikatlong column. Muli sa sumusunod na halimbawa, upang laktawan ang unang linya, ginamit ko ang hanay na 2,5.

Ang pangunahing pagkakaiba sa pagitan ng .* at .{-} yun ba ang .{-} ay magpoproseso ng pinakamaikling tugma unang algorithm, habang .* ay magkatugma hangga't maaari. Halimbawa, sa isang string wxyz ang x.*y ay tutugma sa buong string habang x.{-}y ay tumutugma sa xy lamang.

Pag-uri-uriin ang Mga Linya na Case Insensitive

Kung mag-uuri ka ng mga linya na nagsisimula sa upper at lower letters, ang sort command ay mag-uuri-uriin muna ang mga linya sa malalaking titik. Well, para huwag pansinin ang case sensitivity, gamitin ang i bandila.

Tulad ng makikita mo sa sumusunod na larawan, ang hindi pinagsunod-sunod at pinagsunod-sunod na mga linya na may parehong :uri at :uri i mga utos.

Konklusyon

Ang pag-uuri sa Vim ay madaling gawin gamit ang Vim built-in uri utos. Bilang default, ang mga linya ay pinagbukud-bukod ayon sa alpabeto, gayunpaman, kung gusto mong pag-uri-uriin nang pabaligtad pagkatapos ay gamitin ang ! lagdaan pagkatapos ng utos. Karaniwang inuuri ng sort command ang buong buffer; ang isang hanay ay maaari ding tukuyin gamit ang isang comma separator. Ang n flag ay ginagamit para sa numerical sorting, habang upang alisin ang mga duplicate na linya sa ginagamit ang bandila. Bukod dito, upang mapahusay ang proseso ng pag-uuri, ang panlabas uri Ang command ay maaari ding gamitin sa Vim.

Upang matuto nang higit pa tungkol sa pag-uuri sa Vim, patakbuhin ang :help sort utos.