Pull to refresh

Comments 121

UFO just landed and posted this here

А почему именно этот вопрос? Там есть какой-то подвох, про который не говорится в этом мане? https://vim.fandom.com/wiki/Search_and_replace_in_a_visual_selection#Substituting_in_a_visual_selection

UPD: Хотя, тут-то оказалось, что всё даже ещё проще – https://stackoverflow.com/questions/773137/find-and-replace-within-selection-in-vi/773158#773158

UFO just landed and posted this here
UFO just landed and posted this here

-Супер-Скорость

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

Команды на самом деле очевидны и даже их использование в разных ситуациях логично. Достаточно один раз прочесть ман. 8)
Например:
$ - прыгнуть в конец строки
d$ - удалить все от курсора до конца строки
y$ - скопировать все от курсора до конца строки
... и т. д. и т. п.

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

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

Всё-таки для большинства (на мой взгляд) проще воспринимается модель kakoune/helix: выделение -> действие. Когда ты видишь с чем конкретно произойдёт действие чувствуешь себя увереннее.

UFO just landed and posted this here
Только базовые. Огромной кучи комбинаций нет
UFO just landed and posted this here
Вы статью-то читали?

yip Скопировал всю функцию. Обратите внимание — я скопировал ее изнутри самой функции! Мне не пришлось наводить курсор или мышь на первый-последний символ.


f1 CTRL+a Прыгнул к единичке и с помощью CTRL+a увеличил ее на один! Ваша IDE умеет такое?
UFO just landed and posted this here
UFO just landed and posted this here
Примеры высосаны из пальца короче. А то что это нужно трем с половиной извращенцам в расчет не берется.

— Вот тоже не понимаю чего фанаты vim носятся со своими комбинациями. Вроде в любом современном редакторе все то же самое делается комбинациями не сложнее, просто комбинации другие.
— Вот вам комбинации, которых нет
— Они нужны трем с половиной извращенцам(≈не мне), несчитово.
Очень удобно. «Меня устраивает функционал обычного редактора, (я считаю, что все остальные такие же, как я), поэтому все остальные функции нужны ограниченному количеству людей, а значит, примеры этих функций нерелевантны, т.о. я победил». То, что в такой формулировке очень сложно подобрать какую-то функцию, которая нужна вам, но ее еще у вас нет, в расчет не берется.
UFO just landed and posted this here
Еще раз. Ваш тезис «в современном редакторе все делается теми же самыми средствами» — неверен. Хотя бы потому, что там нет разделения на режим управления и режим ввода, а значит, добро пожаловать в 2-3 кнопочные комбинации, т.к. основная панель клавиатуры занята под буквы.

Я привел вам два примера. По моему мнению, два примера уже достаточно показательны, чтобы считать неверным тезис «в виме нет никаких фичей по сравнению с обычными редакторами, только неудобное управление». Есть ли еще примеры? Конечно. Хочу ли я их искать человеку, который считает, что «победив» в соревнования с двумя примерами, выиграл весь спор, и тут же обвиняет меня во лжи? Нет, пожалуй.

Как назвать ваше «ну мне же эти два примера не нужны, а значит, не нужны никому, а раз мне не могут показать еще примеры, значит больше их не существует, следовательно, редактор никому не нужен» — я не знаю. Глупостью? Самоуверенностью? Ощущением себя пупом мира?
UFO just landed and posted this here
Ржу. Диалог вести не способны, смысл сообщений собеседника не понимаете. Ок.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here

В любой нормальной IDE есть vim mode со всеми режимами. А вот чего нет в виме - это рефакторингов, а без них ide не ide

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

На каком языке и с каким количеством ложных срабатываний? Ни разу не видел за пределами IDE толкового переименования в питоне

И Python и Go и Rust, все работает отлично. lsp сервера появились буквально несколько лет назад, до этого только грэпами все делалось

UFO just landed and posted this here

в любой иде vim mode сильно кастрирован. а разницы работы одного и тоже language server что в вим, что в иде нет никакой

UFO just landed and posted this here

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

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

Да и настроить всегда можно под себя как угодно.

Нет нельзя. И в это вся проблема. Без мыши не удобно работать. А с мышью после вима уже неудобно работать.

UFO just landed and posted this here

Суть не только в комбинациях. В вим есть еще режимы, буферы и возможность строить комбинации из комбинаций. С одной стороны, если не знаком с этим, кажется что оно нафиг не нужно, с другой стороны, я, привыкнув ко всему этому, не смог пользоваться PyCharm с "вимовской раскладкой", потому что кроме набора некоторых комбинаций эта раскладка ничего и не реализует. Оказалось, что просто привязка функций на другие кнопки ничего удобнее не делает.

UFO just landed and posted this here

Я не пользовался vsc, не могу сказать.

Дело не только в комбинациях, вы упустили режимы и буферы.

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

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

UFO just landed and posted this here

Конкретику дайте плиз хоть какую-то.

У меня такое чувство, будто вы не читали мой комментарий.

Какой? Что вы не можете сделать с текстом в PyCharm?

Все могу делать. И в блокноте могу все делать. Чем вызван этот вопрос?

чтобы с комбинациями другого редактора кто-то носился выдавая это за великое удобство

В vim дело не в комбинациях клавиш. Вы читали мой комментарий?

Что в них удобного?

Да в целом, ничего. Это просто инструменты vim.

UFO just landed and posted this here

Все и не надо. Только те, что нужны именно вам.

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

Все что есть тут, можно найти и в Notepad++ с его плагинами.

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

Большую часть времени разработчик размышляет и перемещается по коду. Скорость набора кода тут не столь важна.

У vim/nvim сейчас основное преимущество в небольшом потреблении ресурсов, благодаря чему батарея живёт значительно дольше. И ориентация на работу с клавиатурой избавляет от необходимости пользоваться тач панелью. ИМХО разумеется.

Сам пользуюсь этой сборкой https://astronvim.github.io/ через neovim-qt (из-за контекстного меню и буфера), хочу попробовать ещё https://github.com/akiyosi/goneovim.

UFO just landed and posted this here

По первому, тут jetbrains вне конкуренции разумеется. Там синхронизация конфигов через облако есть.
Сам nvim использую только в домашних проектах, чисто по фану.

UFO just landed and posted this here

Плюсую. И добавлю что у VSC (Microsoft Visual Studio Code) и Codium синхронизация конфигов тоже есть (а также полная бесплатность/свободность). Для программиста написать простейшую синхронизацию к любой IDE сейчас не проблема.

Часто слышу такой аргумент. Да редактирование занимает времени меньше чем чтение. Однако энерго затраты на редактирование можно существенно снизить. То есть тут речь не про время, а про количество внимания, которые вы вкладываете на перепрыгивание с мыши на код, листание скролом, выделения и вот это все. Вим это еще про десятипальцевую печать, а значит даже на клавиатуру смотреть не нужно и постоянно перекидывать взгляд.
Но это не единственное, что дает вим. Помимо редактирования, такая же огромная скорость действий касается всего остального. Работа с табами, поиск по проекту/файлу, работа с гитом, навигация по всякого рода имплементациям интерфейсов и вот это все.
Вим ощутимо увеличивает общую скорость работы, а главное перестаешь со временем думать про инструмент (так как автоматизм действий приходит неизбежно) и начинаешь думать про код. У меня это так работает.

Для того чтобы начать делать работу с помощью Вима надо учиться Виму.

Большинство же просто хочет делать свою работу.

С другой стороны если условный VSC добавить в себя управления редактором на уровне Вима, против особо никто не будет

Ну почему же «если»? Плагины для управление в стиле вим есть для большинства IDE, браузеров и всякого другого. Вон, на маркетплэйсе плагинов Intellij – IdeaVim на первом экране с почти 12М установок… Для VSC, разумеется, такие плагины тоже есть.

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

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

Ну это примерно как с QWERTY на Dvorak пересесть. Кому-то эффективнее, а кто-то хочет продолжить стирать через Backspace и скакать по строке одной кнопкой Home/End.

А какой порекомендуете туториал или курс по этой штуке? Желательно для туповатых кодеров и с простыми практическими заданиями :)

UFO just landed and posted this here

Можно нагуглить миллион уроков любой сложности и даже игры для вимеров.

Вот именно, и большинство будет отстоем, поэтому я и спросил какой порекомендуете, в гугл я и сам могу себя послать, спасибо =/

UFO just landed and posted this here

Я погуглил - миллион уроков ссылается на :tutor, а он не то чтобы туториал, а скорее типа интерактивная справка.

Вот дали бы кусок кода который надо отредактировать вимом или практическую задачку какую-то.

https://vim-adventures.com/ игра с вим управлением
https://www.vimgolf.com/ набор разных задач по изменению текста, с целью уложится в наименьшее число клавиш, для каждой задач показывается лучший достигнутый результат, можно смотреть решение на 1 клавишу меньше чем сам достиг

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

Чтобы интерес не пропал до начала работы советую использовать готовые сборки (я использую spacevim, тут в комментах еще советуют)

vimtutor для обычного вима, внутренняя команда :Tutorial для nvim

Из текста так и не понял, чем nvim лучше vim. (:

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

я так думаю, проще всего будет зайти на какой-нибудь vimawesome и поискать по интересующим вас вещам.

Я осознаю, что экосистема vim богатая на плагины. Посыл был в том, что статьи, в которых призывают отказаться от IDE в пользу vim, обычно останавливаются на описании его возможностей как редактора(
UFO just landed and posted this here

потому что единственная причина перехода на вим это его способ редактирования
возможности в плане иде не отличаются
для начала можно взять какую нибудь сборку типа
https://www.lunarvim.org/
https://spacevim.org/
для распростаненых языков они представяют функционал иде

UFO just landed and posted this here
Пробовал, в очередной раз, перейти на это в начале ковидной эпопеи, когда мудрое начальство решило, что удалённо работать через удалённый рабочий стол через медленный корпоративный VPN будет тоже нормально. Думал, щас вот я со скрежетом зубовным пытаюсь не промахнуться по нужному месту лагающим мышиным курсором, а буду, такой, «VIM, удоли символы с пятого по семнадцатый тремя строками выше», а VIM, такой, «I'm afraid I can't do that, Dave»... По личному опыту:
  • Основы, вроде навигации по hjkl и прочих dd xx, в принципе, осваиваются довольно быстро. Да, это всё равно боль, но такая, к которой привыкаешь. Нет, это не быстрее мыши.
  • Всякие более сложные фишки могут быть весьма удобны, они могут, наверное, быть быстрее мыши если прям привыкнуть и проникнуться. Но ты ж их используешь-то пару раз в году и никогда не запомнишь, каждый раз заново гуглить, как это сделать. Вся быстрота и всё удобство убиваются и уходят в минус.
  • Но я же не совсем тупой, я напишу шпаргалку по нужным командам и буду держать на втором мониторе! Да, ага, очень помогает, вместо ковыряния по менюшкам IDE теперь происходит ковыряние в тексте шпаргалки в поисках чего там как где.
  • Совсем лютое джедайство вроде guu 2jfkD yip 21G SHIFT+v jp f1CTRL+a 11Gdip ggdd jv4jd Go'Hello World!', возможно, действительно становится киллер-фичей после многолетних практик и медитаций, когда в отдельной специальной зоне мозга из особых нейронов формируется Vim-сопроцессор и можно херачить подобное, не переключая основной ментальный контекст. В моём случае переключение взад-вперёд между «вот я программирую мою задачу на Питоне» и «вот я программирую сложную текстовую операцию в командах Vim» выбивало, что называется, «из потока» не хуже внезапного звонка от секретарши босса с очередной бессмысленной и беспощадной бюрократической по2.7ботой. Нахер-нахер, пусть я мышью, пусть я медленнее, но при этом продолжая обдумывать задачу, а не просыпаясь, как герой фильма «Memento», внезпано посреди нигде и вспоминая «кто я? где я? что я там делал-то до того, как решил эффективно отредактировать текст?»

Лет 6 назад я потратил где-то 3 месяца на освоение вима. Хотя со временем я пересел на Емакс, я все равно использую вимовские сочетания через evil-mode. И это кардинально поменяло мои способности. С ужасом вспоминаю, каким я медленным был на PyCharm. Вечно прыгать рукой с клавиатуры на мышь. Это постоянно выбивало меня из контекста. Теперь мои руки фактически материализуют мои мысли, курсор двигается за взглядом и я просто не думаю, как что-то набрать.

В тот раз я дольше трёх месяцев практически безвылазно просидел в Vim-е (не помню точно, где-то полгода-год). Освоил хоткеи, настроил конфиги, поставил плагины, привык, пользовался. Никакого кардинального изменения моих способностей к чему бы то ни было не заметил от слова «совсем». Когда-то давно пару лет просидел в Emacs-е, с тем же результатом: свой особый путь, сперва ломает, но изучаешь, привыкаешь, можно пользоваться. Только, с одной стороны, а зачем? Но, с другой стороны, а почему бы и нет?

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

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

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

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

Причём тут IDE. Pycharm(и другие IDE от jetbrains), помимо того что имеет очень развитую(и максимально настраиваемую) систему хоткеев, также предоставляет замечательный плагин ideavim, с помощью которого можно пользоваться vim-like хоткеями, а также некоторыми очень полезными плагинами (surround, easymotion, multiple cursors)

Для текста только. В виме и емаксе управлять всем нужно клавишами. Иде без мыши нельзя использовать. Для каких то действий все равно нужно к ней тянутся

Нет, не припомню таких действий. Если знаете, подскажите
До последнего релиза не было возможности по хоткею перемещать таб между окнами. Теперь сделали. Хотя в vim этого не сделаешь даже с мышью.
И совет. Попробуйте. IDE (как минимум от jetbrains) за последнее время хорошо продвинулись и большинство из них имеет плагины для эмуляции vim-like команд. Vim отличный редактор. Но, при всём уважении, для разработки больших проектов хорошей IDE он не конкурент. А вот на сервере и для быстрых правок - отличный инструмент.

Я использую Емакс и он меня полностью устраивает. Даже этот коммент я пишу в нем. И у меня есть все фичи из ИДЕ, благодаря lsp серверу. И он загружается у меня меньше секунды. Я использую его везде, от написания кода, до конфигурации линукса.

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

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

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

Это неправда. Если речь идёт об обычных действиях по перемещению по тексту, и его редактировании, то все они работают. И макросы работают. И даже несколько очень полезных плагинов портировано.
По поводу конфликтов между хоткеями vim и pycharm. Там ведь целый раздел в настройках, где можно выбрать кто должен обрабатывать то или иное действие - vim или сама ide. Всё легко настраивается.

про то и речь , что работают только базовые команды, чуть глубже копнешь не работает
когда пробовал vimmode постоянно натыкался что не работает то что привык использовать
по поводу хоткеев речь о том, что стиль у них разный, в вим принята последовательность нажатий обычных клавиш, без модификаторов, эти он и удобен, а все хоткеи idea завязаны на модификаторы
те же последотальности проще запоминать
например первая g - все связанное с git
s - связанное с поиском

l - lsp

Сильно подозреваю, что hjkl было удобным именно на клавиатурах древних никсов. Самые удобные курсорные по моему опыту -- слой с jkli на клавиатурах corne. Там даже эмуляция мыши есть для особо изысканных господ.

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

Я не знаю за клавиатуры corne, у меня на Moonlander стрелки в отдельном слое на ijkl. Там даже эмуляция мыши есть, но я, честно, не представляю, кто и зачем мог бы ей пользоваться: она сочетает в себе недостатки клавиатуры и мыши, не обладая их достоинствами. Разве что идеальные прямые в Пэйнте рисовать?

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

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

вы соревнуетесь с обычным Юзером с клавомышью и GUI интерфейсом

Справедливости ради, юзер может пользоваться GUI интерфейсом, но не пользоваться мышью. Кажется, все современные редакторы кода и IDE такое позволяют

UFO just landed and posted this here

И это доставляет страдания - задолбался ее отключать на серверах чтобы она не перехватывала правый клик.

Оно, конечно, всё хорошо, но:
1. Тут есть плагины, как, к примеру, в vscode, для удобного управления контейнерами?
2. Тут есть плагины для удобного доступа к wsl?

Её реально можно отстроить так, чтобы она заменила мне абсолютно все необходимые инструменты, которые есть в том же самом vscode?) Если да, то я заинтересован

Похоже, что


  1. Нет
  2. Нет

P.S. я гуглилъ, думаю если бы было то на поверхности

В Емакс есть мод для управления контейнерами кубика, есть мод для почты/рсс, есть мод для телеги, есть мод для твиттера, есть мод для удаленного редактирования с сервера/докера. Легче перечислить моды, которых нету)

Про emacs вообще, как мне кажется, справедливы 2 мема:

(— Дорогой /s/, какой программой мне сделать <что угодно>?
— GNU Emacs) )

В emacs есть, все кроме нормального редактора

Давно уже есть эмуляция вима))) Лучшее с обоих миров!

переходить имеет смысл только если вам нравится способ редактирования в вим. все остальное есть и в других инструментах. Собственно кроме модального способа редактирования других преимуществ ради которых стоит переходить на вим нет.

Я довольно долго сопротивлялся, но потом попробовал Doom Emacs (с evil mode - биндинги как у vim) с него я потом перепрыгнул на nvim, написал себе гавноконфиг и радуюсь до сих пор c большим удовольствием его эволюционируя вместе с собой. Удаляю неиспользуемые штуки, добавляю или дописываю новые, заодно приоткрыл для себя мир lua.

Например из фишек: `CTRL + a` как в примере у автора, у меня не только инкрементит числа, но и переключает bool. Странно, но эту фигню использую чаще чем может показаться.


Через некоторое время начал испытывать дискомфорт когда надо было открыть VScode или любой онлайн редактор.

Типа:
- Какого фига я должен тянуться мышкой куда-то водить ей, убирать руку с клавиатуры если я туда посмотрел, а курсор уже стремительно движется в нужное время (моторика вырабатывается и это все без раздумий как мышкой пошевелить)

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

Из минусов:

  • Обновление плагинов может сломать рабочий день, так как может перeстать работать все.
    Но я приучил себя не делать такое в утро понедельника и все норм :/

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

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

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

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

типа, не 2000, а всего лишь 1000?

типа запомнив 50 клавиш получаем 2000+ команд

нафиг нафиг. может конечно обезьянке копипастеру годится. я как-то норм и так

да обезьяне копипастеру обычная ид сгодится с двумя комбинациями ctrl-c ctrl-v

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

не. бессмысленно обсуждать

2022 год. Каждый месяц выходит очередная статья знакомящая читателей с neovim/vim. И самый комизм ситуации в том что в комментариях каждый раз разгораются споры "терминал vs GUI", "IDE vs vim", "emacs vs vim". Не надоело?

В vim невозможно рефакторить чужой код. И как выше правильно написали vim "выбивает из потока".
Но в остальном знать его чрезвычайно полезно в встраиваемых и удаленных системах, когда кроме консоли ничего нет. Да и, согласно Posix, vi обязан присутствовать из коробки. Но лучше в нем только читать с приятной подсветкой синтаксиса ВСЕГО что есть и править не больше пары строк.

(сам я vim знаю только на базовом уровне, конфиги на сервере поправить или типа того)
Вот что бросилось в глаза, в кунг-фу по исправлению кода - мы прыгаем к строке номер такой-то, затем к строке номер другой-то, то к первой, то к последней.

Но когда я пишу код, в ИДЕ (pycharm в моем случае), я не ориентируюсь по номерам строк. Я ориентируюсь в контексте, названии функций, переменных, ошибках подсвеченных ИДЕ, и т.п.
И соответственно что б редактировать тот кусок кода, я б тоже не использовал мышь, но я б скакал к объявлению функции, к ошибке, использовал бы контекстное выделение что б скопировать/удалить блоки кода (ф-ции) и в конце жмякнул бы авто-формат что б убрать неиспользуемые импорты/добавить где нужно пустых строк и т.п. Наверняка я б нажал больше кнопок, что б перейти к той же единице и исправить ее на двойку (хотя я привык к плагину AceJump, c ним быстрее это).

Но когнитивная нагрузка была б, ИМХО, меньше, т.к. не нужно переключать в голове контекст с программы на номера строк.

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

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

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

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

сижу в неовиме пару недель, по началу было очень не привычно, сейчас уже начал привыкать. Это интересный опыт, будут ли статьи про дебаг в неовим?(единственное что пока не настраивал) остальное типо gitui или лсп сервер уже сделал

Честно сказать, настроил я себе неовим год назад, да так с пафосом, прям отдельной сборкой можно выставлять. Только смысла то от этого не много, установить вим биндинги на vscode/idea будет банально удобнее, тебе не надо фиксить deprecated у пакетов, не надо для каждой новой фитчи дописывать конфиг, не надо заботится о переносе этого конфига на новое устройство и т.д.

С тем же vscode все куда удобнее, у тебя и раскладка окон по одному нажатию мышки, и пакеты по нажатию мышкой, и синхронизация настроек, и мультиплатформеность без билда каждой новой версии под платформу, ибо в пакетных менеджерах устарелые версии. Поставив в vscode плагин Vim, ты получаешь весь самый важный функционал в виде биндов, и можно спокойно строить козни из команд по типу замены всего текста внутри квадратных скобок (не включительно) текстом из 5 регистра 3 раза, а потом через record повторить это на всех участках кода.

Кстати, да прям мало статей про дебаги и профилирование, через vim.

Например C#. Его без нормальной ide не отладишь про профилирование я вообще молчу. Вопрос конкретно про терминал.

И как говорили выше vim и все подобные инструменты хороши если, на сервере разработки есть только ssh. И тут имхо нет равных подобным инструментам:)

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

Sign up to leave a comment.

Articles