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 позволяет достигать высокой производительности за счет использования клавиатурных сокращений и мощных команд.