Vim (сокращение от Vi IMproved - улучшенный Vi) - это (как и следует из названия) версия редактора Vi с большим набором возможностей. Ниже я постараюсь рассказать немного из его истории и почему уметь пользоваться этим редактором может быть хорошим подспорьем для программистов и не только. Также если вы уже используете Vim, то можно посмотреть рецепты и мои скрипты для Vim на GitHub.
История Vi и Vim
После появления Unix стандартным редактором в нем был построковый редактор ed - перед пользователем было только приглашение в виде двоеточия и можно было вводить команды, например, чтобы посмотреть кусок текста, или заменить одну строку на другую. Надо сказать, что эти классические команды так и остались без изменений и более того использовать ed может иметь смысл и сейчас. :-) Где-то в 1976 - 1977 годах Билл Джой (Bill Joy) начал разрабатывать редактор ex который являлся последователем ed, но имел расширенный набор команд. Позже Билл разработал визуальный интерфейс для ex который он назвал vi (сокращение от visual). Разработка велась через модем в 300 бод, который позже был обновлен до 1200 бод. Таким образом вся работа с Vi была изначально рассчитана на самые медленные соединения.
В 1991 году Брам Мооленар (Bram Moolenaar) выпустил первую версию Vim и с тех пор в него было добавлено огромное количество возможностей, но в тоже время он все еще сохраняет ранний дух его предшественника Vi.
Почему стоит использовать Vim?
Из основных достоинств Vim можно перечислить:
- Использование минимальных клавиатурных команд для выполнения действий, что позволяет ускорить работу по редактированию и просто незаменимо при удаленной работе на медленных соединениях.
- Огромный набор возможностей по редактированию файла, в том числе и многоуровневая отмена изменений.
- Подсветка синтаксиса редактируемых файлов. Для Vim версии 7.0 приложено почти 480 скриптов подсветки. Достаточно просто создавать и свои собственные скрипты для подсветки синтаксиса.
- Возможность редактирования сразу нескольких файлов, в том числе с использованием нескольких окон и (начиная с версии 7.0) закладок с окнами.
- Поддержка Unicode и огромного количества кодировок.
- Возможность "складывания" на экране неиспользуемых в данный момент кусков текста. Например, глава книги может быть скрыта за одной строчкой с названием этой главы.
- Возможность включения проверки орфографии.
- Поддержка функций для разработчиков, таких как просмотр ошибок компиляции, просмотр изменений между двумя файлами, автоматическое позиционирование отступов в соответствии со структурой исходного кода и т.п.
- Огромное количество настроек, создания новых команд и также возможность расширения функциональности с помощью скриптов написанных либо на встроенном языке, либо на одном из широко-используемых скриптовых языков: Python, Ruby, Perl, Tcl.
Основы работы с Vim.
В отличии от большинства редакторов, реакция на нажатие клавиш в Vim зависит от того в каком режиме находится редактор. Два основных режима - это режим редактирования (в котором редактор находится после запуска) и режим ввода текста. Использование режимов работы позволяет упростить клавиатурные команды используемые при редактировании.
Как было сказано выше, после запуска редактор находится в режиме редактирования в котором можно производить такие операции над блоками текста как: удаление, копирование, форматирование и т.п. Один из способов перехода в режим ввода текста - это нажатие клавиши i, после ввода текста для возвращения в режим редактирования нужно нажать клавишу ESC. Для набора команд работы с файлами, редактирования настроек и других команд необходимо перейти в режим командной строки, для чего надо в режиме редактирования нажать клавишу :, курсор переместится в нижнюю строку и можно вводить такие команды как: w для записи файла и q для выхода из редактора.