Как стать автором
Обновить

Комментарии 179

если это статья про neovim, то она устарела на несколько лет, сейчас все не так.

Neovim сейчас переводят с vimscript на Lua, соответственно конфиг и все плагины должны быть на этом языке.

Главные плагины, с которых надо начать - это lsp, telescope, treesitter, и что-нибудь для асинхронного автокомплита, лучше всего nvim-cmp. Далее на них уже навешивается все остальное, от fzf до тем оформления. Вот например тема, поддерживающая все эти фичи: https://github.com/Pocco81/Catppuccino.nvim

На счет lua. Мне нравится идея перенести свой конфиг (.vimrc), который состоит из 100500 строк в отдельные файлы. Навести порядок и еще получить больший прирост производительности. Но меня смущает, что надо хоть немного знать lua. Кто-нибудь прошел этим путем?

По поводу lsp - он ведь используется в ассинхронном deoplete.nvim, без него он работать не будет.

Если есть telescope, разве нужен fzf?

И статья в целом хорошая, особенно для новичков и как tutorial.

Lua для неовима достаточно лёгкий. Самое главное - знать, как вызывать сторонние плагины и как работать с таблицами, остальное подтянется по мере пользования. Есть плагин-компаньон, который натягивает на lsp Lua API неовима с документацией. Есть довольно-таки много активно разрабатываемых "готовых" конфигов, по типу NvChad, doom-nvim.

Я вот всегда старался избегать "готовых" конфигов / сборок. Мне казалось, что во-первых я теряю контроль над ситуацией, во-вторых было ощущение, что мне втюхивают в довесок то, что мне не нужно.

Я вижу явный профит от использования lua + nvim, но не вижу, красивого и простого решения.

После выхода Neovim 0.5 с lua есть набор плагинов, альтернативы которым в принципе нет

https://github.com/neovim/nvim-lspconfig
https://github.com/nvim-treesitter/nvim-treesitter
https://github.com/williamboman/nvim-lsp-installer
https://github.com/nvim-telescope/telescope.nvim
если свой конфиг строить без них не обойдешься
новые сборки именно на них основаны

вся поддержка языка вынесена в lsp и treesitter, нужно только установить нужный язык через LspInstall TSInstall

https://github.com/LunarVim/LunarVim
https://github.com/CosmicNvim/CosmicNvim
https://github.com/NvChad/NvChad
такие сборки замечательная база для того чтобы добавлять туда уже то, что нужно именно тебе

Если уж совсем не нравятся сборки, то из обязательных настроек там только горячие клавиши, и настройки везде делаются однотипно через вызов типа
require('telescope').setup {

}

ага, а потом он же выкладывает видео как выучить Lua за час)

Статья хорошая, прямо с теми плагинами, которые нужны для старта.
Чего лично мне не хватает -- какого-то полного гайда того, как работать без мыши все время, абсолютно со всем что есть внутри окружения.
Кстати, выход и вход в режим ввода повесил на правый альт. До этого пользовался ctrl+], но понял, что такое двойное нажатие сильно портит опыт работы в Виме.

Иногда надо консоль открыть и потыкаться, иногда файлы поперетаскивать, иногда браузер открыть, что-то в поиске вбить, почитать ответы и т.д.
И как-то не получается выстроить поток работы без мыши, сколько бы я не пытался.

И как-то не получается выстроить поток работы без мыши, сколько бы я не пытался.

И не получится без емакса))))
Потому что вим — это только редактор текста, а емакс — это целая вселенная, с собственным терминалом, просмотром пдф, картинок, латекса, встроенным рсс ридером, почтовым клиентом, браузером и незаменимым орг модом. Проще перечислить, чего нету в емаксе, чем то, что есть. И одна простая причина, почему в емаксе все это есть — чтобы все управление у человека было одинаково, одна привычная модель управления без мышки. А если сверху поставить evil-mode то как раз получишь лучшие с двух миров.

У меня на одном проекте используется styled-components. Похоже, что не существует нормального способа подсветки этих чудо-конструкций, при этом чтобы там внутри корректно работали emmet-аббревиатуры.

Все плагины что я видел имеют баги.

Такая же ситуация с стулед-момпонентами и в sublime , к сожалению. Поэтому в ряде задач без редактора vscode не обойтись(

Такая же ситуация с стулед-момпонентами и в sublime , к сожалению. Поэтому в ряде задач без редактора vscode не обойтись

В емаксе есть web-mode, который спокойно понимает смесь html, css, jsx, шаблоны и тд.

Я даже не знал, что такое извращение существует, До этого я думал, что хуже jsx уже не придумаешь

Я тоже. Ненавижу стулед-компоненты. Но это гуано приходится поддерживать и развивать :-(

Потому что вим — это только редактор текста, а емакс — это целая вселенная

а чего из этого нет в vim? Просматривать почту можно с помощью notmuch, читать rss - можно найти пару плагинов (или загружать их скриптом в Maildir и см. п. 1), org mode имеется (neorg), просмотр картинок и т.п. - опять же никто не мешает настроить бинд на запуск какого-нибудь imv.

а чего из этого нет в vim? 

Ничего, только сторонние решения. Вы используете для этого другие программы. Картинки в виме нельзя посмотреть даже в gui для неовима, потому что вим оперирует линиями текста, а емакс - пикселями. Я не говорю, что это плохо. Просто это другой подход, к которому стремится комментатор выше и которого не достичь с вимом. В емаксе, благодаря лиспу это все встроенно, имеет все привычные настройки, темы, кастомизации и так же легко разширяется благодаря лиспу

Поправьте меня, но последний опыт такой: в емаксе нет многопоточности под виндой. Поэтому все залипает в графике, работать невозможно.

Не имею никакого опыта с виндой. Эта ось не слишком подходит для управления без мышки

Вот так и выходит, что вместо текста ты запускаешь еще одну маленькую ОС)

Тоже можно сказать про любую jetbrain иде, ведь виртуальная машина тоже мини ось

Ну так если ей пользуешься. Только если jetbrains JVE подгружает, то EMACS реально как маленькая полноценная ОСь со своим внутренним миром и блэкджеком)

Более того, емакс можно сразу на голом железе запускать</шутка>

Неплохая статья, но я бы хотел её несколько дополнить, начну с преимуществ неовима перед вимом.

Прежде всего, это нативная поддержка плагинов не только на вимскрипте, но и на Луа. Луа не привязана к виму. То есть разрабатывая редактор, теперь нет нужды параллельно разрабатывать ещё и свой язык программирования.

Потом, в неовиме есть нативная поддержка ЛСП. это позволяет разрабатывать редактор отдельно от серверов для поддержки языка. То есть, как было раньше: для вима один плагин для поддержки условного Го, для емакса другой, для вскода третий. Теперь же вы разрабатываете лишь лсп-сервер, который будет един для всех реакторов, поддерживающих ЛСП. Самое большое преимущество --- теперь не надо вкладывать силы в поддержку всех редакторов. Если условный лсп-сервер разрабатывается в для одного редактора, он будет пригоден и для другого.

Ну и поддержка tree-sitter, более умная подсветка синтаксиса, indention.

Теперь о статье, точнее, о некоторых плагинах:

  • NERDTree --- я бы вам советовал посмотреть на nvim-tree.lua, аналог NERDTree, но на луа;

  • deoplete.nvim --- я организовал у себя автокомплит через lsp + nvim-cmp;

К слову, я удивлён, что вы не рассказали про ale, крайне хороший плагин.

Ну я советую посмотреть на конфиги на луа.

Благодарю за добрые слова. Плагин ale я использую с вот такими настройками

" Конфиг ale + eslint
let g:ale_fixers = { 'javascript': ['eslint'] }
let g:ale_sign_error = '❌'
let g:ale_sign_warning = '⚠️'
let g:ale_fix_on_save = 1
" Запуск линтера, только при сохранении
let g:ale_lint_on_text_changed = 'never'
let g:ale_lint_on_insert_leave = 0

Хотел про него написать, но понял, что больно уж длинная получается статья.

На счет lua, а вот вы пишите на нем что-нибудь? Или используете исключительно для nvim?

На счет lua, а вот вы пишите на нем что-нибудь?

Не доводилось ничего кроме конфигов для неовима писать. Мне, как и большинству, понравилось.

Вы уж извините, но работа программиста заключается не в скорости написания кода, а придумывании правильных решений. И переключение между мышкой и клавиатурой не критично в контексте того сколько времени разработчик может обдумывать решение, наливая себе кофе или выходя в курилку. И vim здесь не даст ощутимого выигрыша во времени. А вот утверждение о том что vim по качеству можно сравнивать со штормом, как по мне несостоятельно. vim хорош для редактирования и написания. Могу предположить что данный инструмент (а это именно инструмент, для конкретных задач) подойдет девопсам, может быть тестировщикам, но никак не разработчикам. Например для работы с git мне придется выйти из vim в командную строку. В шторме я просто опускаю глаза вниз экрана [интересно это можно считать компенсацией потраченного на переключение между мышкой и клавиатурой времени?]. Ничего лучше продукции JBrains для разработки не придумано. Чисто субъективно. Можно и столяру подарить микроскоп, чтобы он им гвозди заколачивал, но зачем?

Я не настаиваю и не призываю. Используйте то что считаете нужным.

Для git есть

https://github.com/tpope/vim-fugitive

Ах да - для всего найдется плагин. Слышал я такое утверждение от тех кто делает сайты на wordpress. Правда потом я часто переделываю такие проекты уже без использования wp )))

Так напишите свой редактор без плагинов!)

А для чего вы тогда сравниваете с ide в посте? Например моя проиндексированный проект открывает за 1-2 секунды, а файлы даже большие за 0, ну и как плюс сама подскажет какие плагины мне нужны. (Не зря же 600 баксов в год подписка стоит) могу открыть 2-5 проектов на разных ЯП без перенастройки, и все равно за 0 секунд будет даже большой файл открываться. Когда я читаю посты хающие перформанс ide, ожидаю ссылочку внизу чтобы задонатить автору на железку

А вот здесь человек не поленился и провел любопытный тест

Открывать файл в несколько гигов и говорить что вим в этом кого то рвёт, ну крайне синтетический тест. Это как ламбу в бездорожье, и потом всем рассказывать что ваш дед на старой ниве обошёл спорткар за лям баксов

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

Каким же идиотом нужно быть, чтобы написать код в настолько большой файл, чтобы vim был нужен?

В данном контексте говорилось о логах, а не коде! Бывает надо посмотреть логи на серваке и лучше вима эти логи никто не откроет.

Если десятипальцеаый метод работы с клавиатурой ещё не освоен, то преимущества вы не ощутите. Автор привёл очень яркую и качественную аналогию ручной коробки и автомата. Если можно кодить максимально продуктивно, почему этого не делать?

Написание кода требует меньше всего времени разработчика. Я правда не понимаю зачем пытаться ускорять именно процесс набора.

НЛО прилетело и опубликовало эту надпись здесь
Я бы сравнивал не с ручной коробкой, а с ручной регулировкой угла опережения зажигания, как на старых машинах. Дополнительная крутилка среди органов управления прикольно выглядит, дает дополнительный контроль над важным параметром работы двигателя, повышает чувство собственной значимости водителя, является единственно возможным решением ряда технических проблем на момент своего создания, и катастрофически снижает отдачу от двигателя, если использовать её на современной машине.

Ну правда, не напасешься же плагинов. Идешечка — это, кроме навигации по классам и файлам, еще и: дебаггер, умный рефакторинг, поддержка баз данных со всеми вытекающими плюшками при написании запросов, запуск тестов, и это только то, что первым в голову приходит, а есть ещё куча вещей, которые используются раз в неделю/месяц, но экономят массу нервов и времени. Плюс у текстового режима, при всей моей ностальгии, объективно ниже плотность информации из-за единственного моноширинного шрифта везде, и нельзя раскидать окошки по разным мониторам.

Потому что отказываясь от всей мощи IDE, можно выиграть в скорости набора текста, но вот в продуктивности - сильно не факт.

Отказ от мыша действительно ускоряет работу когда "мысль растекается по клавиатуре". Надеюсь, надеюсь Вам знакомо такое чувство ?

Знакомо. А еще знакомо чувство когда находяcm в одной IDE ты держишь под рукой все процессы (контроль версий, дебаг, несколько рабочих окружений и многое другое). А индексация? Одним кликом (или комбо клавиш) можно провалиться в метод и узнать откуда растут ноги у того или иного класса. А умное автодополнение на основе уже написанного (и возможно не тобой) кода. Возможно и для этого всего тоже найдутся плагины, но это уже больше похоже на франкенштейна. Я склонен считать что каждой задаче - свой инструмент и разработка не задача для vim, если только не разрабатывается какой то простенький однофайловый скрипт. Если бы из vim можно было бы собрать полноценную IDE - не было бы спроса на PhpStorm. Или вы считаете что люди платят за подписку JB только потому что не умеют использовать vim?

люди платят за подписку JB только потому что не умеют использовать vim

Имхо, так думают большинство людей, сравнивающих vim с IDE

Немного странно, учитывая, что основные фичи vim -- многочисленные комбинации клавиш и быстрая навигация -- есть во всех современных IDE и даже редакторах вроде atom и vscode. Даже отдельные плагины для vim-style интерфейса есть

НЛО прилетело и опубликовало эту надпись здесь
При этом вим реже тормозит (с точностью до плагинов)

Мда, помнится был странный опыт, когда поставил какую-то сборку вима, а оно заметно притормаживало… Что ж, будет нужда в хаскелле, попробую


аватарку будете обновлять?

Зачем, я же на хабре специально такую поставил, яркую, чтоб в глаза бросалась

Видимо кому-то просто нет в этом необходимости, а мы тут навязываемся. ;) Если появится - сами придут к тому, что мышь режет скорость слепой десятипальцевой печати в разы. И сами найдут подходящий инструмент позволяющий это преодолеть. А потом научатся дебажить юнит тестами и долгим вдумчивым взглядом в логи.

Посоветуте, как перейти на vim тем, у кого основная раскладка клавиатуры — Dvorak.
У меня основная проблема — hjkl не под одной рукой, а если переназначать на домашний ряд — ломаются другие шорткаты.

Я так поимаю, Вы ожидали этого вопроса - зачем Вам Dvorak ?

PS: Обхожусь без всяких плагинов около 30 лет, screen + vi - все что мне требуется для кодинга. Вместо мыша использую тачпад (он всегда под пальцами) если требуется копипастить из FireFox-а или других X-овых прикладух. В остальном, screen - и Библия и пища. hjkl в vi не использую, просто не вижу смысла - клавиатуры без esc и стрелок попадаются крайне редко (про Ctrl+[ надеюсь все знают).

Ничего не менял и неудобств не испытываю. В Dvorak jk и hl довольно неплохо расположены, быстро привык. В остальном же vim не полагается на qwerty, так что переназначать - себе дороже, как мне кажется.

единственная проблема которая возникла с Dvorak в Vim это комбинация ctrl-^ , как ее нажать в dvorak я не нашел

hj kl по моему даже удобнее расположены

вверх вниз на одной руке , лево право на другой, с эти проблем никаких нет

и остальные команды так же удобно использовать если нормально в dvorak печатаешь

А скажите, пожалуйста:

  • NeoVim умеет показывать иерархию вызовов?

  • NeoVim умеет в рефакторинг хотя бы на пол шишечки как Idea? Ну там поиск дубликатов кода? Inline/Extract method? Хотя бы переименование полей с одновременным изменением getter-ов и setter-ов? Или весь рефакторинг заключается в find/replace?

  • NeoVim может мне показать, все места где поле класса пишется, но не читается?

  • У NeoVim'a есть нормальный анализатор кода, который подскажет тебе, что вот это условие всегда true, а эта переменная 10 раз пишется но нигде не читается?

  • А удобный инструмент для Debugging-a там есть?

Если хоть на один из эти вопросов ответ нет, то я пожалуй останусь на своей IDE.

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

P.S. Хотя мне почему-то кажется, что с учетом того, сколько времени я трачу именно на написание кода, те десятки часов который мне понадобятся на приемлемое освоение vim-a не окупятся приблизительно никогда.

Знать vim полезно, вникнув в него, действительно можно восхититься его удобством, как редактора кода/текста, но в том что он не заменит IDE полностью солидарен.

NeoVim умеет показывать иерархию вызовов?

NeoVim умеет в рефакторинг хотя бы на пол шишечки как Idea? Ну там поиск дубликатов кода? Inline/Extract method? Хотя бы переименование полей с одновременным изменением getter-ов и setter-ов? Или весь рефакторинг заключается в find/replace?

NeoVim может мне показать, все места где поле класса пишется, но не читается?

У NeoVim'a есть нормальный анализатор кода, который подскажет тебе, что вот это условие всегда true, а эта переменная 10 раз пишется но нигде не читается?

А удобный инструмент для Debugging-a там есть?

Nvim это просто голый редактор. В нем не может быть априори ничего из вышеперечисленного. Все эти пункты достигаются и настраиваются с помощью плагинов и линтеров. Если в плагинах что-то не устраивает или не нравится, можно накидать свое, это не сложно.

У вас будет полная свобода настроить и создать систему под себя.

Это я понимаю, я и спрашиваю, если его нафаршировать плагинами, как утку яблоками, неужели весь этот функционал можно будет получить, и оно будет работать хотя бы в половину так же хорошо как в полноценных IDE? У меня есть сильные сомнения по этому поводу.

По поводу настройки "под себя" та же Idea мало того что имеет крайне широкие возможности кастомизации плагинами, так и вообще OpenSource настраивай - не хочу.

Да, функционал получите. Работать будет отлично. Времени потратите много, чтобы со всем разобраться. Проблема исключительно в затраченных усилиях.

Ну вот я вижу вот такую статью на первых страницах гугла

chrisatmachine.com/Neovim/24-neovim-and-java/

И то, что я вижу вызывает у меня сильный скепсис по поводу, того, что Nvim сможет покрыть все возможности IDE. Если очень нравится vim мне кажется все-таки самое правильное решение это vim-plugin

У вас будет полная свобода настроить и создать систему под себя.

Раздражает. Почему такие люди останавливаются только на vim/Linux/wtf?

Давайте вы сделаете собственную ткань, жить будете в доме из собственного кирпича, который вы сделали из лично вырытой глины.

Миром правит вот это.

Называется эта штука разделение труда.

Апологеты же вима предлагают вернутся куда-то в каменный век с аргументами каждому напилить свой каменный топор с блекджеком и шлюхами.

Мое мнение что именно для java — ничего лучше Idea нет, хотя и можно подобное добавить в vim. Но для других языков, что я использую (c, erlang, ruby и go в основном) — vim (а точнее — emacs+evil) это совершеннее чем IDE от jetbrains, т.к. функционал что мне нужен — весь там есть, включая дебаггер. Для БД все же использую DataGrip -)

В Idea есть vim plugin, но и без него там много чего (если не все?) делается шорткатами.
Скорость набора текста или отвлечение на мышь, как написано в начале статьи — странное утверждение, значение имеет сколько мыслетоплива сжигается на взаимодействие с IDE. Тут то и надо выбирать что больше подходит. Для меня это emacs+evil(vim).

NeoVim умеет показывать иерархию вызовов

Типа такого?

NeoVim умеет в рефакторинг хотя бы на пол шишечки как Idea? Ну там поиск дубликатов кода? Inline/Extract method? Хотя бы переименование полей с одновременным изменением getter-ов и setter-ов? Или весь рефакторинг заключается в find/replace?

Где-то на четверть шишечки умеет, но за рефакторинг отвечает ЛСП.

NeoVim может мне показать, все места где поле класса пишется, но не читается?

Думаю, нет.

У NeoVim'a есть нормальный анализатор кода, который подскажет тебе, что вот это условие всегда true, а эта переменная 10 раз пишется но нигде не читается?

Неовим --- редактор кода. Он *не должен* иметь какой-то встроенный анализатор кода. Проблема решается при помощи ЛСП и какого-то линтера, подключаемого к неовиму путём расширения.

А удобный инструмент для Debugging-a там есть?

https://github.com/puremourning/vimspector

https://github.com/vim-vdebug/vdebug

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

Согласен, не стоит делать из вима серебряную пулю.

P.S. Хотя мне почему-то кажется, что с учетом того, сколько времени я трачу именно на написание кода, те десятки часов который мне понадобятся на приемлемое освоение vim-a не окупятся приблизительно никогда.

Вим легко учится, когда в нём есть необходимость, сам его освоил, когда надо было править огромное количество конфигов.

Рекомендую обратить внимание на lua сборку neovim, под названием LunarVim. Там все современные lua плюшки уже в комплекте (telescope, lsp...).

Я сам не люблю конфиг сборки со времён вима, но сначала посмотрев на ютубе очень понравилось и затем попробовав, втянулся.

В комплекте шикарнейший плавающий терминал по Ctrl+t, очень удобно и интуитивно.

Спасибо. Обязательно попробую. А вы пишите на lua? И можете дать ссылку на видео?

https://youtu.be/NlRxRtGpHHk

На lua не пишу, по инструкции на сайте lunarvim.org вполне разобрался как добавить привычные мне родные опции вима в конфиг на lua.

Большое спасибо! Супер.

НЛО прилетело и опубликовало эту надпись здесь

Попробуйте Nvy, Neovide. Перешел на последний на винде из-за постоянных мучений с шрифтами)

Ага, поделка на электроне, в которую впихнули обвязку из VScode и продают по подписке. Нет уж, запущу просто neovim в каком-нибудь ГУИ и буду спокоет

Асинхронная сишная библиотека называется либ-ю-ви. А в тексте написано "libvu". Исправьте пожалуйста на libuv.

libuv - Это известная библиотека которая также использовалась при создании nodejs.

Спасибо.

Vim часто неверно воспринимают как альтернативу IDE. Это ложная дихотомия. Vim - это прежде всего концепция нескольких режимов (навигации, выделения, редактирования) + максимальное задействование буквенной части клавиатуры без необходимости корёжить пальцы с Ctrl-Shift-Alt-... и подобными. Концепция эта может находить себя в различных реализациях: ed, vi, vim, neovim или плагин для IDE/браузера/текстового редактора.

Примеры:

  • удаление слова с Ctrl-Del против dw (cw с переходом в режим редактирования)

  • выделение текста мышкой против v/V- переход в режим посимвольного/построчного выделения + навигация с hjkl

  • соединение нескольких строк в одну вертикальным выделением мышью и Backspace против выделения с V и Shift-j

  • замена текста внутри скобок выделением мышью или Ctrl-Shift-←→ и Del против ci(

  • отмена последнего действия с Ctrl-z против u

  • повторение последнего действия с текущего положения курсора с помощью . даже сравнить не с чем

Другое дело, что и документация vim оставляет желать много лучшего (привет vimtutor), уделяя внимание таким вещам как d3l (удалить 3 символа вправо от текущей позиции), которыми последний раз пользовались операторы каких-нибудь древних терминалов, когда от нажатия на клавишу до выполнения команды могло пройти пару десятков секунд.

отмена последнего действия с Ctrl-z против u
Esc u. Да и вообще всё время надо переключаться между режимами. А ещё большие буквы-команды — это, внезапно, не одна, а две клавиши, с корёженьем пальцев (V == Shift+v).
Надеюсь, всем известна шутка, что Vim любят барабанщики, а Emacs — пианисты?

Согласен, Esc неудобен. Многие переназначают на Caps Lock. Я в итоге обошелся 60% клавиатурой где Esc сразу над Tab.

С другой стороны, согласитесь, Shift все же поближе Ctrl и Alt.

Ctrl на CapsLock повесить — это первое что я делаю. И не один я.
Согласен, Esc неудобен. Многие переназначают на Caps Lock.

На что только не переназначают, один из популярных вариантов, которым пользуюсь – kj. У капса полно полезных применений: сейчас я переключаю им раскладку, но подумываю отказаться в пользу дополнительного клавиатурного слоя типа extend.

До клавиши ESC тянуться достаточно далеко и не очень эргономично

Пытался пользоваться Emacs, NeoVim, Texadept даже, но остался на VS Code, точнее, Codium. Там есть много проблем, но они решаются гораздо легче, чем в емаксах и вимах.

Главное — это эргономика клавиатуры. Никакие конфиги не повысят Вашу эффективность, если Вы, во-первых, не осилите слепую десятипальцевую, во-вторых, не задумаетесь о том, что современные 105-клавишные клавиатуры в принципе не эргономичны, в-третьих, не будете использовать что-то кроме QWERTY.

Но тут оказывается, что на каком-нибудь Dvorak уже нет тех самых родных HJKL. Надо либо привыкать к беготне по всей клавиатуре, либо менять бинды, либо... использовать то, что уже давно было изобретено? Стрелочки? Клавиатура же эргономичная, значит, по определению должна быть удобна и для навигации, и для ввода текста. Навигация по файлу, работа с интерфейсом редактора и непосредственный ввод текста — все это разные задачи.

HJKL в Vim просто потому, что vi разрабатывался на терминале ADM-3A. Если есть вообще какие-то исследования, объясняющие, что расположение клавиш навигации в одну линию - удобно и естественно, буду рад изучить. Но мне проще всего пользоваться стрелками, расположенными крестом — не надо тратить время на переобучение, их расположение интуитивно понятно.

На баше проскакивало: "Единственный интуитивно-понятный интерфейс это сиська, всему остальному надо учиться".

Ок) а вот я например в джетбрейновских ide могу добавить базу данных и при написании запросов у меня будет автокомплит для названий таблиц и колонок. И если база достигает размера более 150 таблиц с очень странным неймингом колонок, то эта фича очень помогает. Это один пункт.

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

neovim сможет такое? Автокомплит там есть и насколько хорош?

Ща набегут и установят плагины вам в vim. Vim это конструктор (почитайте коменты), где каждый может написать свой плагин, главное чтобы было желание (как vs code только для извраизбранных). Для автокомплита есть language-server стандартизированный протокол который позволяет добавить эту фичу в любую ide.

Для этого есть отдельная утилита, pgcli например. Странная мода тащить весь функционал в редактор, он становится похож на ОС по кол-ву функционала.

Искренне не понимаю vi-адептов. Для домашнего пользования для текста и конфигов освоил прекрасный micro, для остального есть или nano, или VS Code и по нарастающей.

НЛО прилетело и опубликовало эту надпись здесь

В vim свой синтаксис регулярных выражений. 

Да, но его не сложно освоить.

нет встроенного мультикурсора

Есть другой плагин для этого. Но мне привычнее просто это сделать командой.

В vim нет команды delete. Весь удаленный вами текст помещается в буфер обмена

Вы можете всегда посмотреть в каком именно регистре лежит нужный вам текст с SO

:registers

По моему, наоборот очень удобно, что все что поудалял находится в регистрах, всегда под рукой.

В vim не все завязано на комбинации клавиш. Иногда приходится поработать с командами, которые бывают системные и пользовательские, соответственно

Всегда можно все переопределить.

vim - это голая коробка. Чтобы наполнить ее полезным содержимым у вас уйдут недели

Согласен. Мне понравилось видео, которое автор указал в статье с заголовком "ответ всегда число". Каждый сам для себя может получить эти числа, которые нужны на освоение vim или заниматься другими делами.

Сэкономит ли vim время при разработке? Нет, нисколько не сэкономит, потому что разработка это прежде всего навигация, рефакторинг и отладка, а не набор текста.

Набор нового текста везде одинаков. Vim силен прежде всего навигацией и редактированием уже существующего текста.

Хитрое удаление всего текста между скобочек смотрится, конечно, очень красиво и поднимает настроение, но требуется довольно редко и времени потраченного на исправление ошибок, которых бы вы не допустили, если бы сразу пользовались IDE вам не компенсирует.

Как я писал выше, vim, хоть и является отдельным приложением, но с равным успехом может использоваться и в виде плагина для IDE.

/* никому не в обиду, только личные впечатления
я не программист, с ide не сравниваю в принципе
в чем-то могу быть не прав в силу недостаточного погружения, заранее прошу прощения */

Лично для меня главный стимул опробовать vim/emacs - это проблема на клавиатурах современных ноутбуков на ощупь найти стрелки и использовать комбинации с home/end.

Специфичная навигация - не такая большая проблема, привыкнуть и проникнуться можно довольно быстро. Проблема - документация в стиле "кому надо, тот поймет", и при таком подходе вопрос "а точно оно мне надо?" возникает довольно скоро.

В тех же туториалах дают только базовую навигацию и ни слова про настройку. Вы, кстати, тоже решили опустить этот момент, просто перепрыгнув к перечислению плагинов. Ситуация, когда впечатленный статьей новичок попытается поставить lua-плагин на версию с vimscript - это фантастика, правда? Да, найти в интернете можно все, но: 1) нужно точно знать, что именно искать 2) интернет завален мусорными статьями.

Честно пытался полюбить emacs, но пока не зашло. Дефолтные настройки удручают. Коплю силы разбираться. Emacs изначально привлек командой execute-extended-command (M-x), что я воспринимаю как аналог command palette, полюбившийся в vscode как полноценная альтернатива хоткеям и меню.

Тот же VSCode вполне функционален из коробки, установка плагинов интуитивно понятна и без гугла.

Также я пытался в ютубе найти ролики с реальным использованием vim/emacs на живых примерах, чтобы проникнутся удобными ежедневными приемами, но то, что нашел, выглядит скорее "синтетическими" примерами.

Тем не менее, за статью спасибо.

P.S. Забавно, что в каждой статье про gnu/vim/emacs обязательно есть раздел с историей возникновения. Стабильность =)

про емакс — попробуйте стандартный путь — Spacemacs -> Doom emacs -> свой конфиг на vanilla emacs. Может, все устроит уже на Doom и качество жизни возрастет :)
Ну и не лишним определить зачем вам емакс — обычно его ставят из-за org mode/ org-roam, а там уже и остальное подтягивается.

Забавно, очень давно пользуюсь emacs. Точно больше 10 лет. Но org mode так и не заценил. Что в нем такого прекрасного?

Я вместе с org-roam использую чтобы вести свою базу знаний, а так же текущий список дел просто в org. Org'овский трек времени в тасках (там как раз как мне нужен, до этого использовал timelyapp.com) С тех пор как начал еще и как IDE использовать (недавно), таски интегрируются с кодом, мне так удобнее и нагляднее. Я правда не уверен что оргом правильно пользуюсь, и точно много фич даже не знаю, просто для меня работает и я пока так и оставил.
Что сделать в deoplete, чтобы после автокомплита имени функции он начинал автокомплитить ее аргументы? Пользовался ncm2 для Питона, он всё делает (показывает список функций, потом список аргументов для выбранной функции), но, похоже, однопоточный и при этом дико тормозной — на какой-нибудь библиотеке с большим количеством функций первого уровня, вроде OpenCV, каждый раз фризит neovim секунд на десять, невозможно работать. Deoplete, похоже, не страдает этой проблемой, но че-то не могу найти, где у него подсказки по аргументам, а без них теряется весь смысл автокомплита — все равно ж в документацию лезть.

На мой взгляд ключевой момент здесь - сколько человек пишет кода за рабочий день. Одно дело, если 5 тысяч строк, и другое дело - если 100 строк. В первом случае ускорение набора кода повысит эффективность работы, во втором случае - толку будет ноль.

Хороший комментарий. Оперировать числами, а не эмоциями "нравится / не нравится". Еще можно учитывать перспективу.

Не совсем так, вим в 1 очередь не для написания кода. В среднем, именно на написание, разработчик тратит в день не более 15 процентов времени. Остальное время - чтение и рефакторинг, в этом случае как раз normal mode + easy motion ускоряют навигацию

Это уже вопрос квалификации, если речь идет про разработчика. Можно сначала подумать, а потом написать 10 строк, а можно бездумно переписывать одно и то же место в поисках правильного решения по пол-дня. Во втором случае vim даст прибавку в скорости, но можно ли считать это повышением производительности? Врядли.

Vim - это не про ускорение набора текста, это про удобство редактирования и сокращение количества отвлекающих факторов.

А про какие факторы речь?

НЛО прилетело и опубликовало эту надпись здесь

Это пользовательский интерфейс из альтернативной реальности, как бы выглядело автоматизированное рабочее место программиста, если бы в 90х годах развалился бы не Советский Союз, а "загнивающий Запад".

Где-то 2 года сидел на виме (из них месяца 3-4 на неовиме). Неовим + lua это прям новый шаг. Однако, если попробовать какой-нибудь емакс..понимаешь что в виме слишком много чего не хватает (и даже самого вима..что парадоксально, т.к. в evil его реализация более удобна и реализует многие очевидные вещи из коробки). Как минимум, тем кто сейчас планирует переходить с проприетарных редакторов, рекомендую попробовать оба варианта

Emma Roberts на скрине из сериала никак не соответствует заголовку статьи. Уж простите, что «додолбался».

Бесконечно можно смотреть на три вещи - огонь, воду, и холивары про Vim :D

на счет воды и огня не понятно, но вот в холиварах часто проскакивают полезные ссылки и названия. Так что пусть будут :)

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

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

Автор и тех, для кого женщина - это жалкое подобие левой руки)

А можно вызвать "пояснительную бригаду"? Ничего не понял )

Вероятнее всего опечатка. Вместо "и" нужен предлог "из". Или вам непонятна олигория?

«Олигория» — это что-то из вимерского сленга?

Вы бы мои комментарии почитали, прежде чем ярлыки вешать

Я вам тонко намекаю на ошибки в слове, а вы сразу ярлыконавешивателем обзываете :)

Намек, я понял, но к сожалению уже нет возможности исправить.

Отличная статья, как раз для начала, спасибо!

Не обязательно делать из vim IDE. Можно пользовать vim для мелких правок в одиночные файлы, а также для работы на удалённом сервере. Для больших же проектов, на мой взгляд, всё же лучше использовать IDE, где интеграция различных компонентом более полная. К тому же это не повод отказывать от преимуществ vim — к счастью существуют плагины для интеграции vim в IDE. Например, для Pycharm(и всех IDE от Jetbrains) есть замечательный ideavim. Но мне мало vim в редакторе, поэтому у меня и в браузере спец плагин и window manager i3wm (где я тоже настроил похожие клавиши для навигации). По итогу уже несколько лет даже не подключаю мышь (есть конечно touchpad, но я его я использую поминимуму — гораздо быстрее использовать различные горячие клавиши и комбинации из vim)

Потратить n часов на изучение ситанксиса
Потратить m часов на установку плагинов

Получить 30% от функциональности ide.
Вместо того что бы ткнуть мышкой и открыть класс в дебагере и провалиться куда нить в словарь\мапу, пытаться ввести это вручную)

Про подключение к базам, или внешним сервисам я даже не говорю

Получить 30% от функциональности ide.

Откуда это число?

Если честно взято из головы.
По тому, что вы описали, это примерно 30% того, что используется мной при разработке, и идет из коробки. Про сложные кейсы. я даже не говорю.

Я ничего не описывал.

А в целом: "Damnant, quod non intellegunt. - Осуждают то, чего не понимают. (Квинтилиан)

Да виноват, перепутал вас с автором.

То что описал автор, это такие базовые вещи). При этом никто не хочет написать статью, как например интегрировать бд, линтер, или нормальный отладчик)) или если мы говорим про фулстэк, банально открыть картинку без переключения окон

А это базовый фугкционал))

У меня в емаксе все интегрировано и бд и линтер и тесты запускаю. Картинки, пдф, орг файлы — все открываю в емаксе. ЧЯДНТ?

Сколько дней заняла настройка? И обучение?

Не считал, а какая разница?

Время ограничено)

Я инвестировал свое время в вим/емакс лет 7 назад. Мне нравится все настроить под себя. Не вижу в этом никаких проблем

Вы правы. Все эти вещи в статье пропущены. Линтеры надо устанавливать и настраивать. И lsp надо ставить. И все вышеперечисленное вами в nvim нуждается в настройке и установке. Это реально требует знаний. И боли. Но все что вы хотите, вы получите и даже с лихвой. Стоит ли оно того или нет, решать надо каждому своей головой.

Проблема в том, что это обычно идёт из коробки.

Да, совершенно верно. Представляете сколько мороки. Ужас. И это маленькая часть айсберга.

Лучше сразу же закрыть эту статью и бежать от этого сумасшествия подальше :)

Вместо того что бы ткнуть мышкой и открыть класс в дебагере и провалиться куда нить в словарь\мапу, пытаться ввести это вручную)

После обучения слепому набору, ваши советы выглядят очень смешно. Слава богу, все больше действий можно сделать без богомерзкой мышки. Для тех 0.5% случаев, когда нельзя что-то сделать с помощью хоткеев есть тач

А почему мышка "богомерзкая"?

Есть вещи которые удобнее совершать хоткеями, есть действия которые удобней делать мышкой.

Не раз встречаю людей которые плюются на мышку, но никак не могу понять чем же она так не угодила?

Тем, что надо ее искать, отрывая руки от клавиатуры. Это сбивает с мыслепотока. А еще много программ на мышку ориентированы, а я чувствую себя дико медленным, когда надо ее использовать. Как пересесть с феррари на копейку. С емаксом+evil-mode я могу сконцентрироваться на коде, фактически материализуя свои мысли. Так я максимально продуктивен. Мышка — это всегда переключение контекста.

Я видимо тупой и хреновый программист))

Даже если я буду печатать одним пальцем, скорость разработки у меня не сильно изменится))

А вот возможность иметь несколько окон в рамках одного проекта даст жффект гораздо выше))

Я отлаживался через gdb на консоли)) и никогда не будет это быстрее чем мышкой в ide.

Хотя 10 пальцевым владею

А вот возможность иметь несколько окон в рамках одного проекта даст жффект гораздо выше))

Что вам мешает имет ьнесколько окон в вим/емакс?


Я отлаживался через gdb на консоли)) и никогда не будет это быстрее чем мышкой в ide.

Я не помню, когда я вообще что-то отлаживал в gdb/pdb и тд. Зачем мне это делать? Я пишу тесты для логики перед реализацией фичи. Потом запускаю тест и смотрю, что мне нужно реализовать. Иногда 2-3 итерации проходит, пока тесты не позеленеют.

Я тоже не очень люблю отладчики, но определённый класс багов в сколько-нибудь большом проекте без них практически невозможно отловить.
Раньше даже запускал CLion специально чтобы поотлаживать, но потом осознал, что это полная дичь и освоил-таки CLI gdb :)

Так я не на плюсах, я на го/раст и питоне работаю, поэтому отладчиком ну очень редко пользуюсь

Тем, что надо ее искать, отрывая руки от клавиатуры. Это сбивает с мыслепотока.

А говорят - "Умные мысли не рвутся". Если такое простое действие способно вас сбить с мысли, то может быть стоит задуматься о смене профессии?

Если такое простое действие способно вас сбить с мысли, то может быть стоит задуматься о смене профессии?

Может перед тем, как мне советовать что-то, стоит попробовать это? Не пробовал, но осуждаю?

Так я и секс с мужчинами не пробовал. Полагаете это тоже надо попробовать чтобы понимать что это не мое?

Обязательно попробуйте, может тогда перестанете раздавать всем свои "умные" советы

Извиняюсь, а вы и на гей-форумы регулярно заходите и пишете там, что они неправильно всё делают, от такого секса никакого удовольствия нет?

@Dreamka, вам должно понравится, судя по вашему поведению.

надо ее искать
Не надо, она точно там же, где вы её оставили.
А еще много программ на мышку ориентированы
В XXI-то веке? Ну да, конечно.
я чувствую себя дико медленным, когда надо ее использовать
В старые Windows специально включали всякие сапёры-косынки, чтоб пользователи привыкли эту странную стрелочку по экрану двигать, да объекты перетаскивать. Может, вам тоже стоит попробовать? Компьютерные игры правда очень хорошо развивают мышемоторные навыки.
С емаксом+evil-mode я могу сконцентрироваться на коде, фактически материализуя свои мысли
Если вам нужно исключительно набирать и удалять символы кода — конечно.
В старые Windows специально включали всякие сапёры-косынки, чтоб пользователи привыкли эту странную стрелочку по экрану двигать, да объекты перетаскивать. Может, вам тоже стоит попробовать? Компьютерные игры правда очень хорошо развивают мышемоторные навыки.

Я тут обсуждаю исключительно рабочий процесс. В игры я мышкой играю, "мышемоторные" навыки у меня может и получше ваших.


Не надо, она точно там же, где вы её оставили.

В слепую, не отрывая взгляд от экрана ее нужно всегда искать.

В слепую, не отрывая взгляд от экрана ее нужно всегда искать.

Почему? У меня перемещение руки на мышь, стрелки и End происходит рефлексивно, без отвлечения внимания.

P.S. Два года работал под Emacs, потом какое-то время под Vim, в итоге сегодня разработку предпочитаю делать в средах JetBrains, отдельные задачи редактирования под Vim.

Почему? У меня перемещение руки на мышь, стрелки и End происходит рефлексивно, без отвлечения внимания.

Потому что у меня 2 ладони постоянно на клавиатуре, а не на мышке. Если мышь не использовать, то и рефлексов для ее поиска не будет. Когда надо использовать мышь, я ее взглядом нахожу и не отпускаю потом, но использую я ее только в играх

Потому что у меня 2 ладони постоянно на клавиатуре, а не на мышке.

Так и у меня по умолчанию обе руки на клавиатуре, а не на мышке.

Если мышь не использовать, то и рефлексов для ее поиска не будет. Когда надо использовать мышь, я ее взглядом нахожу и не отпускаю потом, но использую я ее только в играх

Мне непонятно, откуда берётся поиск. Вы говорите "если мышь не использовать рефлексов не будет" и тут же "когда надо использовать нахожу". Т.е., мышь используется. Зачем её искать взглядом? Вот я сижу перед монитором, руки на клавиатуре, мышь справа около клавиатуры. Периферийным зрением мне видно и клавиатуру, и мышь - без необходимости что-то искать взглядом. Но специально сейчас проверил: закрыл глаза и поперемещал ладонь между клавиатурой и мышью - работает. У Вас, наверное, какая-то сильно другая конфигурация размещения клавиатуры и мыши, раз последнюю приходится искать.

Мне непонятно, откуда берётся поиск. Вы говорите "если мышь не использовать рефлексов не будет" и тут же "когда надо использовать нахожу". Т.е., мышь используется. Зачем её искать взглядом? Вот я сижу перед монитором, руки на клавиатуре, мышь справа около клавиатуры. Периферийным зрением мне видно и клавиатуру, и мышь — без необходимости что-то искать взглядом.

У меня мышь находится в самом углу стола, потому что я ее использую только для игр. Вообще чаще всего я работаю на диване или пуфике с ноутом на коленках, поэтому мыши рядом нету. совсем.

Вообще чаще всего я работаю на диване или пуфике с ноутом на коленках, поэтому мыши рядом нету. совсем.

Тогда понятно. Спасибо.

Как раз видео нашел в тему
НЛО прилетело и опубликовало эту надпись здесь

Гммм а зачем нужен vim если есть emacs?...

Я вот считаю что моноколесо лучше чем велосипед, мотоцикл и даже автомобиль. Научиться очень просто, надо только найти тренера (их 2 в СНГ) или просто зайти на форум моноколесоводов, там все детально написано. Велосипед не такой маневренный, я вот умею на месте разворачиваться. Просто не у всех получается сразу, надо просто потренироваться некоторое время, чтобы мышечная память появилась. Мотоцикл быстрее, но очень тяжёлый и тормозит когда пытаешься заехать в лифт. Я добавил моторчик от газонокосилки с цепью и солнечную батарею для зарядки телефона. На одном колесе могу намного быстрее передвигаться в пробках чем все эти автомобили, а расход резины в 4 раза меньше. Только обидно что комьюнити маленький, реально же лучшее средство передвижения из созданных.

(Тут очень много сарказма и гиперболизации, заранее прошу прощения)

Только обидно что комьюнити маленький, реально же лучшее средство передвижения из созданных.

А вот тут вы серьезно промахнулись, коммюнити у вима или емакса просто гигантское, по сравнению с любой иде

На память приходят такие фильмы:

  • Самый быстрый Indian

  • Ford против Ferrari

  • Гонка (2013)

Во всех них, гонщик = механик. Сам в своей машине разбирается и ее собирает и подстраивает. Купили бы готовую машину, да и все, вот же глупые люди.

Люди, которые изучают vi*, хотят знать свой инструмент, с тем c чем им приходится работать. И не только знать, но и пытаются его улучшить, подстроить под себя, почти как гонщик и автомеханик в одном лице. Такая аналогия.

Ну а люди, которые юзают ide живут по принципу, ну что дали, то я и ем. И ладно бы просто ели, так нет же ведь приходят и начинают других учить жизни. Это просто удивительно.

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

Ники Лауда был механиком и в реальной жизни и в кино. Умер совсем недавно. Остальные фильмы тоже.

Любой профессиональный гонщик, может разобрать машину до винтика и собрать.

И профи в vi*, тоже понимает, что у него под "капотом".

Не хотите разбираться, хотите просто ездить, да, пожалуйста. Другим только не мешайте.

Ну а люди, которые юзают ide живут по принципу, ну что дали, то я и ем.

Не хотите разбираться, хотите просто ездить, да, пожалуйста.

Вот Вы, наверное, не живёте по принципу "что дали, то и ем", а досконально разбираетесь в кишках всего, чем пользуетесь, собирая и затачивая все инструменты под себя. Т.е., и операционную систему компилируете из исходников, предварительно изучив их и отредактировав параметры конкретно под своё железо и свои предпочтения. Можно поинтересоваться, какую конкретно операционную систему Вы используете?

Другим только не мешайте.

Кто мешает-то?

Делаю то, что считаю нужным. Других жизни не учу. Знаю как работает Linux & vim. Мне лично нравится разбираться в своем рабочем инструменте. Не вижу в этом ничего плохого.

А мешают люди с дилетантскими комментариями, которые сами в предмете не разбираются, но что-то пытаются кому-то доказать.

Других жизни не учу.

Ну, это как посмотреть... Высказывания в духе "молчите, неразборчивые дилетанты" намекают на обратное. :)

Мне лично нравится разбираться в своем рабочем инструменте. Не вижу в этом ничего плохого.

Тоже не вижу в этом ничего плохого. Но давайте будем честными: если "люди, которые юзают ide живут по принципу, ну что дали, то я и ем", то и люди, которые просто юзают ОС (не компилируя из внимательно изучаемых исходников) тоже живут по принципу "что дали, то и ем". Что люди, которые используют компьютер, не пытаясь досконально разобраться в устройстве его компонент, не осваивая способы пайки на печатных платах, не осваивая схемотехнику и физические принципы работы транзисторов и т.д. - тоже живут по принципу "что дали, то и ем".

А мешают люди с дилетантскими комментариями, которые сами в предмете не разбираются, но что-то пытаются кому-то доказать.

Если Вы спокойно работаете себе под (или разбираетесь в) собственноручно собранными системой линукс (LFS, да?) и редактором Vim, и, внезапно, вопреки Вашему желанию, закрывая Vim открывается страница Хабра на комментарии с критикой использования Vim, то да, мешают.

Но если Вы сами по своей воле заходите в холиварное обсуждение и начинаете возмущаться мнениями, отличающимися от Вашего, то это не публикация этих мнений мешает Вам разбираться в своих инструментах или работать с ними, а что-то совсем-совсем другое. :)

Но если Вы сами по своей воле заходите в холиварное обсуждение и начинаете возмущаться мнениями, отличающимися от Вашего, то это не публикация этих мнений мешает Вам разбираться в своих инструментах или работать с ними, а что-то совсем-совсем другое. :)

Вот я зашёл сюда в надежде почитать об интересных плагинах и о настройке Neovim. Если бы тут была адекватная критика vi*, тоже было бы интересно.
Но нет, большинство комментариев здесь — просто бесполезные высказывания в духе «не пробовал, но осуждаю». От хабра хотелось бы чего-то большего ожидать.

Ну, это как посмотреть... Высказывания в духе "молчите, неразборчивые дилетанты" намекают на обратное. :)

Вы переиначили мои слова. Но вообще, давайте холодно подойдем к этому. Большинство негативных комментариев строятся по принципу: «Не читал, но осуждаю!». Попробовать vim - сравнивают даже с однополым сексом, в комментах выше. Разве это не дилетантские комментарии? Как их можно еще назвать? Это вообще что должно быть у человека в голове?

 Но давайте будем честными: если "люди, которые юзают ide живут по принципу, ну что дали, то я и ем", то и люди, которые просто юзают ОС (не компилируя из внимательно изучаемых исходников) 

Нормально до тех пор, пока они не придут на гитхаб или еще куда-нибудь и не начнут высказывать свое "мнение". Я же не хожу на форум эндокринологов и не пытаюсь навязать им свое мнение о гормонах. Данный хаб называется "vim". Имеет смысл разбираться в предмете.

Но если Вы сами по своей воле заходите в холиварное обсуждение и начинаете возмущаться мнениями, отличающимися от Вашего, то это не

Я не испытываю по этому поводу никаких эмоций. Написал то что думал. И написал для людей, которые возможно хотят попробовать vim.

В комментариях приводят и объективную критику, например:
  • для создания из vim (который в чистом виде — блокнот) аналога готовой IDE надо или искать готовые сборки, или самому заниматься конфигописательством, понаставив не один (а может и не один десяток) плагинов и потратив не один час (а то не один день). В ответ обычно слышно что-то вроде «Ну зато один раз помучаешься 15 часов на освоение vim + 40 часов на настройку, зато потом будешь не отрывая рук от клавиатуры удалять три слова вправо от курсора».
  • vim-фанаты настойчиво не хотят замечать, что vim-навыки слабо распространяются на не-vim (особенно если пользоваться Windows) — тестовые процессоры (типа MS Word), табличные, фото-, видео- и аудио-редакторы, почтовые клиенты, даже с браузерами не всё так однозначно.
  • vim-фанаты постоянно в плюсы приводят «можно не отрывая рук от клавиатуры делать всё», незаметно умалчивая, что значительную часть времени приходится думать (если вы, конечно, не просто перепечатываете текст). Если вы думаете, не отрывая рук от клавиатуры — вопросов нет.
  • (моё любимое) vim-фанаты постоянно говорят, что vim-комбинации позволяют суммарно нажимать меньше клавиш, но при этом забывают про бесконечные переключения режима, про то, что большие буквы требуют нажатия двух клавиш, что клавиши привязаны не на все действия (ряд из них можно активировать только вводом команд) и так далее. А в пример обычно приводят какие-то странные действия, например «удалить 4 строки вниз от курсора».

Но увы, vim-фанаты обычно не менее настойчивы и глухи к аргументам, чем vim-ненавистники…

Вы комментируете под темой, где пользователь вима делится своей конфигурацией, настройками и лайфхаками с другими пользователями вима и рассказываете тут про фанатизм? Может стоит сходить к психологу, а то у вас явно какая-то мания преследования. Вам что с помощью вима виндоуз взломали? Почему такая ненависть к редактору текста?

У меня нет никакой ненависти ни к vim, ни к его простым пользователям. Если вам нравится vim или какой-нибудь другой инструмент тридцатилетней давности — пользуйтесь им на здоровье. Если нравится что-то другое — пользуйтесь другим, пожалуйста.
Но тем не менее:
Про «делится конфигурацей и лайфхаками» — а вы не задумывались, зачем вообще есть такие статьи? А просто потому что vim сложный во всём.
Почему под статьями типа «15 плагинов для разработки на languagename в VS Code» много комментариев вида «опять смесь общеизвестных и никому не нужных плагинов», а под vim-статьями такого нет? Потому что для настройки vim нужно читать доки. Конкретный пример: сравните объём инструкций по установке настройке rust-analyzer для работы с VS Code и с vim (который из коробки даже не понимает, как работать с lsp) — ссылка. К слову о сообществах и фичах: всё могучее сообщество vim за все эти годы не придумало lsp, его сделала Microsoft именно для VS Code.
Почему под каждой vim-статьёй начинается срач «vim против мыши»? Потому что подавляющее большинство vim-фанатов прямо заявляют, что vim быстрее мыши, но не могут привести адекватных примеров использования, для которых нет сравнимых по скорости аналогов. Единственное, что удалось придумать коллективными усилиями — работу с гигантскими файлами, но это не очень похоже на разработку ПО, скорее на администрирование или мониторинг.
Почему на мой предыдущий комментарий никто (пока) не дал внятных ответных аргументов? Потому что
vim-фанаты обычно не менее настойчивы и глухи к аргументам, чем vim-ненавистники
.

Почему на мой предыдущий комментарий никто (пока) не дал внятных ответных аргументов? 

Да, просто лень отвечать на всю ту чушь, что вы написали. Вам никто и ничего не должен.

лень отвечать
Подозреваю, что сложно найти опровержение, когда прям на этой странице есть слова, подтверждающие мои:
  • про время/сложность настройки: сама статья (хотя бы её размер) +, например, этот комментарий.
  • про не-vim: ну вот, например, про браузер. Обратите внимание, что на странице плагина в ответном комментарии, автор vim-навигации для Chrome использует мышь во время настройки. Какая досада.
  • про печать не отрывая рук: буквально половина комментариев от vim-фанатов на этой странице.


P.S. быть фанатом и фанатиком — разные вещи.
Ну вообще, хоть вим и не использую (для мобильной разработки не выйдет нормально, писал бы бекенды/веб фронтенды — может подумал бы об использовании), но с трудом уже представляю как можно жить без ideavim плагина. Ибо это реально очень удобно.
Просто однажды из интереса посидел часик в vimtutor и на следующий день на рабочем компе поставил плагин для idea. С тех пор мне уже трудно представить свою работу без него. Иногда по необходимости открываю другие IDE которые у меня не настроены и ideavim не установлен (ибо ради того чтобы запустить раз в пару месяцев настраивать лениво) и прямо боль испытываю.
Хотя нет, вру, использую вим, но он у меня вообще чистый без всяких плагинов, когда какие то конфиги поправить надо.
И да, это реально удобнее чем к мыши тянуться. Я и до того как плагин начал использовать навигацию хоткеями и стрелками осуществлял (shift/ctrl+arrow), мышь использовал по минимуму ибо раздражало постоянно руку с клавы на мышь и обратно перемещать, но с вим плагином все стало куда удобнее.
А просто потому что vim сложный во всём.

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

То есть vim не сложный? И даже не надо никаких vimtutor'ов запускать, чтоб научиться делать элементарные вещи? Неужто автор статьи нам наврал?!
вы не смогли осилить вим
Я осилил ровно настолько, насколько считаю нужным — и да, мне для него достаточно лишь уметь внести базовые правки, сохранить и выйти (ну или выйти без сохранения). Я честно пробовал им попользоваться, но, видимо, я слишком молод и UI-приклеен для этого. И да, я пользуюсь горячими клавишами в своей VS Code.
его никто не должен использовать
Я этого не говорил нигде. Если найдёте — приложите ссылку на комментарий, пожалуйста.
Дальнейший психоанализ мне не интересен
Ну вот, думал, что говорю с айтишником, а мне психоаналитика подсунули :(

 Я честно пробовал им попользоваться, но, видимо, я слишком молод и UI-приклеен для этого. И да, я пользуюсь горячими клавишами в своей VS Code.

Спасибо за информацию. Держите нас в курсе.

НЛО прилетело и опубликовало эту надпись здесь

Хорошая ссылочка.

А вы пробовали VS Code + это расширение? Судя по картинкам и их описаниям — это примерно то, что вы ищете, да ещё и официальное.
НЛО прилетело и опубликовало эту надпись здесь

@0xd34df00d,хотел спросить на счет ssh. Я всю жизнь юзаю ssh, подключаюсь к удаленной машине, ставлю там tmux + vim и работаю (раньше был screen). Но иногда бывает машина уже очень старая, современный nvim со всеми пирогами туда не поставить и приходится довольствоваться старьем. Попадали в такие ситуации? Использовали локальный vim?

НЛО прилетело и опубликовало эту надпись здесь

Спасибо. Вот и я тоже ничего лучшего для таких ситуаций не придумал.

Попадали в такие ситуации? Использовали локальный vim?

Может конечно это не будет актуальный совет, но в емаксе есть tramp-mode, это ssh на удаленный хост не выходя с емакса, тмукс не нужен и даже автокомплит работает, хотя и не особо шустро.

2ой пункт для меня главный, работаю через tmux + tmuxp и по команде (tmuxp load .) загружается файл конфигураций который открывает сессию tmux с загруженными remote connections, соединениями к БД и так далее. Для всего этого нужен редактор который будет работать в треминале, а выбор тут не велик.

а они остались еще живы?)

Вставлю свои пять копеек:

  • удобно переназначить CTRL на CAPS-Lock;

  • Переназначить переключение рус-англ. раскладки на Ctrl-A в режиме вставки;

  • Выход из режима вставки по дефолту на <Ctrl-[> Быстро привыкаешь, двумя мизинцами.

Для всех кто думает зачем это надо, ответ банальный. Это удобно. Это более отзывчиво. Нет ничего лишнего. Можно работать с кодом по ssh. Например с того же смартфона если нужно.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации