Vim: текстовый редактор для мастеров

Вы мог­ли слы­шать про­грам­мист­ские анек­до­ты типа «Не могу вый­ти из Vim». На «Ама­зоне» про­да­ёт­ся элек­трон­ная кни­га о выхо­де из тек­сто­во­го редак­то­ра Vim. Одни про­грам­ми­сты искренне не пони­ма­ют, как мож­но рабо­тать в такой страш­ной сре­де. А для дру­гих это люби­мый тек­сто­вый редак­тор — настоль­ко люби­мый, что они тащат его коман­ды и пла­ги­ны в дру­гие тек­сто­вые редак­то­ры, напри­мер, в VSCode. 

Сей­час попро­бу­ем раз­ло­жить по полоч­кам, что это за зверь и поче­му вокруг него такой культ.

Что такое Vim

Vim — это спе­ци­а­ли­зи­ро­ван­ный тек­сто­вый редак­тор для про­грам­ми­стов. Он пред­на­зна­чен для рабо­ты с боль­ши­ми объ­ё­ма­ми кода без исполь­зо­ва­ния мыши.

Глав­ная осо­бен­ность Vim — два режи­ма: режим напи­са­ния тек­ста и режим команд. В пер­вом режи­ме вы как обыч­но пише­те код, а во вто­ром мол­ние­нос­но управ­ля­е­те им. Режи­мы рабо­та­ют парал­лель­но друг дру­гу и меня­ют­ся по нажа­тию клавиш. 

Глав­ная сила — в огром­ном коли­че­стве кла­ви­а­тур­ных команд, кото­рые помо­га­ют быст­ро редак­ти­ро­вать текст. Например: 

dd — уда­лить стро­ку, на кото­рой вы сей­час стоите;

10dd — уда­лить сколько-то строк, в этом слу­чае 10;

cw — заме­нить сло­во на другое;

w, b — кур­сор впе­рёд или назад на одно слово;

A — допи­сать текст в конец строки;

I — Начать впи­сы­вать текст в нача­ло строки;

U — вер­нуть изме­не­ния в стро­ке (напри­мер, если слу­чай­но стёр);

: 10,25 w temp — сохра­нить кусок доку­мен­та в файл temp. Кон­крет­но здесь сохра­нит­ся кусок с 10-й по 25-ю строку.

И таких команд несколь­ко десят­ков. Всё постро­е­но вокруг того, что­бы делать все тек­сто­вые дела мол­ние­нос­но и прин­ци­пи­аль­но без уча­стия мыши.

Команды Vim, разложенные на клавиатуре Коман­ды Vim, раз­ло­жен­ные на клавиатуре 

🤔 Зачем редактировать текст без мыши?

У мыши один кур­сор, кото­рым нуж­но целить­ся в мел­кие объ­ек­ты на экране. А паль­цев на руках десять, и ими нику­да целить­ся не надо (при долж­ной сно­ров­ке). Если у вас выра­бо­та­на мышеч­ная память и вы зна­е­те горя­чие кла­ви­ши (или коман­ды Vim), вы буде­те редак­ти­ро­вать текст быст­рее, чем при исполь­зо­ва­нии мыши. 

Посмот­ри­те, как уда­ля­ет стро­ку сред­не­ста­ти­сти­че­ский пользователь:

  1. Он отры­ва­ет одну руку от клавиатуры. 
  2. Берёт­ся за мышку. 
  3. Выде­ля­ет мыш­кой ненуж­ную строку. 
  4. Нажи­ма­ет сво­бод­ной рукой кла­ви­шу удаления. 
  5. Воз­вра­ща­ет обе руки в исход­ное поло­же­ние на клавиатуру. 

А так это же дей­ствие выпол­нит поль­зо­ва­тель Vim: 

  1. Он жмёт «esc», что­бы перей­ти в режим команд.
  2. C помо­щью нави­га­ци­он­ных кла­виш j и k нахо­дит нуж­ную строку.
  3. Пишет коман­ду dd — уда­ле­ние строки.
  4. Жмёт i, что­бы вер­нуть­ся к редак­ти­ро­ва­нию текста.

Поль­зо­ва­тель Vim уби­ра­ет руки с кла­ви­а­ту­ры, толь­ко что­бы поесть или поче­сать репу. Всё осталь­ное вре­мя он корот­ки­ми коман­да­ми обра­ба­ты­ва­ет текст в несколь­ко раз быст­рее, чем любой чело­век с мышью.

После при­вы­ка­ния рабо­та в Vim срав­ни­ма с игрой на гита­ре: вы управ­ля­е­те тек­стом, буд­то он про­дол­же­ние вашей руки. Филь­мы про хаке­ров виде­ли? Вот такой эффект. 

Кому подходит

Vim счи­та­ет­ся нестан­дарт­ным инстру­мен­том со мно­же­ством недостатков: 

  • его слож­но и дол­го изу­чать, посколь­ку без исполь­зо­ва­ния основ­ных команд сам по себе редак­тор не даёт при­ро­ста в скорости;
  • у него нет коро­боч­ной вер­сии, что­бы мож­но было уста­но­вить и сра­зу решать боль­шин­ство про­грам­мист­ских задач;
  • все доступ­ные пла­ги­ны рабо­та­ют хуже тех, что пред­ла­га­ет любая совре­мен­ная сре­да разработки. 

Vim одно­знач­но не под­хо­дит руко­во­ди­те­лям и тем раз­ра­бот­чи­кам, кото­рые боль­шую часть вре­ме­ни зани­ма­ют­ся орга­ни­за­ци­он­ны­ми зада­ча­ми и мало кодят — не полу­чит­ся быст­ро редак­ти­ро­вать код, если посто­ян­но не тренироваться. 

Ещё Vim не под­хо­дит нович­кам, кото­рые толь­ко запи­са­лись на кур­сы и ниче­го не зна­ют о выбран­ной тех­но­ло­гии — нуж­ны хотя бы базо­вые навы­ки про­грам­ми­ро­ва­ния, что­бы не допус­кать гру­бых оши­бок при напи­са­нии кода. Vim тебя не корректирует. 

Если вас не испу­га­ли пере­чис­лен­ные недо­стат­ки и ваша рабо­та свя­за­на с посто­ян­ным кодин­гом, то Vim может стать вашим неза­ме­ни­мым помощником.

Комментарий типичного вимера Ком­мен­та­рий типич­но­го виме­ра. Если узна­ли себя — одно­знач­но сто­ит попро­бо­вать. Источ­ник

Как установить

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

После уста­нов­ки перей­ди­те в раз­дел «Справ­ка» и выбе­ри­те вкла­ду «Учеб­ник Vim» — это интер­ак­тив­ная обу­ча­ю­щая про­грам­ма и мини­мум, необ­хо­ди­мый для рабо­ты с редак­то­ром. Учеб­ник состо­ит из семи уро­ков, по ходу кото­рых вы позна­ко­ми­тесь с основ­ны­ми коман­да­ми и смо­же­те мед­лен­но обра­ба­ты­вать код. Что­бы посто­ян­но не воз­вра­щать­ся к учеб­ни­ку — реко­мен­ду­ем уста­но­вить на рабо­чий стол фир­мен­ные обои или рас­пе­ча­тать шпар­гал­ку с коман­да­ми Vim. Когда выучи­те коман­ды и смо­же­те ими поль­зо­вать­ся без шпар­га­лок — пере­хо­ди­те на сле­ду­ю­щий этап и попро­буй­те исполь­зо­вать Vim на реаль­ном проекте.

Стартовая страница учебника Vim Стар­то­вая стра­ни­ца учеб­ни­ка Vim. Учеб­ник мож­но вызвать через «Справ­ку» или коман­ду vimtutor. Во вре­мя тестов мы ска­ча­ли несколь­ко вер­сий редак­то­ра, и коман­да vimtutor сра­ба­ты­ва­ла не все­гда. Поэто­му реко­мен­ду­ем поль­зо­вать­ся «Справ­кой» — она надёжней 

Добавление Vim в VS Code

Vim под­дер­жи­ва­ет мно­же­ство пла­ги­нов, кото­рые после уста­нов­ки поз­во­ля­ют пре­вра­тить ста­рый редак­тор в ана­лог совре­мен­ной сре­ды раз­ра­бот­ки. На наш взгляд, для нович­ка это не слиш­ком удоб­но и луч­ше наобо­рот — уста­но­вить Vim в совре­мен­ную сре­ду раз­ра­бот­ки вро­де VS Code. 

Открой­те VS Code, в боко­вой пане­ли нажми­те на вклад­ку «Рас­ши­ре­ния» и вбей­те в поиск «Vim» — вам нуж­но уста­но­вить пла­гин vscodevim.vim. Теперь открой­те любой файл и попро­буй­те что-то напе­ча­тать — в VS Code долж­ны рабо­тать все коман­ды Vim: вы може­те в ско­рост­ном режи­ме созда­вать и редак­ти­ро­вать код. Если что-то не рабо­та­ет — пере­за­гру­зи­те про­грам­му и попро­буй­те ещё раз.

Расширение vscodevim.vim для VS Code Рас­ши­ре­ние vscodevim.vim для VS Code 

Как стать продвинутым вимером 

1. Изу­чи­те рус­ско­языч­ную доку­мен­та­цию и попро­буй­те коман­ды, кото­рые могут при­го­дить­ся в рабо­те. Если что-то не пони­ма­е­те или счи­та­е­те какие-то коман­ды лиш­ни­ми — не трать­те на них вре­мя. Vim необъ­ятен, и боль­шин­ство его воз­мож­но­стей вам не пона­до­бят­ся — они нуж­ны для спе­ци­фич­ных задач. 

2. Про­чти­те спи­сок реко­мен­до­ван­ной лите­ра­ту­ры. Во вре­мя чте­ния помни­те, что луч­ше все­го мате­ри­ал усва­и­ва­ет­ся в том слу­чае, если под­кре­пить его практикой. 

3. Выбе­ри­те пла­ги­ны для инди­ви­ду­аль­ной настрой­ки редак­то­ра. Это для тех, кому деск­топ­ная вер­сия Vim понра­ви­лась боль­ше пла­ги­на в VS Code. 

4. При­смот­ри­тесь к эрго­но­мич­ным кла­ви­а­ту­рам с настра­и­ва­е­мым рас­по­ло­же­ни­ем кла­виш. Воз­мож­но, какая-то из них помо­жет быст­рее осво­ить воз­мож­но­сти Vim. 

Текст:

Саша Бабас­кин

Редак­тор:

Мак­сим Ильяхов

Кор­рек­тор:

Ира Михе­е­ва

Иллю­стра­тор:

Даня Бер­ков­ский

Вёрст­ка:

Маша Дро­но­ва

Соц­се­ти:

Олег Веш­кур­цев

Как вый­ти из Vim:

:х или :q! и Enter