Vim: Настройка и преимущества мощного редактора кода

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

Преимущества Vim

Несмотря на кажущуюся сложность, Vim невероятно популярен среди разработчиков. Его используют 22% профессиональных программистов, а NeoVim — ещё 11%. Это говорит о большом и активном сообществе опытных пользователей. Постоянно растущая популярность Vim с момента его выпуска в 1991 году (fork редактора vi, 1976 год) делает его актуальным инструментом. NeoVim — современный форк Vim, с незначительными отличиями в установке плагинов. Для новичков рекомендуется начать с Vim, а затем перейти на NeoVim.

Режимы работы Vim

Философия Vim основана на использовании различных режимов:

  • Normal Mode: Базовый режим для выполнения команд (например, dd — удалить строку, dw — удалить слово, u — отменить действие).
  • Insert Mode: Режим ввода текста (активируется клавишей i).
  • Visual Mode: Режим выделения текста (активируется клавишей v).
  • Command Mode: Режим выполнения команд (активируется двоеточием :).

Начало работы

Запустите Vim в терминале командой vim [имя_файла]. Файл откроется, если существует; иначе, будет создан. На macOS и Linux Vim обычно установлен по умолчанию, для Windows потребуется отдельная установка. В базовом состоянии Vim имеет минималистичный интерфейс, цветовая схема зависит от темы терминала.

Рекомендуется пройти встроенный обучающий курс vimtutor, запустив команду vimtutor в терминале. Он охватывает базовые концепции и содержит практические упражнения.

Навигация и ввод текста

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

Настройка

Настройки хранятся в файле ~/.vimrc. Создайте его командой vim ~/.vimrc. В этом файле можно настроить подсветку синтаксиса (syntax on), нумерацию строк (set number) и другие параметры. (Ссылка на пример файла .vimrc будет предоставлена).

Режимы вставки

Режимы вставки: i (вставка перед курсором), a (после курсора), I (в начало строки), A (в конец строки), o (новая строка ниже), O (новая строка выше). Vim чувствителен к регистру: заглавные буквы часто имеют обратное действие по сравнению со строчными.

Команды перемещения

Набор команд для перемещения по тексту:

  • w: следующее слово.
  • b: предыдущее слово.
  • e: конец слова.
  • E: начало слова.
  • 0: начало строки.
  • ^: первый непустой символ строки.
  • $: конец строки.
  • G: конец файла.
  • gg: начало файла.
  • GD: перейти к определению.
  • Ctrl-o: вернуться к предыдущему местоположению курсора.

Удаление и копирование

  • x: удалить символ под курсором.
  • d: удалить. dd: удалить строку, d$: удалить до конца строки, D: удалить до конца строки.
  • y: скопировать. yy: скопировать строку.
  • p: вставить.
  • P: вставить выше текущей строки.
  • u: отменить действие.
  • Ctrl-r: вернуть отмененное действие.

Режим замены

R: заменяет символ под курсором. r: заменяет один символ. Ctrl-o: выполнение одной команды из insert mode и возврат.

Сочетания команд

Vim позволяет комбинировать команды (например, d2j — удалить две строки вниз).

Перемещение по номерам строк

Быстрый переход к строке с помощью её номера и k (вверх) или j (вниз). Например, 5k — перейти на 5 строк вверх.

Перемещение по символам

f[символ]: переместить курсор к следующему вхождению символа. t[символ]: переместить курсор перед следующим вхождением символа. ;: повторить последнее f или t. ,: повторить в обратном порядке.

Русская раскладка

Проблемы с русской раскладкой решаются настройками в ~/.vimrc, но могут быть нестабильны. Рекомендуется использовать переключение раскладки одной клавишей.

Модификаторы

Модификаторы i (включая) и a (прилегающие) расширяют возможности команд удаления и выделения. Например, diw — удалить слово, включая пробелы. daw — удалить слово с окружающими пробелами. yiw — скопировать слово.

Visual Mode

V: выделение по строкам. v: выделение по символам. Модификаторы i и a работают и в Visual Mode. viw: выделить слово.

Visual Mode используется для ограничения области действия команд (выравнивание, сортировка, замена).

Поиск

/: поиск. n: следующий результат поиска. N: предыдущий результат поиска. *: поиск текущего слова. #: поиск текущего слова в обратном направлении.

Перемещение по страницам

Ctrl-u: вверх на полстраницы. Ctrl-d: вниз на полстраницы.

Vim как файловый менеджер

vim [директория] открывает файловый менеджер Vim.

Автодополнение

Встроенное автодополнение (Ctrl-n), но для более продвинутого (как в IDE) требуется установка и настройка LSP серверов и плагинов (coc.nvim или ycmd).

Работа с окнами

Ctrl-w v: вертикальный сплит. Ctrl-w q: закрыть окно. Ctrl-w + h/j/k/l: перемещение между окнами.

Выполнение команд терминала

:! [команда] выполняет команду терминала.

Установка плагинов

Для управления плагинами используйте менеджер плагинов (например, paq). (Инструкция по установке paq и пример установки плагина N3 будут предоставлены). Список плагинов индивидуален.

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

Что будем искать? Например,программа