17 мая 2021 г.
Время чтения: 7 минут

Редактор Vim и как с ним работать

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

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

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

В чём особенность Vim

От многих других редакторов Vim отличается тем, что здесь применяется два основных режима ввода — командный и текстовый. Режимы переключаются вручную. После запуска редактор автоматически открывается в командном режиме. Когда пользователь переключается с одного режима на другой, клавиши клавиатуры начинают работать немного по-другому. К примеру, при включённом режиме вставки при нажатии клавиши «‎W»‎ эта буква будет вводиться в соответствующем поле. А если вернуться к командному режиму, то эта же клавиша будет перемещать курсор вперёд на одно слово.

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

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

Начальная практика в Vim

Важно сразу приступать к практике и пробовать выполнять все задачи именно в Vim. Предстоит просмотреть текстовый файл, поправить скрипт Python или сделать какую-то заметку — непременно следует делать это всё в Vim. И уже на этом этапе разработчику пора понемногу отучать себя от использования мыши (трекпада).

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

Чтобы как можно быстрее освоить Vim, нужно использовать вышеупомянутые клавиатурные сокращения Vim повсюду. Пользователям браузеров Firefox, Chrome, Brave, Edge стоит установить расширение Vimium. Оно как раз предназначено для того, чтобы применять в деле клавиатурные сокращения Vim. С их помощью можно быстро перемещаться и отучаться таким образом от работы с мышкой.

Тем, кто использует какую-либо версию IDE, рекомендуется найти плагин или расширение для имитации клавиатурных сокращений Vim. Пользователям разных видов IDE от JetBrains хорошо подойдёт ideavim. А любителям работать с VS Code нужно будет найти расширение VSCodeVim. Для Jupyterlab тоже есть хороший вариант — нужно установить jupyterlab-vim, чтобы включились клавиатурные сокращения Vim.

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

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

Можно применить следующие опции:

  • -R — открыть в режиме «‎только чтение»‎;
  • -g — включить графический режим;
  • -w — сохранить все действия в файл;
  • -b — воспользоваться двоичным режимом, чтобы редактировать исполняемые файлы;
  • -x — активировать шифрование файла при записи;
  • -d — найти различия в файлах (потребуется указать несколько файлов для открытия);
  • -C — включить режим совместимости с Vi;
  • -n — отключить функцию автоматического сохранения для восстановления файла при ошибке;
  • «‎+команда»‎ — эта опция отвечает за выполнение команды после запуска редактора;
  • +номер — перемещение курсора к определённой пользователем строке после запуска;
  • +/шаблон — найти нужный участок в шаблоне и переместить курсор к его началу.

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

Все введённые символы редактор будет воспринимать как команды. При этом можно дублировать команды, используя цифры. К примеру, если перед введением буквы h нажать цифру 4, то курсор переместится влево не на 1 символ, а сразу на 4. Команды для перемещения по тексту:

  • h или l — переместить курсор влево или вправо на 1 символ;
  • j или k — переместить курсор на 1 строку вверх или вниз;
  • w или b — переместить курсор на 1 слово влево или вправо;
  • H — уйти в нижнюю часть экрана;
  • G — пролистать до конца файла;
  • zz/zt/zb — перемещать по экрану строку с курсором в середину/верх/низ;
  • Ctrl+u или Ctrl+d — прокрутить область просмотра в верхнем или нижнем направлении на полстраницы.

Команды для вставки и копирования:

  • p или P — вставить текст после курсора или перед ним;
  • y — скопировать символ;
  • yy или Y — скопировать целую строку.

Команды для отмены и удаления:

  • u — отменить последнее действие;
  • U — отменить последнее действие в указанной строке, где стоит курсор;
  • d — удалить символ;
  • dd — удалить строку целиком;
  • D — удалить всё, что находится на участке от курсора до конца строки;
  • dt — удалить часть текста, которая находится между местом курсора и следующим вхождением конкретного символа;
  • ciw — удалить конкретное слово и сразу переключиться в режим ввода;
  • C — удалить текст начиная от места курсора и до конца строки, затем снова автоматически происходит переход в режим ввода.

Некоторые команды не работают без указания дополнительных условий. Например, для удаления четырёх символов слева от курсора, нужно задать не просто d, а d4h, — тут мы добавили цифру (количество символов) и команду h (она перемещает курсор влево на 1 символ).

Ещё несколько полезных команд:

  • v — выделить текст;
  • ggvG= — выровнять текст во всём файле (переместиться в начало, переключиться на режим VISUAL, выделить весь текст документа, настроить отступ выделенных строк);
  • . — повторить ещё раз последнюю команду;
  • n или N — продолжить поиск вперёд или назад;
  • ~ — переключить регистр у символа, который выделен или на котором находится курсор;
  • /шаблон — искать вхождение;
  • %s/шаблон/заменить — заменить первое слово вторым;
  • ZZ — сохранить и выйти из редактора.

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

Режим вставки (текстовый)

Чтобы перейти в этот режим из командного, нужно использовать команду i. Причём она не просто включает его, но и сразу вставляет текст в область до курсора. Любой введённый символ редактор не будет считает командой, а вставит его в текст. Чтобы обратно перейти в командный режим, нужно нажать клавишу «‎Esc»‎.

В текстовый режим можно переключиться и с помощью других команд:

  • I — вставить текст с начала строки;
  • a — вставить текст в область после курсора;
  • A — вставить текст в конец строки;
  • r — заменить символ;
  • R — заменить несколько символов;
  • o — создать строку ниже строки с курсором;
  • O — создать строку выше строки, где находится курсор.

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

Режим командной строки

Для включения этого режима пользователь, находясь в командном режиме, должен нажать двоеточие (:). Теперь нужно задать конкретную команду для поиска или замены — ввести её и потом нажать клавишу «‎Enter»‎. Как только она выполнится, Vim автоматически вернётся в командный режим. В режиме работают следующие команды (в начале не забываем ставить двоеточие):

  • e файл — создать новый файл;
  • r файл — вставить содержимое этого файла в текущий файл;
  • w — сохранить изменения;
  • r! — задать выполнение команды оболочки и вставку полученного ответа в Vim;
  • buffers — просмотреть открытые файлы;
  • set переменная=значение — задать значение переменной для управления процессами редактора;
  • q — выйти из Vim;
  • q! — выйти из Vim, не сохранив изменения.

Визуальный режим

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

Команды визуального режима:

  • v — переход в посимвольный режим;
  • V — переход в построчный режим;
  • CTRL-V — переход в режим визуального блока.

Про клавишу «‎Caps Lock»

Обычно эта клавиша мешает, но её можно использовать для своих целей, так как она находится в удобной области клавиатуры. Речь идёт о превращении «Caps Lock» в клавишу «Esc». В редакторе Vim как раз такая клавиша нужна для того, чтобы переключать режимы.

Для разных ОС своя инструкция по превращению клавиши «Caps Lock» в «Esc»:

  • Windows и WSL — понадобится программа uncap;
  • MacOS — можно просто использовать системные настройки;
  • Linux — здесь пользователям нужны StackOverflow и Google.

Для пользователей Линукс хорошо подходит setxkbmap — она позволяет сделать из «Caps Lock» ещё одну клавишу «Esc». Затем нужно просто включить автозапуск setxkbmap при запуске системы:

setxkbmap -option caps:escape

Немного о vimtutor

Для изучения программы в неё встроили справочную систему vimtutor. В принципе, её использовать нет необходимости, особенно если пользователь уже испытал редактор на практике. Но заглянуть туда можно.

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

$ vimtutor

Затем нужно будет нажать :q для выхода из справочника.

Примечание. Пользователям Windows стоит пользоваться специальной подсистемой для Линукса — WSL (Windows Subsystem for Linux). Она хорошо подходит не только для изучения vimtutor, но и для дальнейшей работы с редактором.

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

Запоминаем главное

Vim помогает работать быстрее и не использовать мышь или трекпад.

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

В Vim есть 4 основных режима — командный, текстовый, режим командной строки и визуальный.

Клавишу «Caps Lock» можно преобразовать в клавишу «‎Esc»‎ и использовать её для переключения режимов.

Можно использовать встроенный в редактор справочник vimtutor для более детального изучения программы.

Общий или выделенный — какой IP-адрес лучше?

30 важных инструментов для фронтенда. Часть 3

Рекомендуем

Обновлять веб-приложения нужно вовремя — об этом ещё раз напомнил взлом PHP

Ускоряем развитие сайта — выбираем правильный домен

Нашли ошибку в тексте? Выделите ее и нажмите Ctrl + Enter
© «Джино», 2003–2021. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи № 150549 от 09.03.2017.
Правовая информация Политика конфиденциальности Карта сайта