Что не поддерживается в редакторе vim

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. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vimКоманды Vim, разложенные на клавиатуре

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

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

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

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

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

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

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

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

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

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

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

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vimКомментарий типичного вимера. Если узнали себя — однозначно стоит попробовать. Источник

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

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

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

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

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

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

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

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vimРасширение vscodevim.vim для VS Code

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

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

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

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

Источник

Покоряя редактор Vim: как зайти, выйти и сделать что-то полезное?

Хотите работать с текстом и кодом эффективнее? Тогда покиньте колыбельку VS, Atom (или что там у вас) и ныряйте с головой в редактор Vim.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

Vim – это легендарный текстовый редактор, способный на многое, но недружелюбный к новичкам. Его действительно придется покорять, но награда за труды будет достойной. Бросайте свои уютные современные редакторы, мы идем на Vim!

Что такое Vim?

В 1976 году родился отец Vim’а – текстовый редактор Vi. Он использовался для работы в терминалах и имел весьма непривычные методы работы в режиме редактирования текста. Vim (Vi IMproved) – это последнее, самое знаменитое воплощение Vi, его улучшенная, как следует из названия, версия. Он поддерживается любой платформой, какую вы сможете вспомнить, и даже имеет графический интерфейс.

Что за зверь Neovim?

Возможно, вы слышали о Neovim’е. Это современный форк классического Vim’а, отрефакторенный, легко расширяемый. Из коробки он уже не так суров, как его предшественник, с ним вполне можно иметь дело. Подробнее о Neovim – на neovim.io.

Почему Vim?

Вас точно мучает вопрос: зачем возиться с таким древним редактором в 2018? Не спешите делать выводы. Путь Vim совсем не похож на все, что вы видели раньше. Он поднимает вас на качественно новый уровень беглости, превращает в хирурга, виртуозно проводящего сложнейшие операции над кодом.

Текстовый редактор Vim специально создан для суперпроизводительности. Расположение каждой команды продумано до мелочей. Главные клавиши – прямо у вас под пальцами! В каждом режиме редактора собственный набор комбинаций, вам не требуется искривлять пальцы, пытаясь захватить все нужные кнопки разом.

Еще одно достоинство, которое делает Vim лучшим редактором в мире, – это адаптируемость. Его можно идеально настроить «под себя» (или под свою команду).

Vim настолько хорош, что большинство других редакторов сегодня поддерживают какой-нибудь Vim-режим.

Подытожим цитатой из великолепной книги Практический Vim:

В руках эксперта Vim разрывает текст со скоростью мысли.

Пробуем Vim на вкус

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

Вместо разрушения, можно заняться улучшением:

Возьмите простую строку:

и измените ее f’ci’Wat

На человеческом языке это означает: найди (find) следующий символ , а затем замени (change) все внутри символов на WAT. выходит из режима вставки в нормальный режим.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

Можно скопировать строку командой yy (от слова yank – vim-жаргон для копирования) и вставить ее ниже командой p (put).

Бессмысленный пример

Выполним уже знакомую команду f’ci’MAN :

Разгоняемся: kJ объединит две линии в одну ( k – подняться, J – объединить).

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim
Все это совершенно бессмысленно, но часть магии Vim мы все-таки увидели.

Для более длинных ходов можно использовать счетчики в формате <число> <действие>, например:

Есть более масштабные ходы:

Новую строку можно начать после текущей ( o ) или перед текущей ( O ).

Для поиска по шаблону используется команда / , а n (следующий) и N (предыдущий) позволяет перемещаться между найденными фрагментами.

Можно даже записывать наборы команд с помощью макросов.

Столько мощи, а ведь мы практически не вышли за границы нормального режима и даже не покинули учебный файл! А есть еще разделения (splits), вкладки, регулярные выражения, доступ к внешним инструментам, проверка орфографии, подсчет слов, 6 основных режимов и 6 дополнительных с бесконечными возможностями для настройки и расширения.

Путь Vim

Основа Vim – клавиатура. Все важные команды расположены продуманно и максимально эффективно:

Все операторы осмыслены и легко запоминаются, благодаря мнемоническим зацепкам:

Вам не нужно запоминать тайные сочетания клавиш – все команды просто имеют смысл. К тому же их очень легко сочетать, композиция – это еще одна сакральная тайна Vim.

Почему редактор Vim такой суровый?

Перейдем к темной стороне Vim, к крутой кривой обучения:

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

и к недружелюбности:

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

Несмотря на то, что эти проблемы несколько преувеличены, они все-таки существуют. Есть по крайней мере 3 вещи, которые этому способствуют:

Слепая печать

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

Управление с клавиатуры

После работы с обычным редактором, специализирующемся на вставке текста, переход к Vim окажется сложным. Здесь вы не сможете использовать мышь, изучить возможности графического интерфейса или вызвать контекстное меню, не сможете даже набрать текст или просто выйти из программы. Здесь все слишком странно и слишком незнакомо.

Лучший совет – начинайте с основ и постепенно расширяйте словарный запас:

Обратите внимание на двоеточие перед большинством команд. Оно вызывает командный режим (ex mode).

Самый простой способ изучить редактор Vim – совместить его с вашим уютным редактором с помощью vim-режима. Так вы не попадете в положение Робинзона Крузо, сохраните все возможности обычного редактора и получите преимущества Vim.

Сложнее всего будет не выучить команды, а запомнить их на уровне инстинктов. Тут дело за практикой. Если вы будете регулярно практиковаться, изучая новые комбинации, то быстро станете vim-мастером. Вот вам несколько полезных ресурсов для практики:

Плохое первое впечатление

Последний оплот суровости Vim – ужасное первое впечатление. Вы набираете vim (или mvim для Mac GUI, или gvim для Windows, UNIX GUI) – добро пожаловать:

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

Вот с этого бледного экрана вы начинаете работу с лучшим в мире редактором. Откройте файл – нет подсветки синтаксиса:

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

Очень неуютно, на этом моменте многие в ужасе убегают.

У вас может появиться соблазн использовать предварительно настроенную версию Vim. Безусловно, первое впечатление в этом случае будет лучше, но так вы не поймете, как настроен ваш инструмент, упустите самую суть. Это будет просто черный ящик.

Если вы не чувствуете в себе сил покорять редактор Vim, попробуйте что-нибудь из следующего:

Источник

Как пользоваться текстовым редактором vim

Опытные пользователи Linux часто используют терминал, потому что так можно намного быстрее выполнить необходимые действия. Во время настройки системы нам довольно часто приходится редактировать различные файлы. Это могут быть настройки программ, какие-нибудь данные или обычные текстовые файлы.

В операционной системе Linux есть несколько текстовых редакторов, которые работают в терминале. Чаще всего новички используют редактор nano, но если вы заметили на нашем сайте во всех статьях используется текстовый редактор vi. Nano неудобный, и недостаточно функционален. Я сознательно не пишу в своих статьях о nano. Есть намного лучший текстовый редактор, это редактор vi. Здесь поддерживается быстрое перемещение по тексту, удобное редактирование, команды для изменения настроек работы, выполнение команд терминала из редактора, а также плагины для расширения функциональности. Но он немного сложный для новичков и очень непривычный.

В этой статье мы рассмотрим как пользоваться vim, рассмотрим основы работы с этим редактором, а также его основные команды.

Минимальные основы

Перед тем как идти дальше я бы посоветовал вам пройти курс обучения встроенный в редакторе. Выполнение всех обучающих заданий займет 25-30 минут. Но после того как вы освоите все что там написано, эта статья поможет вам закрепить материал. Дело в том, что команд и сочетаний клавиш у vim очень много и запомнить их все без практики невозможно. Для запуска обучения наберите:

Но делать это сейчас необязательно, в этой статье есть вся необходимая базовая информация и после ее прочтения вы уже сможете уверенно пользоваться vim, а обучение пройти чуть позже.

Как использовать редактор Vim

Начнем мы, как обычно с запуска программы, а также опций, которые ей можно передать. Синтаксис Vim очень прост:

$ vim опции имя_файла

$ vi опции имя_файла

Простой запуск vim без указания имени файла приведет к созданию пустого файла. А теперь давайте рассмотрим основные опции запуска:

Круто, правда? Но это только начало. Опции ничего по сравнению с командами редактора.

Командный режим Vim

В командном режиме вы можете перемещаться по редактируемому тексту и выполнять действия над ним с помощью буквенных клавиш. Именно этот режим открывается по умолчанию при старте редактора. Здесь вы будете использовать краткие команды, перед которыми может устанавливаться номер, чтобы повторить команду несколько раз. Для начинающих может быть поначалу очень запутанно то, что в командном режиме символы интерпретируются как команды.

Для перемещения используются такие команды:

Можете запустить редактор и поэкспериментировать, чтобы было легче понять как это работает. Если перед тем как нажать кнопку буквы нажать цифру, то эта команда будет повторена несколько раз. Например, 3j переведет курсор на три строки вверх.

Для переключения в режим редактирования используются такие команды:

К этим командам тоже применимы символы повторения. Поэкспериментируйте, можно получить интересный и не совсем ожиданный результат.

Более сложные команды редактирования текста. Вы можете править текст не только в обычном режиме, но и в командном с помощью команд. Для этого применяются такие команды:

Кроме этих команд, есть еще несколько полезных, которые мы не можем не рассмотреть:

С основными командами разобрались. Но у нас есть еще командная строка Vim, которая сама по себе тоже представляет огромный интерес.

Командная строка Vim

Со всеми основами разобрались, и вы теперь использование vim не будет казаться вам таким сложным. Но это еще далеко не все, этот мощный редактор может еще очень многое. Дальше мы рассмотрим несколько примеров использования vim, чтобы вам было легче справиться с новой программой.

Редактирование файла в Vim

Несмотря на то, что из всего вышесказанного можно понять как это делается рассмотрим еще раз. Чтобы открыть файл выполните:

Затем, если вы не хотите пока использовать возможности командного режима просто нажмите i, чтобы перейти в режим редактирования. Здесь вы можете редактировать файл так же, как и в nano. После того как завершите нажмите Esc, чтобы перейти в командный режим и наберите :wq. Записать и выйти. Все, готово.

Поиск и замена в Vim

Довольно часто нам нужно найти определенную последовательность в тексте. Текстовый редактор Vim умеет это делать.

Во-первых, если нужно найти символ в строке, нажмите f и наберите нужный символ, курсор будет перемещен к его позиции.

Для замены будет использоваться немного другая конструкция:

Двоеточие запускает командную оболочку с командой s для замены. Символ % означает что обрабатывать нужно весь файл, а g значит, что нужно обработать все найденные строки, а не только первую. Чтобы программа спрашивала перед каждой заменой можно добавить в конец строки опцию c.

Одновременное редактирование нескольких файлов

Чтобы открыть несколько файлов, просто передайте их в параметры при запуске программы:

vim файл1 файл2 файл3

Редактор vim linux откроет первый файл, для переключения ко второму используйте команду :n, чтобы вернутся назад :N.

С помощью команды :buffers вы можете посмотреть все открытые файлы, а командой :buffer 3 переключится на третий файл.

Буфер обмена Vim

Текстовый редактор Vim имеет свой буфер обмена. Например, вам нужно скопировать в четыре строки и вставить их в другое место программы, для этого выполните такую последовательность действий:

Также можно использовать выделение vim, чтобы скопировать строки. Выделите текст с помощью v, а затем нажмите y, чтобы скопировать.

Кириллица в Vim

Кириллица в Vim работает превосходно. Но есть одно но, когда включена кириллица в системе, все команды vim не работают, им и не нужно работать, они же не приспособлены для кириллицы.

Но переключать каждый раз раскладку, когда работаете в командном режиме тоже не очень удобно, поэтому открываем файл

/.vimrc и добавляем туда такие строки:

set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0

Теперь раскладка клавиатуры в командном режиме переключается по Ctrl+^ и все команды работают.

Выводы

В этой статье мы рассмотрели как пользоваться текстовым редактором vim. Это еще далеко не все его возможности, но теперь вы можете уверенно обращаться с редактором и забыть о nano. Более подробно о настройке Vim читайте тут. А вы уже пользуетесь Vim? Или другим редактором? Напишите в комментариях!

Еще немного информации по использованию Vim можно почерпнуть из видео:

Источник

Зачем использовать vim

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

VI(M) — текстовый редактор, который появился в далеком 1991 году, но до сих пор пользуется огромной популярностью (наряду с Emacs). Как правило, на него переходят после других редакторов уже состоявшиеся разработчики. Нередко, переходят с полноценных IDE. Почему?

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vimvim с настроенным линтером, файловым деревом NERDTree и нечетким поиском с fzf

В этом гайде не будет пошагового обучения виму. Цель — объяснить философию vim и причины его популярности, а также дать направление для дальнейшего обучения.

Различия редакторов

В современном мире есть из чего выбрать среди редакторов: Sublime Text, Atom, VS Code, Brackets. И это не считая IDE.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vimVisual Studio Code

Все они не лишены недостатков, но с точки зрения возможностей наворочены по максимуму. Между собой редакторы сравнивают по следующим характеристикам:

При таком способе сравнения vim выглядит достаточно бледно на фоне других редакторов. Да, он самый быстрый, но количество и качество плагинов явно уступает, а интеграций и вовсе нет, хотя, с другой стороны, многие из них не нужны в мире вима. Кроме всего прочего, обычный vim (а есть еще gvim — версия, запускающаяся в виде отдельного оконного приложения) — терминальная программа со всеми вытекающими последствиями. Мышка хоть и поддерживается, но работать используя её в виме — сомнительное удовольствие. Например скроллинг двигается рывками, так как в текстовом терминале смещение построчное.

И завершает картину кривая обучения. У вима она даже круче, чем у emacs. Чтобы научиться им пользоваться, придется в буквальном смысле страдать (но недолго если правильно учиться).

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim

Чужой среди своих

Если слепой десятипальцевый метод печатания создан для эффективного набора текста, то вим создан для слепого десятипальцевого редактирования текста.

Вим предлагает другой взгляд на способ работы с текстом. Вместо горячих клавиш + мышка + перемещение стрелками вим вводит понятие режимы. По умолчанию, открыв редактор, мы попадаем в режим normal. В этом режиме вся клавиатура действует как приборная панель, набор текста в нём невозможен. Его основная задача — использовать клавиатуру для перемещения по тексту и выполнение модификаций с помощью команд. В отличие от горячих клавиш, все команды короткие и нередко составные, причем, нажатие составных команд всегда последовательное, а не одновременное, как в горячих клавишах.

Другими словами, вим предоставляет язык для модификации текста.

Приведу несколько примеров:

Сама система команд, при этом, выстраивается в логичную систему, где всё имеет смысл и находится на своем месте. Причем, не только с точки зрения обозначений (i — inner, a — around и так далее), но и с точки зрения расположения на клавиатуре. Из этого, кстати, следует интересный вывод: если ваша раскладка не qwerty, то вся клавиатура «поедет», и пользоваться вимом станет невыносимо больно.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vimvim cheat sheet by Max Cantor

Но для полноценной работы одного режима normal недостаточно. Для перехода в режим редактирования insert, существует более 6 способов! Например ввод команды i приводит к тому, что ввод начинается прямо в том месте, где стоит курсор, а shift + a перемещает курсор в конец строки (требуется довольно часто), в свою очередь cc стирает ту строчку, где находится курсор и входит в режим редактирования.

Для выхода из режима вставки в нормальный режим, достаточно нажать ESC.

При правильной работе в вим режим вставки используется только для ситуации набора текста (или стирания во время набора). Модификации и перемещения выполняются, в подавляющем большинстве случаев, в режиме команд.

Мощь режима normal вы можете оценить хотя бы по тому, что абсолютно в каждом популярном редакторе есть плагин, эмулирующий работу vim и, как правило, это самый популярный плагин с огромным отрывом от всех остальных. Например, плагин в VS Code установили более миллиона раз.

Наличие режимов — ключевая, но не единственная причина. Вторая, не менее важная — буферы. В обычных редакторах есть чёткое разграничение на табы с файлами и другие панели, такие как файловое дерево, встроенный терминал, окно вывода ошибок, окно конфигурации, окно отладки и так далее. Все эти сущности живут своей жизнью. У них свои правила работы и отображения, свой набор горячих клавиш и способ перемещения внутри них (если такое перемещение вообще возможно).

Еще одно внезапное преимущество появляется из-за текстовой природы самого редактора. Так как он открывается прямо во вкладках терминала, а продвинутые терминалы имеют такую возможность как split окна, то интеграция терминала внутрь vim особо не нужна и с помощью комбинации вкладок терминалов и вима можно очень удобно настроить рабочий процесс.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim
Терминал iTerm 2 со split-окнами

Возможности, описанные выше, не даются бесплатно. Существуют определенные пререквизиты. Главный из которых — слепая десятипальцевая печать. Опыт показывает, что если программист печатает вслепую, но не по десятипальцевой схеме, то он либо вообще не может адаптироваться, либо постоянно испытывает дискомфорт. Если же человек пока не научился печатать вслепую вообще, то изучение вима стоит отложить на будущее.

Как правило, люди, печатающие правильно, настолько ценят возможность не смещать руки относительно центральной позиции (смещение руки на стрелки для них доставляет физический дискомфорт и неприятие), что вим становится для них настоящим праздником. Вся система команд идеально ложится на соответствующую концепцию.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim
Клавиатура терминала ADM-3A

В мире вима есть одна деталь, серьезно влияющая на количество его пользователей. В отличие от современных редакторов, в которых настройка выполняется переключением галочек либо изменением значений в json-файле, вим требует поддержки своего файла конфигурации и ручном управлении буквально всем. В виме нет механизма для просмотра и установки плагинов прямо из редактора. Каждый плагин необходимо самостоятельно найти на гитхабе и вписать в этот файл. Если нужна дополнительная конфигурация, то в этом же файле её и нужно сделать. Сам конфигурационный файл использует язык программирования VimL, тот же, на котором написан сам редактор. К сожалению, не получается один раз настроить его и забыть. Несмотря на то, что в сети огромное число примеров этих конфигурационных файлов, постоянно приходится что-то подкручивать, заменять плагины и дописывать новые горячие клавиши.

Что не поддерживается в редакторе vim. Смотреть фото Что не поддерживается в редакторе vim. Смотреть картинку Что не поддерживается в редакторе vim. Картинка про Что не поддерживается в редакторе vim. Фото Что не поддерживается в редакторе vim
Фрагмент файла конфигурации vim

Когда не стоит учить вим

Отдельно стоит сказать, что не стоит учить вим одновременно с тем, что вы собираетесь делать внутри него. Когнитивная нагрузка при изучении вима настолько высокая, что у вас не будет оставаться никакой энергии на изучение нового языка, фреймворка или, даже, программирования в целом. На вим имеет смысл смотреть тогда, когда вы уже спокойно работаете и хотите новых острых ощущений.

Другой важный аспект — готовность принять идеологию вима. Нередко происходит ситуация, когда программист садится за вим и при этом не начинает пользоваться вимом. Он продолжает использовать стрелки и практически не выходит в командный режим. Такой способ обучения виму самый опасный. Как только произойдет привыкание, переучить себя будет неимоверно сложно. Немалое число людей, считающих себя вимерами, не используют вим и в действительности работают крайне неэффективно.

Обучение виму — процесс сложный морально. Дело в том, что опыт сам по себе не делает вас лучше в чем-то. Научившись как-нибудь набирать текст, человек и через много лет будет делать это как-нибудь (не по скорости, а по эффективности работы с ним). То же самое касается использования редакторов.

Для повышения своей эффективности необходимо постоянно наблюдать за своими действиями, отслеживать те, что занимают слишком много времени, читать статьи и книги в поисках новых способов решения старых проблем. Такой подход, конечно же, важен не только при работе с вимом и даже не только в программировании, но именно в виме по-другому успеха достичь невозможно. Во время обучения нельзя себе давать слабину и действовать из принципа «сейчас сделаю хоть как-нибудь, а потом разберусь». Незаметно для вас сформируются неправильные привычки и дальнейший рост остановится. Если вы к этому не готовы, то изучение стоит отложить.

Сколько понадобится времени

Если следовать советам выше и постоянно правильно практиковать вим, то время от «любое действие занимает минуту» до «могу неспешно работать периодически подсматривая в документацию» займет около месяца. Дальше процесс пойдет легче, но останавливаться в развитии на этом этапе нельзя. Оттачивание всех необходимых навыков может занять и год. Но не стоит пугаться. В любом случае через месяц-два вы сможете вполне сносно работать.

NeoVim

Некоторое время назад был основан проект NeoVim. Это форк вима, разрабатывающийся энтузиастами. Сейчас он очень популярен и работает лучше, чем оригинальный Vim. Совместимость с плагинами почти полная, к тому же, большинство плагинов сейчас делаются с прицелом и на nvim тоже. Наша рекомендация использовать как основной редактор именно nvim.

Процесс обучения

Поставьте nvim и vim (с поддержкой python3).

Распечатайте и изучите vim cheatsheets.

Научитесь использовать возможности вашего терминала — сплиты/табы используя горячие клавиши.

Измените маппинги клавиш как описано выше.

Научитесь работать с пакетным менеджером plug. С него начинается вход в vim.

Изучите набор плагинов, подходящих под ваш стек, и установите их. В интернете много статей для настройки практически любого стека разработки. Единственная рекомендация, смотрите плагины основанные на lsp

Полезные ссылки

Плагины

Самый удобный способ искать плагины для vim — vimawesome.com.

Ниже список основных плагинов, без которых вим не вим:

Главный плагин с которого все начинается — vim-plug — пакетный менеджер, управляющий всеми зависимостями.

Кроме них понадобится и множество других. Например, под каждый язык есть свой собственный набор плагинов, информацию о которых можно почерпнуть гуглением либо просмотром содержимого репозитория https://github.com/sheerun/vim-polyglot.

Советы

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

Периодически просто открывайте документацию установленных плагинов и читайте её. Каждый раз вы будете находить что-нибудь новое и полезное.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *