Pull to refresh

Comments 72

Я на линуксе и дома и на работе уже более 20 лет, но я всегда ною и плачу, если nano не установлен на серевере и приходится перестраиваться «под vi», когда надо поправить пару файлов. Мне лично сложно запомнить все эти комбинации клавиш. Даже в intellij, сколько лет пользуюсь, до сих пор путаюсь. Проще в менюшки покликать. А некоторые прямо как пианисты. Не то, что бы завидую, скорее поражаюсь.

Кстати да, недавно надо было на unix сервере поправить файл и попытки перемещаться стрелками в vi все отображение ломало. Строка пропадала. Совсем забыл про «hjkl».
на самом деле єто как обучение слепому набору, нужно просто раз сесть и научиться, после чего nano становиться «неудобным» ))
Опять же это надо постоянно пользоваться vi, иначе навык быстро уйдет. Одно время я программировал в Emacs на Си, сейчас уже не смогу даже скопировать строку наверное. Придется заново учиться ходить. Но честно говоря даже не хочу.

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


Прямо таки везде?
для распространенных языков в актуальных иде везде,
к тому-же далеко не для всех языков вообще применимо понимание
Линейка продуктов JetBrains вполне актуальная. Разве они используют LSP?

А я плачу, если по умолчанию выпадает nano. Как в Доебане.

Больше 10 лет использую vim, но к hjkl так и не привык (да и не вижу смысла, клавиатуры без стрелок — давно история). А vi удобен, если не просто «посмотреть файл» как Nano, а работать в нём. Удалить строку до конца строки, сделать поиск с заменой, перейти на строку и известным номером или по известной маске, переместить блок текста в несколько нажатий… Возможно, nano так умеет, но нажатий надо сильно больше, и помнить в итоге приходится ещё больше чем с vim. Хотя конечно это дело вкуса, кому-то только emacs вот нравится, а кому-то — редактор в mc…
Одно время мне нужно было периодически работать с такими машинами. Это были коммутаторы и софтсвичи, ничего лишнего на них не стояло и ставить было нельзя. Более того, на некоторых был не линукс а другие юникс-подобные системы реального времени типа VxWorks. Там не то что nano не было, не было даже cat вместо которого нужно было использовать more.
И редактировать файлы можно было только через Vi.
У меня всегда был с собой небольшой блокнотик, в котором основные команды Vi были записаны. Так что худо-бедно можно было отредактировать, тем более нужно это было редко и изменения вносились небольшие.
Если на железяке был FTP-сервер, то было проще, тащишь файл к себе или на другую машину где есть nano или mcedit, редактируешь и закидываешь обратно.
Какую же боль вызывает этот Вим на любых не-qwerty клавиатурах именно из-за hjkl.

Это правда. Очень хочу попробовать альтернативные раскладки, но так привык к vim, так удобно стало, что не представляю, как поменять hjkl на нечто разбросанное по всей клавиатуре.

это только вначале непривычно, причем непривычно со всеми командами
но это вызывает переход на новую раскладку в любом применении
самая большая боль это различие горячих клавиш в енг и рус раскладках, но вим это в меньшей мере касается
это только вначале непривычно, причем непривычно со всеми командами
И да и нет. Все команды Вима кроме курсора вызываются по первой букве команды, например, чтобы сделать Yank жмёте Y и так далее, и всё равно где он находится. Получается, что все команды как были логичными, так и остаются — а вот курсор приходится вызубривать.
самая большая боль это различие горячих клавиш
Различие горячих клавиш победить легко. Для винды есть MS keyboard creator и вместо того чтобы использовать дефолтную русскую раскладку надо взять Дворак (другие я не использовал и смысла в них не вижу; если вам всё-таки нужна другая тогда это проблема) и на основе Двораковских кейкодов собираете обычную русскую раскладку, которая не будет отличаться абсолютно ничем кроме кейкодов горячих клавиш.
те проблема в том, что клавиши курсора запомнились не по названию, а мышечной памятью
это переучивается простым использованием, сужу по своему опыту
в дворак по мне hjkl даже удобнее поскольку вертикальное и горизонтальное перемещение находятся на разных руках

Пользуюсь colemak с несколькими перенастроенными кнопками vim. Кнопки легко меняются в конфиге.

Меняются легко, это правда. Но тогда получается, что в Insert mode вход не через i, потому что эта клавиша занята под "вправо". Выше писали, что остальные команды худо-бедно по значению запоминаются.


Можете рассказать, какие изменения у вас в настройках вызваны раскладкой?

Я поменял довольно много стандартных кнопок. Руководствовался тем, что надо сделать один раз удобно для себя, стандартные кнопки это просто один из вариантов. Маппинг кнопок для Colemak на моём гитхабе
Навигация по тексту осуществляется (в обозначениях querty) как n — вниз, h — вверх, y — влево, u — вправо.

Тоже столкнулся с этим на Двораке. Понял, что нужно писать свою модальную раскладку. Год делал и до конца всё равно ещё далеко) Но пользоваться можно.
Сейчас пишу документацию на неё и пост на хабр, вот её кусок в нотации Vim:


┌─────┬───┬───┬───┬───┬───┰───┬───┬───┬───┬───┬───┬───┬─────┐
│     │   │   │   │   │   ┃   │   │   │   │   │   │   │     │
│     │   │   │   │   │   ┃   │   │   │   │   │   │   │     │
└─────┴───┴───┴───┴───┴───╂───┴───┴───┴───┴───┴───┴───┴─────┘
┌─────┲━━━┯━━━┯━━━┯━━━┱───╂───┲━━━┯━━━┯━━━┯━━━┱───┬───┬─────┐
│ <<  ┃   │ P │gE │ ? ┃ N ┃   ┃"_D│[[ │ Y │ D ┃   │   │     │
│ >>  ┃   │ p │ B │ / ┃ n ┃   ┃"_d│ ↑ │ y │ d ┃   │   │     │
└─────┺━━━┷━━━┷━━━┷━━━┹───╂───┺━━━┷━━━┷━━━┷━━━┹───┴───┴─────┘
┌─────┲━━━┯━━━┯━━━┯━━━┱───╂───┲━━━┯━━━┯━━━┯━━━┱───┬─────────┐
│     ┃gg │ e │   │ E ┃ge ┃   ┃]] │ C │   │ G ┃   │         │
│     ┃ ^ │ w │:b │ W ┃b  ┃ ← ┃ ↓ │ c │ → │ $ ┃   │         │
└─────┺━━━┷━━━┷━━━┷━━━┹───╂───┺━━━┷━━━┷━━━┷━━━┹───┴─────────┘
┌─────┲━━━┯━━━┯━━━┯━━━┱───╂───┲━━━┯━━━┯━━━┯━━━┱─────────────┐
│     ┃ R │   │   │   ┃   ┃ U ┃ a │ v │ J │   ┃             │
│     ┃ r │   │ i │:w ┃ x ┃ u ┃ A │ V │ . │   ┃             │
└─────┺━━━┷━━━┷━━━┷━━━┹───┸───┺━━━┷━━━┷━━━┷━━━┹─────────────┘
┌─────┬─────┬─────┬───────────────────────┬─────┬─────┬─────┐
│     │     │     │                       │     │     │     │
└─────┴─────┴─────┴───────────────────────┴─────┴─────┴─────┘

На пустых местах тоже есть некие команды, я их сейчас не привожу.


Принцип примерно как у дворака (упор на перемещение самых частых команд на более удобные позиции, и на смену рук, например cw делается со сменой рук) и также как у Colemak (упор на finger rolls, например переход в <V> и движение вниз — это частая биграмма, начинающая выделение блока, — делается finger-roll'ом). Также вместо hjkl был сделан выбор в пользу hjil (в терминах QWERTY), из-за большей эргономичности вертикальных движений по ij вместо kj.
И она позиционная, т.е. команды привязаны к позициям, просто в разных раскладках будет привязка к разным буквам. (Исключениями являются скобки, тк к ним привязаны движения на открывающую/закрывающую скобку, а в разных раскладках расположение скобок разное). Её можно использовать и на QWERTY и на Двораке и на чём угодно.


Встречал другие позиционные модальные раскладки, но к сожалению не сохранил ссылки.


Так что проблема разрешимая.

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


Расскажите, пожалуйста, какие плагины поставить, чтобы было autocomplete для Java кода, как в IDEA/Eclipse. С учетом того, что добавлено в pom.xml. Давно ищу легковесную IDE, но с автодополнением.
Человек написал «легковесную» а вы ему советуете этого монстра в 100500 строк вимскрипта который тянет ещё и кучу балласта? У меня IntelliJ работает быстрее чем этот франкенштейн.

Есть простейший плагин для дополнения слов в целом. Также есть coc.nvim, но он не специализируется на Java. Поискал, есть ещё такое расширение, но опыта с ним не было.

coc.vim позволяет подключить language server, протокол там стандартный
так что вполне можно подлючить LS от eclipse, и будет как в eclipse
vim позволяет мапить Alt/Meta. map <m-a>, map <M-a> — легальный синтаксис. Но разные терминалы посылают с Alt разные последовательности и бинбинги не всегда работают. Что vim ожидает получить Alt-последовательностью? Ищу где это документировано…
Проблему решили с помощью дополнительной «контрольной» клавиши для изменения ввода с физических символов на управляющие символы. Удерживание клавиши управления обнулит 6-й и 7-й старшие биты нажатой клавиши. Если вы хотите использовать управляющий символ Backspace, нужно удерживать ctrl + H (или ^H).

А вот этого я не знал. Интересная деталь.

Насобачился перемещаться по тексту не отрывая руки от стандартной позиции (правда не в vim, а в emacs), а потом стал сомневаться, действительно ли это так хорошо для моих кистевых суставов длительно время пребывать в одной и той же позиции?
А ещё я стал сомневаться в пользе слепого набора. Я, как освоил его, действительно теперь не отрываю глаз от монитора, и если раньше глаза бегали с монитора на клавиатуру и обратно, за это время хоть как то двигались и немножечко перефокусировались, то теперь тупо смотрят в одну область, по долгу настроившись на одно фокусное расстояние. И я прямо чувствую, что глаза теперь сильнее устают.

действительно ли это так хорошо для моих кистевых суставов длительно время пребывать в одной и той же позиции?
Так единственная альтернатива — голосовой набор. И всё равно, можно будет ставить вопросы о полезности нахождения рук под столом. Поэтому, ИМХО, есть смысл отталкиваться оттого что полезно для работы. Кстати, вроде как говорят что емакс не получится использовать вслепую из-за постоянного отвлечения от трёх рядов клавиш (я ни разу не пользовался, но интересуюсь).

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

Это совершенно нормально, и даже ускоряет процесс набора (travel distance становится меньше). Проблема малоподвижности ни при каком наборе не стоит, тк пальцы и руки всё равно совершают огромное кол-во мелких движений.


А вот постоянно зажатый Ctrl это как раз весьма вредно. Emacs — прекрасный редактор, но многих программистов он отправил к врачу с диагнозом RSI, того же Столлмана. Или модальное редактирование, или мышь, или зажимать Ctrl фалангой согнутого мизинца (известный в узких кругах лайфхак, снижающий нагрузку на мизинец).


Усталость глаз тоже не бывает от слепого набора, глаза постоянно совершают сканирующие движения даже если смотрят на одну и то же область дисплея (w: cаккада), ищите проблему в другом месте.

А я думал все люди жмут Ctrl краем ладони. Это же удобней

Что-то слышал про это, но не представляю, как такое проделать на клавиатурах с коротким ходом, где Ctrl почти не выступает.

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

Сейчас и вовсе пользуюсь 60% клавой с несколькими слоями.

Зачем мне VIM если я пишу каждый день на TS (остальные 199 языков ждут моей реинкарнации наверно) и у меня комп дороже 400$?
Да, я использую VIM для редактирования каких-то файлов с под консоли (конфиги и ТД). И да я понимаю что я могу поставить себе +100500 плагинов в VIM чтобы юзать только то что мне нужно и получить целых 1-2Гб свободных ОЗУ. (16Гб =~100$).
VIM юзать на слабых системах — ок, юзать людям которые юзают его давно и просто к нему привыкли — ок. В остальных случаях — понт имхо.
P.S. Сорри, сгорел с тупых банальных ответов конца 90-ых с первой главы

типично мнение человека, который не понимает, что основное преимущество vim это его модальная система работы с текстом.
Именно ради этого люди сознательно переходят на вим. Считать что причиной использования вим является слабый комп, или привычка — это большая ошибка.
Когда-то второстепенные фичи, типа подсветки синтаксиса и автодополнения были весомым преимуществом, но сейчас это реализовано практически везде. Отзывчивость интерфейса приятная вещь, но мощное железо в большей степени это компенсирует в иде.
Основная же причина использования vim это его режимы. Когда для управления используются клавиши для ввода текста, и в виде последовательных нажатий, без необходимости удерживать управляющие клавиши. В результате этого редактировать текст гораздо удобнее. Засчет того, что команды перемещения и действий независимы, комбинация их дает богатый функционал, для которого в иде надо запомнить в разы больше шорткатов. Так же это освобождает простые комбинации типа (Alt,Ctrl)-<буква> для специфичных действий.
Как люди эти режимы используют при программировании — ума не приложу. В каждом туториале по виму — «вот так мы перемещаемся на 5 слов, а вот так выделяем 3 абзаца». Да когда при редактировании кода нужно перемещаться на 5 слов или выделять 3 абзаца? Мы оперируем функциями, классами, условиями, циклами, переменными. Пишем код, рефакторим. Где тут польза от hjkl или от необходимости перехода между режимами? Возможно, это удобно для правки каких-то конфигов?
указание количества для команд в ручном режиме скорее всего мало кем используется
но такие вещи очень удобны для записи макросов, или использовании команды normal ( которая позволяет применить команды редактирования для диапазона строк или для строк в которых найден нужный pattern)
там можно записывать команды типа найти 2ую запятую, вырезать до пятой и вставить после (
при обычном перемещении вим хорош большим количеством видов перемещений( по словам, по абзацам, на парную скобку и т.д.), а так же тем что эти команды простые и легко запоминаются, а также тем что команды перемещения можно использовать для указания диапазона для команд действий
те запомнив как переместиться на парную скобку, ты сразу знаешь, как удалить/выделить/скопировать/заменить/… до парной скобки, в иде же для этого используются мало похожие шорткаты
а режимы нужны для того, что с ними удобнее
так можно спрашивать зачем нужна клавиатура, если можно с экранной мышкой набирать
Да когда при редактировании кода нужно перемещаться на 5 слов или выделять 3 абзаца? Мы оперируем функциями, классами, условиями, циклами, переменными

Во-первых: по определённым причинам, базовый Vim намеренно не умеет производить синтаксический анализ. Общеизвестно, что для языков вроде C++ это практически равносильно реализации компилятора C++ внутри редактора. Базовый Vim заточен на редактирование чисто текстовых объектов. В нём есть некоторые примитивные синтаксические текстовые объекты, например "блок кода между {}". Синтаксические текстовые объекты добавляются плагинами (пример — текстовый объект "аргумент ф-и").


Во-вторых: модальность настолько же важна, как и функции работы с текстовыми объектами. Это банально возможность перемещаться по коду (а также вызывать операции итд) одно-двухкнопочными действиями без частого нажания неэффективных и вредных модификаторов Ctrl, Alt итд. "Сделайте мне так, чтобы я скроллил экран 1 кнопкой не перемещая кистей". Забудьте про этот несчастный hjkl — избыточное использование движений на 1 символ это признак новичка в виме. Опытные вимеры двигаются пословно, поблочно, поиском, операцией jump to tag, прыжком в списке объектов с подтверждением и ещё десятком способов.


В-третьих: "оперируем функциями, классами, циклами..." — скажем так, разве что при рефакторинге, которого действительно в виме нет. А вот:


  • при "сыром" редактировании кода (raw editing) — даже в сверхсовременных IDE всё в итоге сводится или к банальному печатанию кода (сниппетами, для эстетов), или к чисто текстовой копи-пасте и правке (сомневаюсь, что в какой бы то ни было IDE есть целостная система команд для копи-пасты синтаксических объектов).


  • при навигации — Vim с плагинами много чего умеет (jump to def, нечёткий поиск по тегу, переход к файлу по нечёткому имени итд).


  • 2075 год.
  • Компьютер управляется через нейроинтерфейс, обратная связь прямо в зрительный центр мозга.
  • vim по-прежнему использует «hjkl» для перемещения по тексту, потому что 100 лет назад на терминале ADM-3A не было стрелок.
Так весь *NIX такой. В терминале еще миллион подобных вещей и не только в терминале. Даже fs hier эта вся из лапши вида /bin, /usr/bin и т.п. была сделана только потому, что у авторов на диске места свободного не хватало, а не потому, что существует какое-то логическое, разумное и удобное объяснение этой иерархии.

Как в той байке про ширину космического корабля, которая завязана на ширину лошадиной задницы 2000 лет назад.
управление наверное будет выглядеть так:
думаешь «удалить до конца строки» и компьютер печатает «удалить до конца строки» вместо удаления, потому что был режим вставки
Опыт использования — лет пять активного программирования. Слишком много времени уходит на конфиг… не слишком очевидный и удобный vimscript. С удовольствием использую для правок конфигов на серверах в консоли, но сказать, что vim удобен в наше время для программирования — пожалуй нет.
таким образом пальцы располагаются на «домашнем ряду» клавиатуры

Нет. Домашний ряд — это F для указательного пальца левой руки и J для правой (если говорить про QWERTY). Vim предлагает держать правую руку так, чтобы указательный палец лежал на H, то есть со смещением на одну клавишу влево. Зачем? Где-то я читал, что советуют таки держать левый указательный на J, но тогда им неудобно тянуться к H, да и левый мизинец остается не у дел.


Далее, почему за навигацию отвечает именно правая рука? У тех, кто любит играть в игры, нет никаких проблем с WASD. А клавиши WASD еще и расположены в интуитивно понятной форме — W вверху, S внизу, A слева и D справа. Я смог переучиться печатать на раскладке Дворака, но так и не смог овладеть навигацией клавишами, расположенными в одном ряду — ни в играх, ни в Vim. Но постойте! Если левую руку класть на WASD, то она тоже не будет лежать на "домашнем ряду"! Многие игроки переходят на навигационную раскладку ESDF — тогда левый указательный палец падает как раз туда, куда нужно, на F. Игрокам лучше — больше клавиш слева, на них можно больше чего-то забиндить.


Если при всем этом использовать раскладку Дворака, то у левой руки, лежащей на домашнем ряду, за навигацию будут отвечать клавиши .OEU — чем я пользуюсь уже минимум полгода и ни о чем не жалею. Разве что только о том, что не могу просто так взять и перенастроить все клавиши Vim под себя и пройти одну игру, которая не распознает "." в настройках.

Vim предлагает держать правую руку так, чтобы указательный палец лежал на H, то есть со смещением на одну клавишу влево. Зачем?

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

Это как: «А вот мне удобно забивать гвозди камнем. Он очень удобно лежит в руке и ты его держишь полным хватом. А почему я начал забивать гвозди камнем? Потому что, когда я только начал это делать, были только камни. А вот сейчас мне уже неудобно держать за деревянную ручку молотка, не хочу переучиваться. А если мне дадут помощника, который никогда еще гвоздей не забивал, я ему на своем примере покажу, что забивать гвозди камнем гораздо удобней и чтоб об молотке он даже не помышлял, пусть сразу учится работать камнем. А электро или пневпо молоток — это уже так, попса и игрушки для девочек, а профессионалы работают только камнем.»
А то, что кисти в изначальном положении находятся на hjkl и для перемещения не надо передвигать кисти по клавиатуре и это повышает производительность, тогда зададимся вопросом, а сколько времени уходит на набор текста/кода из общего времени работы? Неужели те доли секунды, которые уходят на перемещение руки вправо на 5-10 см, существенно влияют на общее количество написанного? А уж держать руки 8-10 часов подряд в одном положении над asdf и jkl; и не двигать ими вообще, «так пусть отсохнет его карбюратор, во веки веков». А тут хоть какая-то разминка в процессе работы и уделять ей отдельное время можно уже меньше. А уж нащупать стрелки на классической клавиатуре мне проще чем бугорки на клавишах f и j.
Это все конечно же моё ИХМО.
Это мнение очевидно ошибочное, поскольку есть факт, что на вим переходят сознательно, и до перехода прекрасно использовали другие редакторы, но выбрали именно вим, и именно потому что он удобнее. И удобство в вим именно в режимах, а не в чем либо ином. Остальное сейчас доступно и в других редакторах.
А вот ваше мнение как раз и основано на том, что вам в вим неудобно, и переучиваться не хочется. Переход на вим действительно тяжело дается тем, кто пользовался обычными редакторами, и освоил часть их шорткатов. Сами по себе режимы не привычны, привычные действия не работают, даже если помнишь как сделать это в вим привычного автоматизма нет, надо сознательно выполнять эти действия. Переходный период тяжелый, но это окупается когда переходит в автоматизм.

Неужели для правки конфигов так важно держать руку посередине клавиатуры, а для написания кода печатать со скоростью звука? Мне как-то всегда думалось, что IDE и текстовые редакторы были именно для удобства работы с текстом И очевидной навигации придуманы...

поверь, нам так действительно удобнее
сейчас число тех у кого первым редактором был вим крайне мало, подавляющее большинство сначала пользовались обычными редакторами, и перешли на вим потому, что в нем удобнее
лично для меня основными моментами перехода был визуальный режим( в обычных редакторах мне было крайне неудобно выделять при помощи shift+ctrl +стрелки, отпустишь что нибудь, или нажмешь лишнее и начинай сначала), и то что в вим запомнив немного операций, при помощи их комбинации получаешь большой функционал работы с тестом ( в обычных редакторах для этого требуется запоминать трудно-запоминаемые шорткаты для каждой операции, те запоминать в разы больше, ну или бегать по менюшкам)
сейчас мне очень нравится команда normal для выполнения похожих операций над множеством строк

Ну, чисто из своих наблюдений, за более чем 20 лет в индустрии (я в основном с++-ник), я ни одного человека не знал лично, который бы пользовался вимом… Может действительно это нишевая штука для определённых специализаций. Это бы всё объясняло.

полагаю тут необходимое условие это необходимость сталкиваться с vim, чтоб в принципе немного им попользоваться
в c++ в основном все идет в иде на десктопе

Очень странно. Под Винду программируете? Из моего опыта разработки под никсы, на компанию в 50 человек всегда находится 1-2 вимера. Лично я к этому так давно привык, что не воспринимаю ту же idea без vim плагина.

И винда, и Линукс. Под виндой в студии в основном, под Линуксами Qt Creator либо Kate/gedit. В коллективе и "старые перцы" имеются (45+), но ни одного фаната Вима вообще не встречал. Либо не знают, что это, либо реакция "а для чего этот динозавр, если есть… (тут часто vs code или notepad++ упоминают). Админы наши тоже не фанаты вима.

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

А дебагать как? Так же удобно, как и в студии?

gdb и аналоги для других языков используються без проблем. + Сейчас с lsp дебаггер легко прикручивается и в вим и в емакс

Дело не в количестве написанного, а в удобстве! Если программирование — не про «печатать», а про «думать», это значит только то, что набор кода не должен отвлекать от мыслей. Таскание руки туда-сюда и постоянный поиск пупырышек жутко отвлекает и бесит. Часто ленюсь нормально найти пупырки и поставить руки прежде чем начать печатать — начинаются очепятки, приходится править. Хотя не юзаю вим/виммод, но идея очень нравится. Возможно, стоит покопать в сторону редакторов с поддержкой виммода. Ещё очень нравятся клавы синкпадов с трекпоинтом. Реально очень удобно за счёт того что не надо таскать руки туда-сюда.

Ну не знаю, мне IDE и думать не мешает, и писать помогает) да и пупырышки никакие я не ищу… (Кстати что это?)

Выступы такие на кнопках F и J, помогающие ставить пальцы на домашний ряд.
Сам когда-то набивал 4 пальцами, гонял руки по всей клаве, и не искал никакие пупырышки. С освоением 10-пальцевого режима, впрочем, приходит понимание что переставлять руки туда-сюда — лениво и время/энергозатратно…

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

Если вы не знаете про пупырышки, то похоже и в слепую не печатаете. Это так? Если да, то тогда вим вообще вам не подходит.

Ну печатаю в основном смотря в экран, а не на клавиатуру. Привык как то за 25 лет) Но мне не надо очень много кода за минимальное время набивать. А текстовые документы приходится всё равно в Ворде или опенофисе делать, т.к. часто графику надо.

Для меня ценность vi/vim'а — в стиле навигации и набора текста (hjkl, модальный ввод и пр. что есть из коробки). Сам vim использовать в качестве IDE — увольте. Во-первых, terminal обладает далеко не богатыми UI возможностями. Во-вторых, настраивать плагины и оттачивать vim.config — то еще удовольствие (и не продуктивно).

Я всегдаиспользую «vim mode» в Visual Code, Visual Studio, CLion,… Но сам vim запускаю очень редко, когда надо глянуть файл не выходя из терминала.

Поддерживаю. Сам по себе вим устарел технически и не дотягивает до современных ide во многих аспектах, хотя проекты типа neovim пытаются это исправить.


Но в каждой ide есть вим мод. И наверное он там не зря.

На самом деле статья о том, почему Ctrl это Ctrl. :)

Некоторые IDE очень прожорливые и требуют мощной рабочей станции (вспомним хотя бы монструозную Visual Studio).

Вот тут то ли пример неудачный, то ли ирония скрытая. VS до сих пор 32-битная. Ну ладно, до 2010-2011 года это было приемлемо, но когда у тебя 16+ ГБ, а VS не может сожрать и 4 ГБ — это огорчает. Там в ядре VS кучка жуткого legacy и непонятно когда MS осилит переход VS на 64 бит (и осилит ли). Похоже, что от безысходности запустили VS Code (которая кроме названия к VS отношения не имеет и пока вообще не конкурент во многих областях).

Поначалу упорно путал j и k, причём чаще 50% случаев, что свидетельствовало о неких причинах помимо "не привык". Думаю, ожидал, что две соседние клавиши будут вести в угол с меньшими координатами, а две другие соседние — в угол с большими. Успешно перемапил местами j и k в нормальном режиме командами в vimrc:


nnoremap j k
nnoremap k j

Вдруг кому ещё поможет)

Only those users with full accounts are able to leave comments. Log in, please.