Почему вам нужно использовать vi* редакторы

Примечание: Под vi* редакторами в этой статье подразумеваются все редакторы, основанные на vi. Это в основном *vim и новомодный neovim. Я использую neovim, но это не играет большой разницы. В этой статье аргументы “за vi*” будут расположены в порядке от слабых к более сильным.

В современном мире большинство программистов для написания кода используют IDE. Например IntelliJ Idea или Visual Studio. Многие также используют продвинутые редакторы кода, такие как Visual Studio Code. Я и сам использовал его раньше.

Плюсы IDE сразу становятся очевидными. С помощью IDE можно управлять проектом, писать код с подсказками, генерировать готовый код или пользоваться сниппетами, рефакторить код и многое другое. Но плюсы vi*-редакторов многим не так очевидны и многие их не понимают. Новичку vim покажется вообще странным. Во-первых, vim запускается в терминале, а это уже отторгает новичка. Во-вторых изначально vim очень минималистичен, там нет даже номеров строк кода и подсветки синтаксиса. Да и все возможности vim’а скрыты от глаз новичка.

Легковесность

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

Работает в терминале

Раньше вы работали с терминалом в редакторе кода, а теперь вы работает с редактором кода в терминале. Это даёт некоторые преимущества. С vim вы можете не отвлекаться при переключении от редактора к терминалу. Также vim использует многие преимущества терминального сеанса, например работа в фоне. Сначала работать в терминале вам будет непривычно, но потом вы освоитесь и не будете обращать на это внимание.

Минималистичность

Vim действительно очень минималистичен. На первый взгляд ничего лишнего не бросается в глаза. Все возможности редактора скрыты.

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

Настраиваемость

В Vim настроить возможно всё, вплоть до внедрения своих команд и скриптов для редактора. Настроить всё в vim можно с помощью файла vimrc. Обычно он находится в ~/.vim/vimrc. Если его там нет, то вы можете создать его сами. Сделать начальную конфигурацию редактора довольно просто. Для этого используется специальный язык Vim.

Откройте файл ~/.vim/vimrc. Напишите в нём следующие строки:

set number " Включаем номера строк  
syntax on  " Включаем подсветку синтаксиса
" Включаем замену таба четырьмя пробелами
set tabstop=4
set softtabstop=4
set expandtab

Затем сохраните файл и перезапустите vim. Всего пять срок, и вот что у нас получилось:

Также в vimrc можно подключать различные плагины с помощью специальных расширений для плагинов. Внешний вид, от цветовой схемы до оформления редактора, можно также изменять здесь. И конечно же, можно определять свои комбинации клавиш.

Редактирование текста со скоростью мысли

Наконец мы подошли к главному плюсу всех vi* редакторов. Vim имеет несравнимо с другими редакторами кода и IDE возможности в редактировании кода. Это достигается во многом модальным режимом работы редактора и временем его существования.

Если окунуться в историю, Vim произошёл от редактора vi (ex), а тот в свою очередь от древнего редактора UNIX - ed. С того времени сохранились многие команды, которые годами создавало и изменяло огромное Open Source сообщество.

Vim имеет модальный интерфейс. Это значит, что у него есть несколько режимов работы. Изначально Vim загружается в нормальном режиме (Normal mode), который позволяет вводите текстовые команды, но не набирать текст. Для ввода текста существует режим вставки (Insert mode), Для исполнения сложных команд испольузется режим командной строки (Command mode), перешедший из ex. Для выделения текста используется визуальный режим (Visual mode). Также есть и другие режимы.

Философия vim такова - большинство времени вы должны проводить не в режиме вставки, а в нормальном и других режимах. Как художник, который во время своей работы лишь изредка делает мазки, вы по большей части размышляете над кодом, редактируете его, рефакторите и исправляете баги, а написанием кода вы занимаетесь редко. При использовании Vim вы вольны использовать и мышь, но использование одной лишь клавиатуры в купе с слепой печатью действительно ускорит вашу способность редактирование текста. Ваши пальцы будут думать за вас :.)

Альтернативы

Если вы не можете сразу отказатьсы от вашей любимой IDE, то у меня есть предложение. Для большинства редакторов кода есть расширения для использования режима редактирования как в Vim. С ним вы сможете попробовать функционал такого редактирования, при этом не отказываясь от своего любимого редактора кода.

В заключение

Vim - преккрасный редактор с долгой историей, который даёт вам множество преимуществ, самое главное из которых - быстрое редактирование кода. Vim сложен для новичка, так как научиться всем его возможностям довольно непросто. Стоит ли изучать Vim? Определенно! Для изучения могу посоветовать сайт встроенный в Vim vimtutor. (Просто откройте vim и наберите :Tutor). Также советую прочитать эту статью. Для более глубоко изучения советую эту книгу (Сам скачивал бесплатно, но сейчас нашёл только платную версию).