Gabay sa Vim Marks

Gabay Sa Vim Marks



Ang mga marka ng Vim ay mga tukoy na lokasyon sa isang file na maaaring itakda gamit ang isang pangalan at pagkatapos ay ibalik sa pamamagitan ng pagtawag sa kanila sa kanilang mga pangalan. Ang sulat m na sinusundan ng isa pang titik {a-z o A-Z} ay maaaring gamitin upang itakda ang marka, at a nag-iisang quote ) ‘) na may pangalan ng marka ay ginagamit upang bumalik sa markang iyon. Tandaan na, ang maliit na titik mga titik ay ginagamit upang itakda mga lokal na marka habang ang malaking titik mga titik ay ginagamit upang itakda ang pandaigdigang marka .

Pag-unawa sa Vim Marks

Pinapayagan ka ng Vim na magtakda ng mga partikular na posisyon sa isang file, lalo na kung nagtatrabaho ka sa isang malaking file kung saan kailangan mong lumipat nang mabilis. Ang tampok na ito ay gumagawa ng pag-navigate sa isang file na may daan-daang linya na napakasimple. Halimbawa, kung nagtatrabaho ka sa isang Python code na may 500 linya ng code, maaaring kailanganin mong mag-scroll sa file upang makarating sa isang partikular na linya ng code. Ngunit kung magtatakda ka ng mga marka sa mga gustong lokasyon, madali kang makakagalaw sa pamamagitan ng pagpindot ng ilang key.







Well, ang Vim marks functionality ay hindi nakakulong sa nabigasyon, maaari kang gumamit ng mga marks upang magsagawa rin ng iba pang mga command, na tatalakayin ko sa mga susunod na seksyon ng gabay na ito. Tuklasin natin kung paano magtakda at gumamit ng mga marka sa Vim.



Tandaan: Gumagamit ako ng pamamahagi ng Linux (Ubuntu 22.04) at bersyon ng Vim 8.2 para sa mga tagubilin sa gabay na ito.



Magtakda ng Marka

Upang itakda ang marka sa Vim, panatilihin ang cursor kung saan mo gustong itakda ang marka at pindutin ang m susi , sinusundan ng anumang liham mula sa a sa Sa . Halimbawa, kung gusto kong magtakda ng marka na may pangalan ng liham Sa tapos magtatype ako mz sa NORMAL mode.





mz

Mayroong maraming mga paraan upang magtakda ng marka sa Vim, ang pamamaraang ito ay ang pinakamabilis.

Habang ang nabanggit na pamamaraan ay malawakang ginagamit at napakabilis, gayunpaman, hindi ka nakakakuha ng anumang visual na indikasyon kung ang marka ay naitakda na o hindi maliban kung tahasan mo itong suriin.



Upang ilista ang mga marka sa Vim, gamitin ang :marks utos, na tatalakayin ko sa Listahan ng mga Marka seksyon. Gayunpaman, maaari mong paganahin ang indikasyon ng keystroke sa ibaba ng window sa pamamagitan ng paggamit ng :set showcmd.

: itakda showcmd

Maaari mo ring gamitin ang marka o ang marka utos upang itakda ang marka. Halimbawa, ang Sa Ang marka ay maaari ding itakda gamit ang ibinigay na utos sa ibaba:

: markahan ang z

Ang bawat Vim file ay maaaring magkaroon ng mga marka mula sa a sa Sa , ngunit kung magtatakda ka ng marka Sa para sa isang posisyon at gumamit ng parehong pangalan ng marka para sa isa pang posisyon, ang dating itinakda na marka ay aalisin (mai-overwrit).

Tandaan na ang malalaking titik {A-Z} ay maaari ding gamitin upang magtakda ng marka. Ang mga markang may malalaking titik ay pandaigdigang marka at batay sa mga file. Tatalakayin ko nang lubusan ang mga pandaigdigang marka sa isang hiwalay na seksyon.

Listahan ng mga Marka

Tulad ng tinalakay sa nakaraang seksyon, ang lahat ng nilikhang marka ay madaling mailista

gamit ang :marks utos.

: mga marka

Sa itaas na imahe ng output, ang lahat ng mga marka ay nakalista; ang ilan ay custom at ang ilan ay default.

Mayroong ilang iba pang mga paraan upang ilista ang mga marka. Upang maglista ng isang partikular na marka, gamitin ang :marks utos na may pangalan ng marka. Halimbawa, upang ilista ang marka kasama, gamitin ang :marks utos:

: markahan ang z

Katulad nito, upang maglista ng maraming marka, gamitin ang :marks :

: marks abz

saan a , b, at Sa ay magkaibang mga pangalan ng marka.

Ang mga marka sa loob ng mga file ay hindi nakikita bilang default at upang tingnan ang mga ito nang grapiko, mayroong iba't ibang mga plugin. Ang mga kilalang plugin na maaaring magpakita ng mga marka sa Vim ay Mga Showmark at Vim Signature .

Dahil ang ShowMarks plugin ay puno ng mga error at hindi na-update sa loob ng maraming taon, i-install ko ang Vim Signature plugin upang tingnan ang mga marka.

Sa pag-install ng plugin, itakda ang marka, at tahasang ipapakita ito ng plugin kasama ang pangalan tulad ng inilalarawan sa sumusunod na larawan.

Tumalon sa isang Markahan

Matapos itakda ang marka, ang susunod na hakbang ay ang pag-navigate sa mga marka. Upang tumalon sa simula ng minarkahang linya sa kasalukuyang buffer, pindutin ang solong quote (‘) na may markang pangalan {a-z}.

'Kasama

Para tumalon sa eksaktong lokasyon (row/column) pindutin ang backtick (`) na may markang pangalan {a-z}.

`z

Ang single (‘) at backtick (`) ay maaari ding gamitin para tumalon sa mga pandaigdigang marka {A-Z}.

Ang isang talahanayan ng pag-navigate sa mga maliliit na marka ay binanggit sa ibaba:

'' Tumalon pabalik sa linya kung saan ka tumalon
Tumalon pabalik sa posisyon kung saan ka tumalon
' . /`. Upang tumalon sa huling na-edit na linya / posisyon
`[\`] Upang pumunta sa simula / dulo ng huling yanked text
`<\`> Upang tumalon sa simula / pagtatapos ng huling visual na seleksyon
[bilang]] ' Upang tumalon sa susunod na linya ng [bilang] ang bilang ng mga marka mula sa kasalukuyang posisyon ng cursor
[bilang]]` Upang tumalon [bilangin] ang bilang ng mga marka mula sa kasalukuyang posisyon ng cursor

Mahalagang tandaan na ang mga navigational key na binanggit sa itaas ay para sa mga lowercase na marka.

Ang talakayan sa mga marka ng Vim ay hindi kumpleto kung hindi natin tatalakayin ang tumatalon at jumplist . Ang jumplist nag-iimbak ng mga paglukso na ginawa sa loob ng file o sa kabuuan ng mga file, ito man ay mga marka o normal na mga default na paglukso ng Vim.

Upang ilista ang lahat ng mga pagtalon, gamitin :tumalon command, at upang tanggalin ang lahat ng mga jump, gamitin ang :clearjumps. Upang mag-navigate sa mga jumps, gamitin ctrl+o at ctrl+i mga susi.

Tandaan: Bago tanggalin ang mga jump, tandaan na ang pagtanggal ng mga jump ay maaaring makaapekto sa kasaysayan ng nabigasyon.

Nalaman kong mas maginhawa ang paggamit ng mga pagtalon upang lumipat sa mga marka. Una, tinatanggal ko ang lahat ng mga pagtalon dahil kung hindi ko gagawin iyon, maaari akong mapunta sa ibang mga file. Pagkatapos ay nagrehistro ako mark jumps sa jumplist file gamit ang solong quote o backtick. Kapag tapos na, ginagamit ko ang ctrl+o at ctrl+i mga susi upang mabilis na tumalon sa mga marka.

Para sa higit pang tulong tungkol sa pag-navigate sa mga marka, gamitin ang :help marks at :help jumplist mga utos.

Global Marks

Ang mga pandaigdigang marka sa Vim ay nakatakdang tumalon sa pagitan ng mga file. Hindi tulad ng mga lokal na marka, ang mga pandaigdigang marka ay nakatakda na may malalaking titik at maaaring gamitin sa kabuuan ng mga file.

Unawain natin ang kahalagahan ng mga pandaigdigang marka sa tulong ng isang halimbawa. Ipagpalagay na nagtatrabaho ka sa isang code file at gusto mong ma-access ang isang partikular na function sa file na iyon. Kaya, sa halip na buksan ang file, i-type lamang ang set ng global mark, at bubuksan ang file gamit ang partikular na lokasyon.

Upang itakda ang pandaigdigang marka, gamitin ang mark command m na sinusundan ng malaking titik {A-Z}.

mZ

Ngayon, maaari mong ma-access ang markang ito mula sa anumang file. Upang tumalon sa pandaigdigang marka, gamitin ang parehong pamamaraan na binanggit sa Tumalon sa isang Markahan seksyon. Ang file na naglalaman ng marka ay bubuksan, isasara ang kasalukuyang isa.

'SA

Katulad nito, upang pumunta sa eksaktong lokasyon, gumamit ng backtick na may markang pangalan (`Z).

May bilang na mga marka

Ang mga may bilang na markang {0-9} ay ginagamit upang iimbak ang kasalukuyang posisyon ng cursor sa viminfo file kapag lumabas ka sa file. Ang mga may bilang na marka ay espesyal at hindi maaaring itakda nang direkta. Ang mga markang ito ay awtomatikong nabuo sa viminfo file upang subaybayan ang mga pagbabago sa file kapag lumabas ka sa file. Halimbawa, kapag lumabas ka sa anumang file ang viminfo ini-save ng file ang huling impormasyon ng posisyon ng cursor sa mga may bilang na marka tulad ng 0, 1, 2, at iba pa.

Maaari mong ilista ang mga may bilang na marka gamit ang :marks utos.

Para sa higit pang impormasyon tungkol sa mga markang may bilang ng Vim, gamitin ang :help viminfo-file-marks utos.

Pagtanggal ng mga Marka

Mayroong iba't ibang mga paraan upang tanggalin ang lahat ng mga marka, mga tiyak na marka, o isang hanay ng mga marka.

Upang tanggalin ang mga marka, ang :delmarks o :delm maaaring gamitin ang mga utos.

:delmarks z Upang tanggalin ang isang partikular na marka, hal., Sa
:delmarks x-z Upang tanggalin ang mga marka mula sa x sa Sa ganyan ang pagtanggal x , at , at Sa
:delmarks abxy Burahin a , b , x, at at mga marka
:delmarks zZ Burahin Sa at SA mga marka

Upang i-clear ang lahat ng lowercase na {a-z} na marka, gamitin :delmarks! utos. Upang i-clear ang mga uppercase na marka at mga marka ng numero, kailangan mong gamitin :delmarks A-Z at :delmarks 0-9 mga utos. Kung gusto mong i-clear ang malalaking titik na {A-Z} na marka, gamitin :delmarks A-Z . Ang mga may bilang na marka ay maaari ding i-clear gamit ang parehong command.

Mga Advanced na Tampok

Dahil ang mga marka ay mga lokasyon, maaari silang magamit para sa pag-edit ng file pati na rin sa Vim. Halimbawa, upang tanggalin, kopyahin, o baguhin ang isang bagay mula sa isang partikular na marka patungo sa isa pang marka, maaari mong gamitin ang kani-kanilang command na may pagbanggit ng pangalan ng marka.

Sa sumusunod na talahanayan, ang Sa ay ginagamit bilang pangalan ng marka.

d ' z / d`z Tanggalin mula sa kasalukuyang linya patungo sa susunod na markang linya / Tanggalin mula sa kasalukuyang posisyon hanggang sa susunod na eksaktong markang posisyon
c ' z / c`z Baguhin ang teksto mula sa kasalukuyang linya patungo sa susunod na may markang linya / Baguhin ang teksto mula sa kasalukuyang posisyon hanggang sa susunod na eksaktong markadong posisyon
at ' z / y`z Kopyahin (yank) ang teksto mula sa kasalukuyang linya patungo sa susunod na may markang linya / Kopyahin ang teksto mula sa kasalukuyang posisyon hanggang sa susunod na eksaktong minarkahang posisyon

Kung nais mong gumanap ng a linewise operasyon, pagkatapos ay tawagan ang marka gamit ang solong quote (‘), at kung gusto mong magsagawa ng a katangian operasyon, gumamit ng backtick (`).

Katulad nito, kung gusto mong tanggalin, baguhin, o hilain ang anumang bagay sa pagitan ng dalawang marka, maaari mong gamitin ang sumusunod na command syntax.

: 'x,' at < d, c o y >

Halimbawa, kung gusto mong tanggalin ang lahat ng mga linya mula sa marka 'x Markahan 'at gamitin ang : ' x, ' y d utos.

Tingnan ang sumusunod na file na may mga marka b at c .

Upang alisin ang lahat ng mga linya mula sa marka b sa c (kabilang), isagawa ang utos na ibinigay sa ibaba:

: 'b,' c d

Pagkakaiba sa pagitan ng Lowercase na Marka at Uppercase na Marka

Parehong lowercase at uppercase na mga marka ay may natatanging functionality.

Ang mga lowercase na marka ay ginagamit sa loob ng mga file at maaaring itakda mula sa alpabeto a sa alpabeto Sa sa anumang file. Ang mga ito ay natatangi sa mga file kung saan sila nilikha. Maaari silang ma-access at pamahalaan sa loob ng mga file kung saan sila nilikha. Sa kabilang banda, ang mga uppercase na marka {A-Z} ay pandaigdigan at hindi maaaring itakda sa parehong pangalan. Ang mga markang ito ay maaaring ma-access mula sa anumang file gamit ang apostrophe (‘) o backtick (`).

Ang nabigasyon at ang proseso ng pagtanggal ng maliliit at malalaking titik ay magkatulad. Ngunit ang mga lowercase na marka ay may mas maraming navigational command dahil sa kanilang mga in-file na setting.

Ang isa pang mahalagang bagay ay ang mga marka ay hindi nagtatanggal sa paglabas ng file o session. Kaya, kung nagtakda ka ng marka pagkatapos sa muling pagbubukas ng mga marka ng file ay mananatiling buo.

Vim Marks Cheat Sheet

Ang mga pangunahing operasyon na kailangan mong gamitin ang tampok na marka sa Vim editor ay binanggit sa sumusunod na larawan.

Konklusyon

Ang mga marka sa Vim editor ay mga custom-set na posisyon upang mag-navigate sa isang file na may daan-daang linya. May dalawang uri ng marka, uppercase at lowercase na marka. Ang mga lowercase na marka ay madaling gamitin sa pag-navigate sa loob ng file. Upang mag-navigate sa mga file, ginagamit ang mga uppercase na marka. Upang itakda ang marka, ang titik m ay ginagamit sa isa pang maliit o malalaking titik {a-z, A-Z}. Maaaring ilista ang mga marka ng anumang file gamit ang :marks utos. Upang magtanggal ng marka :delmarks o :delm ginagamit ang mga utos na may markang pangalan.