Немного о VIM и IDE

в 16:16, , рубрики: holywar, IDE, vim

Один, не сомневаюсь, хороший человек и vim-ер со стажем опубликовал сегодня статью о том, что режимы — киллер-фича vim. Позволю себе не согласиться и поработать капитаном Очевидность.

Vim — не IDE

Он не перегружен ненужным функционалом. Серьезно, IDE-люди, сколько процентов функционала своей IDE Вы используете? 25-30%? Фича VIM — здесь в тотальной конфигурации, при чём не только в общем смысле, но и отдельно для каждого языкапроекта. Вы можете загружать одни плагины для c, другие для js, третьи для go. Можете на одном проекте использовать отступы в четыре пробела, а на другом в восемь. Используя разные конфигурации VIM для каждого языкапроекта. Как верно заметили в комментариях к предыдущей статье — в vim это не закладывалось, но так получилось.

IDE — тоже не vim, даже с плагином

Да, в Вашу IDE более тесно интегрирована поддержка языка и больше удобных фич для рефакторинга кода и потягивания смузи. Это хорошо, удобно и работает, пока кто-то озаботился написать IDE для Вашего языка, ну или хотя бы плагин для поддержки языка, на котором Вы пишите. Но представьте, Вы, к примеру, в основном пишите на C++, и возникла необходимость посмотреть JAVA-код. Будете ставить отдельную IDE или плагин? В случае с vim Вы просто откроете код и «из коробки» получите минимальную поддержку языка (подсветка, сворачивание блоков и т.д.)

IDE — хороший выбор, когда Вы окопались на 2-3 языках и никуда с них не уходите.
В комментариях к той статье было не раз высказано предложение использовать vim-плагин. Хорошая идея, если решили перебраться с IDE на vim, а вот в обратную сторону работает плохо — Вы знаете хоткеи и комбинации Vim, конфиг vim «вылизан» годами работы, и тут оказывается, что Ваш конфиг работает максимум на половину, что приходиться учить новые комбинации, которые, как правило, не удобны, делать «распальцовки» на клавиатуре и время от времени всё таки тянуть руку к мышке.

Немного о мышке, клавиатуре и VIM

Ваш конфиг «вылизан» и приглажен, совершаете все нужные операции даже не задумываясь о них, пальцы делают всё сами — именно так работает vim-ер со стажем. Серьезно, когда мне надо, к примеру, сдвинуть блок кода на 2-3 отступа в право — мои руки делают это сами, когда меня спрашивают как это сделать в vim — я «зависаю» на несколько секунд пытаясь вспомнить. С IDE, лично у меня, так не получилось — приходилось отвлекаться на мышку, вспоминать в каком меню находиться нужный пункт, добираться до него.

В vim все операции осуществляются с клавиатуры, и это чертовски удобно. Комбинация vim+tmux+i3 и мышка 99% времени валяется в стороне, но это тема для отдельной статьи. В чем удобство отказа от мышки? Начиная от банально отсутствия движения руки между мышкой и клавиатурой, заканчивая тем, что это действительно быстрее. Набрать комбинацю 2dw для удаления двух слов быстрее, чем выделить их мышкой и нажать BackspaceDelete.

Режимы

Режимы — не киллер фича vim, они удобны, хороши, но, по большому счету это всего лишь один из двух путей как сделать так, что бы редактор обладал богатым функционалом и полностью управлялся с клавиатуры. Второй путь — это путь emacs.

Распространенность

Знать vim — надо, хотя бы потому, что vim или его предок vi есть почти на любой *nix машине.
Иногда vim — единственный способ поправить конфиги на удаленной машине.

Вместо заключения

Vim — хороший и удобный инструмент, но требует предварительной настройки.
IDE — позволяет работать с ней, в большинстве случаев из коробки.
Vim — Мощный и многофункциональный инструмент.
IDE — Мощный, но узкоспециализированный инструмент
Vim — поддерживает больше языков, чем Вы способны вспомнить
IDE — поддерживает 1-3 языка, но делает это лучше VIM

Если Вы всё ещё хотите холиварить на тему Vim VS IDE, то не забывайте — это инструменты. Ваять доброе и вечное можно хоть с помощью awk, вопрос что использовать — дело лишь удобства и привычки.

Автор: t0pep0

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js