Журнал LinuxFormat - перейти на главную

LXF156:Дзен и Vim

Материал из Linuxformat
Перейти к: навигация, поиск


=Дзен и Vim как ис­кус­ст­во=

Hardcore Linux Про­верь­те се­бя на кру­том про­ек­те для про­дви­ну­тых поль­зо­ва­те­лей

Ос­во­ив Vim, вы бу­де­те набирать тексты бы­ст­рее и су­мее­те вы­хо­дить из труд­ных си­туа­ций. Джо­на­тан Ро­бертс вас всему нау­чит.

59955.png
(thumbnail)
От­лич­ная шпар­гал­ка по Vim от Те­да Нэй­ли­да [Ted Naleid] по­мо­жет лег­ко най­ти нуж­ную ко­ман­ду пе­ре­ме­ще­ния Vim.

Во­прос: Ка­кой тек­сто­вый ре­дак­тор по умол­чанию уста­нов­лен поч­ти в лю­бой су­ще­ст­вую­щей Unix-по­доб­ной сис­те­ме, вклю­чая боль­шин­ст­во ди­ст­ри­бу­ти­вов Linux, Mac OS X и сис­те­мы BSD?

От­вет: Vi. Он не толь­ко вез­де­сущ, но так­же за­пуска­ет­ся с команд­ной стро­ки и тре­бу­ет минималь­ной ши­ри­ны ка­на­ла при ра­бо­те че­рез сеть. По­это­му ка­ж­дый ли­нук­со­ид обя­зан знать Vi хо­тя бы на уровне про­стейше­го ре­дак­ти­ро­вания тек­ста: ес­ли сис­те­ма вый­дет из строя, един­ст­вен­ным сред­ст­вом вер­нуть ее к жизни мо­жет ока­зать­ся Vi.

Бе­да в том, что ин­тер­фейс Vi не слиш­ком ин­туи­ти­вен. Не то что он не прост, не ло­ги­чен или не об­ла­да­ет доста­точ­ной функ­цио­наль­но­стью, но по­ка кто-то не разъ­яснит вам, как он ра­бо­та­ет, он мо­жет ка­зать­ся чу­же­род­ным.

В данной ста­тье мы по­зна­ко­мим­ся с осно­ва­ми Vi, но не на при­ме­ре Vi, а на при­ме­ре Vim. Vim – это Vi «на сте­рои­дах»: ин­тер­фейс у него бо­лее или менее та­кой же, но есть мас­са до­полнитель­ных воз­мож­но­стей, бла­го­да­ря ко­то­рым он бо­лее удо­бен в по­все­днев­ном ис­поль­зо­вании.

По­на­до­бит­ся вре­мя

Про­чтя эту ста­тью и по­тра­тив несколь­ко недель (да, недель!) на ра­бо­ту с Vim, вы, воз­мож­но, уже никогда не за­хо­ти­те вер­нуть­ся к сво­ему ста­ро­му тек­сто­во­му ре­дак­то­ру или тек­сто­во­му про­цес­со­ру, а так­же смо­же­те вы­хо­дить из труд­ных си­туа­ций с по­мо­щью Vi, уби­вая одним вы­стре­лом двух зай­цев.

От­крой­те тер­ми­нал и за­пусти­те Vim на ре­дак­ти­ро­вание но­во­го фай­ла:

$ vim file.txt

Вот так все про­сто. Но не принимай­тесь пе­ча­тать! В Vim есть три раз­лич­ных ре­жи­ма – обыч­ный [Normal], ре­жим встав­ки [Insert] и ви­зу­аль­ный [Visual]. Обыч­ный, в ко­то­ром Vim за­пуска­ет­ся по умол­чанию, при­ме­ня­ет­ся для вы­да­чи команд, а ре­жим встав­ки – для на­пи­сания тек­ста. На­чав пе­ча­тать пря­мо сей­час, вы ника­ко­го тек­ста на эк­ране не уви­ди­те, а бу­де­те от­прав­лять ка­кие-то ко­ман­ды, ко­то­рые Vim по­пы­та­ет­ся вы­полнить.

Для вво­да тек­ста пе­ре­клю­чи­тесь в ре­жим встав­ки: на­жми­те i и на­бе­ри­те сле­дую­щий текст (да­лее мы восполь­зу­ем­ся им в ка­че­­ст­ве при­ме­ра, по­это­му на­бе­ри­те его до­слов­но):

us now and share the soft;

You’ll bbe free, hackers, you’ll be free.

Join us now and share the soft;

You’ll be free, hackers, you’ll be free.

За­вер­шив на­бор, на­жми­те Esc для воз­вра­та в обыч­ный ре­жим. В обыч­ном ре­жи­ме мож­но со­хранить наш (небезу­преч­ный с точ­ки зрения ор­фо­гра­фии и пунк­туа­ции) ше­девр, на­брав :write (или со­кра­щен­ный ва­ри­ант, :w) и на­жав Enter. Ес­ли вы хо­ти­те вый­ти из ре­дак­то­ра, на­бе­ри­те :wq, или :q! для вы­хо­да без со­хранения из­менений.

По­лез­ной при­выч­кой бу­дет, за­кон­чив на­би­рать текст, жать Esc для воз­вра­та в обыч­ный ре­жим, и вы го­то­вы к на­ви­га­ции и ре­дак­ти­ро­ванию.

Итак, по­че­му Vim яв­ля­ет­ся «мо­даль­ным»? Ну, он вы­рос из кон­соль­но­го при­ло­жения, и хо­тя сей­час име­ет оп­цию гра­фи­че­­ско­­го ин­тер­фей­са, все рав­но стре­мит­ся ог­раничить­ся ре­дак­ти­ро­ванием ис­клю­чи­тель­но с кла­виа­ту­ры. Глав­ное пре­иму­ще­ст­во в том, что не на­до от­ры­вать ру­ки от кла­виа­ту­ры ра­ди вы­бо­ра пунк­тов ме­ню; а зна­чит, текст ре­дак­ти­ру­ет­ся го­раз­до бы­ст­рее и эф­фек­тивнее.

В хо­де уро­ка вы уви­ди­те, как бо­гат воз­мож­но­стя­ми обыч­ный ре­жим.

Хм... По­хо­же, мы до­пусти­ли несколь­ко оши­бок в этом тек­сте. Как их ис­пра­вить? Пер­вое, что нуж­но знать – как пе­ре­мес­тить кур­сор в то ме­сто, где на­хо­дит­ся ошиб­ка.

В команд­ном ре­жи­ме мож­но пе­ре­ме­щать кур­сор с по­мо­щью кла­виш h (вле­во), j (вниз), k (вверх) и l (впра­во). Ес­ли вы не вла­де­е­те сле­пой пе­ча­тью, вы­бор кла­виш мо­жет по­ка­зать­ся слу­чай­ным, но данные кла­ви­ши рас­по­ло­же­ны в ря­ду ра­бо­че­го по­ло­жения паль­цев пра­вой ру­ки, где те и на­хо­дят­ся боль­шую часть вре­мени, так что эти кла­ви­ши лег­ко доступ­ны.

Шпар­гал­ка с ко­ман­да­ми
Кла­ви­ша Функ­ция
i, Esc Пе­ре­й­ти в ре­жим встав­ки, в обыч­ный ре­жим
h,j,k,l Пе­ре­мес­тить кур­сор вле­во, вниз, вверх, впра­во
x Уда­лить сим­вол над кур­со­ром
u,Ctrl-r От­ме­нить дей­ст­вие, по­вто­рить дей­ст­вие
0, $ Пе­ре­мес­тить кур­сор в на­ча­ло, в ко­нец стро­ки
r За­ме­нить те­ку­щий сим­вол
a, A Пе­ре­й­ти в ре­жим встав­ки по­сле те­ку­ще­го сим­во­ла, в кон­це стро­ки
I Пе­ре­й­ти в ре­жим встав­ки в на­ча­ле стро­ки

На­жав k один раз, вы уви­ди­те, как кур­сор пе­ре­мес­тит­ся в пре­ды­ду­щую стро­ку. Сей­час он на­хо­дит­ся там, где в тек­сте ошиб­ка – вме­сто soft долж­но быть software. Те­перь, когда кур­сор в нуж­ном по­ло­жении, пе­рей­ди­те в ре­жим встав­ки (кла­ви­шей i) и на­бе­ри­те ware.

От­лич­но, про­бле­ма ре­ше­на. Сле­дую­щая ошиб­ка – bbe стро­кой вы­ше: вме­сто этого долж­но быть be. Пе­ре­мес­ти­те кур­сор на стро­ку вверх, прежним спо­со­бом. Те­перь на­жи­май­те кла­ви­шу h до тех пор, по­ка кур­сор не ока­жет­ся на од­ной из b. Что­бы уда­лить лишнее b, на­жми­те x в команд­ном ре­жи­ме.

Как быть, ес­ли вы уда­ли­те слиш­ком мно­го сим­во­лов? Мож­но вер­нуть­ся в ре­жим встав­ки, ис­пра­вить ошиб­ку и вер­нуть­ся в обыч­ный ре­жим, или про­сто на­жать кла­ви­шу u. Эта ко­ман­да от­ме­ня­ет по­следнее дей­ст­вие. Ес­ли на­жать ее два­ж­ды, бу­дут от­менены два по­следних дей­ст­вия. В Vim мож­но и по­вто­рить по­следнее дей­ст­вие, на­жав Ctrl+r.

Сде­ла­ем пау­зу и оценим, что мы уже освои­ли: это­го в общем доста­точ­но для по­все­днев­ной ра­бо­ты с Vim. Но ес­ли тут и оста­но­вить­ся, вы не пой­ме­те, за­чем бы­ло ого­род го­ро­дить: рассмотренные при­ми­тив­ные ко­ман­ды не боль­но-то уп­ро­ща­ют или уско­ря­ют ре­дак­ти­ро­вание. Рас­смот­рим бо­лее слож­ные прие­мы ра­бо­ты с Vim.

Еще о ре­дак­ти­ро­ва­нии

Го­то­вы осво­ить еще несколь­ко команд? Сле­дую­щая ошиб­ка, ко­то­рую нуж­но ис­пра­вить – «y» в на­ча­ле стро­ки долж­на быть за­глав­ной. Вме­сто пе­ре­ме­щения вле­во с по­мо­щью кла­ви­ши h мож­но про­сто на­жать 0, и Vim пе­ре­мес­тит кур­сор пря­мо в на­ча­ло стро­ки.

Там вам да­же не при­дет­ся уда­лять сим­вол, встав­лять но­вый и воз­вра­щать­ся в обыч­ный ре­жим. Вме­сто это­го про­сто на­жми­те r, что оз­на­ча­ет за­ме­ну [replace], на­бе­ри­те Y – и вы уви­ди­те, что сим­вол сменил­ся на за­глав­ный, а ре­дак­тор уже в обыч­ном ре­жи­ме. Это бы­ло до­воль­но бы­ст­ро – 0rY. Пе­ре­мес­ти­тесь на стро­ку вверх, что­бы ра­зо­брать­ся с от­сут­ст­вую­щим сло­вом в на­ча­ле пер­вой стро­ки. Это сло­во Join, по­это­му про­сто пе­рей­ди­те в ре­жим встав­ки и до­бавь­те его в текст.

По­след­няя ошиб­ка спра­ва в са­мом кон­це этой стро­ки – сно­ва «soft» вме­сто «software». Что­бы ее ис­пра­вить, мож­но пе­ре­мес­тить­ся в конец стро­ки точ­но так же, как мы пе­ре­ме­ща­лись в на­ча­ло, на­жав $ в обыч­ном ре­жи­ме. Но так как мы хо­тим вой­ти в ре­жим встав­ки, мож­но на­жать A.

a в Vim оз­на­ча­ет «до­бав­ление [append]». На­брав в обыч­ном ре­жи­ме a в нижнем ре­ги­ст­ре, вы об­на­ру­жи­те, что пе­ре­шли в ре­жим встав­ки, но на­би­рае­мый текст бу­дет встав­лять­ся по­сле кур­со­ра (в ре­жи­ме встав­ки сим­во­лы встав­ля­ют­ся пе­ред кур­со­ром).

На­брав боль­шую A, вы уси­ли­те и дей­ст­вие. Вме­сто пе­ре­хо­да в ре­жим встав­ки по­сле те­ку­ще­го сим­во­ла, вы пе­рей­де­те в ре­жим встав­ки в кон­це стро­ки.

То же спра­вед­ли­во и для i: за­глав­ная I пе­ре­ве­дет вас в ре­жим встав­ки в на­ча­ле стро­ки.

К со­жа­лению, на этом у нас за­кан­чи­ва­ет­ся ме­сто. Про­дол­жай­те изу­чать и поль­зо­вать­ся Vim ка­ж­дый день, и вы его по­лю­би­те; но да­же ес­ли вы поч­ти не бу­де­те им поль­зо­вать­ся, то по крайней ме­ре смо­же­те вый­ти с его по­мо­щью из труд­ной си­туа­ции.

Персональные инструменты
купить
подписаться
Яндекс.Метрика