Neovim (aka Nvim) - это не обычный текстовый редактор, а программа, которая позволяет вам превратить свой рабочий процесс в изящный танец или фортепианную партию.

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

Зачем заморачиваться и пользоваться текстовым редактором через код?

Потому что это чертовски быстро!

Просто представьте:

  • В Nvim мышка включается отдельной командой в конфиге. Но обычно ее не включают - лень-матушка.

  • Возможно, что у повстанцев с Навуходоносора на компьютере стоял именно Nvim. Он гибкий, и позволяет редактировать не только текст, но и код Матрицы…

  • Документация максимально подробна и понятна.

  • Выйти из Nvim'а не легче, чем уйти из мафии. Новички, впервые запустившие колдовской редактор, обречены годами скитаться в поисках заветного "Exit"...

Ну что, молодые маги, добро пожаловать в Колдовской Nvim!

Почему вам стоит выбрать Neovim?

По моему мнению, у редактора 3 киллер-фичи:

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

  2. Невероятная гибкость

  3. Nvim растет вместе с Пользователем

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

Nvim молниеносно быстр. И сложен в освоении. И в этом нет ничего плохого. Например:

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

Вам нужно создать папку!

Юзер наводит мышку, жмет правой кнопкой, выбирает “Создать папку” - и выигрывает, пока вы копошитесь в мануале...

Реванш через месяц

Через месяц? Через месяц скорость будет примерно одинаковой - вы просто наберете “mkdir papka” и создадите папку. Юзер пожмет плечами и пойдет дальше. Он не проиграл.

Задачи посложнее

  • А если надо создать сразу 6 папок?

  • А если выбрать из папки все файлы с определенным расширением?

  • А если сделать скрипт, который будет разворачивать в определенном месте целое дерево папок с файлами (например исходники для проекта).

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

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

В Nvim вы нажимаете несколько клавиш и за секунды выполняете объем работы/передвижений, который бы занял минуты в обычном редакторе. А любой программист понимает, что сэкономленное время = время заработанное.

Давайте посмотрим на примере. Вот код, который вы хотите исправить:

Этот код выглядит плохо!
Этот код выглядит плохо!

Обратите внимание, на каком символе находится курсор (второй символ 16й строчки). Итак, мы нашли себя вот в такой тестовой ситуации. Что мы хотим сделать?

  1. Имя функции переписать строчными буквами.

  2. Удалить лишние символы “kkk” на 18й строчке.

  3. Скопировать всю функцию big_and_ugly_name1() и перенести ее на 21ю строчку, попутно удалив комментарий. Да, нам надо 2 одинаковых функции. И не забудем поменять постфикс!

  4. Удалить функциюunused_function()

  5. После этого удалить самую первую строчку, а еще 3 строчки после импорта.

  6. Прыгнуть в самый конец, и написать на новой строкеprint(”Hello World!”)

Заметим, что из всей работы созидаем мы только при написании последней строчки print(”Hello World!”). Все остальное - непроизводительный труд.

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

guu 2jfkD yip 21G SHIFT+v jp f1CTRL+a 11Gdip ggdd jv4jd Go'Hello World!'

Бррр, абракадабра, да как такое запомнить? Но набор такой команды в разы быстрее, чем клавомышь. И мышки дорогие.

Давайте разберемся. Только что я:

  1. guu Превратил все символы на 16й строке в строчные (lowercase). Заметьте, что курсор находился на втором символе - мне даже не пришлось его двигать к названию функции.

  2. 2jfkD Перешел на 2 строчки ниже, прыгнул на первую букву k и удалил все оставшиеся символы.

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

  4. 21G SHIFT+v jp Прыгнул на 21ю строку и вставил скопированную функцию, попутно удалив комментарий.

  5. f1 CTRL+a Прыгнул к единичке и с помощью CTRL+a увеличил ее на один! Ваша IDE умеет такое?

  6. 11G dip Прыгнул на 11ю строчку, опять в середину функции, и всю ее удалил, не перемещая курсор.

  7. ggdd Прыгнул на первую строчку, удалил её.

  8. jv4jd Перешел на строчку ниже импорта, выделил 4 строчки и удалил их.

  9. Go"Hello World!" Прыгнул на последнюю строчку в файле. Создал еще одну строку ниже и написал в ней ‘Hello World!’

При этом я ни разу не тронул мышь, ни разу не убрал руки с центра клавиатуры, не отводил глаз от экрана и контролировал каждый шаг. Вот поэтому Nvim по-колдовски быстр!

Невероятная гибкость

Nvim никак вас не ограничивает:

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

  • Огромное количество плагинов на выбор. Большое комьюнити, которое пишет эти плагины.

  • Nvim легко взаимодействует с Github.

  • Подключитесь к другой машине через SSH, скачайте Nvim (20 мегабайт), вставьте свой конфиг и у вас тут же появится привычная среда разработки.

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

  • Редактор бесшовно переходит в консоль и обратно. Прямо из редактора доступны консольные команды и скрипты. Nvim является естественным продолжением терминала Linux и прекрасно дружит c tmux.

  • Nvim работает с любыми файлами. Более того, он открывает даже самые большие и тяжелые файлы!

Nvim растет вместе с Пользователем

Он как зернышко! Сначала будет небольшой росток, его надо оберегать и поливать. Потом росток станет деревцем, а затем огромной секвойей.

Nvim воплощает один из ключевых принципов мышления программиста:

Не делай ничего дважды!

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


В следующей части данного руководства мы установим Nvim и познакомимся с конфигурационным файлом.

Комментарии (91)


  1. anonymous
    00.00.0000 00:00

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


    1. zezic
      13.12.2022 07:37
      +1

      А почему именно этот вопрос? Там есть какой-то подвох, про который не говорится в этом мане? 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


      1. anonymous
        00.00.0000 00:00

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


      1. anonymous
        00.00.0000 00:00

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


  1. cry_san
    13.12.2022 07:41
    +3

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

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


    1. ZillahGiovanni
      13.12.2022 10:18
      +6

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


      1. DeepFakescovery
        13.12.2022 12:11
        -1

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


      1. DeniSix
        13.12.2022 12:42
        -1

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


      1. sshemol
        13.12.2022 16:10
        +2

        End

        Shift + End, Del

        Shift + End, Ctrl + C


        1. anonymous
          00.00.0000 00:00

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


          1. vvzvlad
            14.12.2022 11:48
            +1

            Только базовые. Огромной кучи комбинаций нет


            1. anonymous
              00.00.0000 00:00

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


              1. vvzvlad
                14.12.2022 16:58
                +1

                Вы статью-то читали?

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


                f1 CTRL+a Прыгнул к единичке и с помощью CTRL+a увеличил ее на один! Ваша IDE умеет такое?


                1. anonymous
                  00.00.0000 00:00

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


                  1. anonymous
                    00.00.0000 00:00

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


                  1. vvzvlad
                    15.12.2022 17:11

                    Примеры высосаны из пальца короче. А то что это нужно трем с половиной извращенцам в расчет не берется.

                    — Вот тоже не понимаю чего фанаты vim носятся со своими комбинациями. Вроде в любом современном редакторе все то же самое делается комбинациями не сложнее, просто комбинации другие.
                    — Вот вам комбинации, которых нет
                    — Они нужны трем с половиной извращенцам(≈не мне), несчитово.
                    Очень удобно. «Меня устраивает функционал обычного редактора, (я считаю, что все остальные такие же, как я), поэтому все остальные функции нужны ограниченному количеству людей, а значит, примеры этих функций нерелевантны, т.о. я победил». То, что в такой формулировке очень сложно подобрать какую-то функцию, которая нужна вам, но ее еще у вас нет, в расчет не берется.


                    1. anonymous
                      00.00.0000 00:00

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


                      1. vvzvlad
                        15.12.2022 21:45
                        +2

                        Еще раз. Ваш тезис «в современном редакторе все делается теми же самыми средствами» — неверен. Хотя бы потому, что там нет разделения на режим управления и режим ввода, а значит, добро пожаловать в 2-3 кнопочные комбинации, т.к. основная панель клавиатуры занята под буквы.

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

                        Как назвать ваше «ну мне же эти два примера не нужны, а значит, не нужны никому, а раз мне не могут показать еще примеры, значит больше их не существует, следовательно, редактор никому не нужен» — я не знаю. Глупостью? Самоуверенностью? Ощущением себя пупом мира?


                      1. anonymous
                        00.00.0000 00:00

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


                      1. vvzvlad
                        15.12.2022 22:14
                        +1

                        Ржу. Диалог вести не способны, смысл сообщений собеседника не понимаете. Ок.


                      1. anonymous
                        00.00.0000 00:00

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


                      1. anonymous
                        00.00.0000 00:00

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


                      1. anonymous
                        00.00.0000 00:00

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


                      1. anonymous
                        00.00.0000 00:00

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


                      1. anonymous
                        00.00.0000 00:00

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


          1. vtb_k
            14.12.2022 12:25

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

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


            1. anonymous
              00.00.0000 00:00

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


          1. kasyachitche
            14.12.2022 13:36
            +1

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


            1. anonymous
              00.00.0000 00:00

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


              1. kasyachitche
                14.12.2022 16:20
                +1

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

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

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

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


                1. anonymous
                  00.00.0000 00:00

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


                  1. kasyachitche
                    14.12.2022 17:35

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

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

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

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

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

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

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

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


                    1. anonymous
                      00.00.0000 00:00

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


    1. antgubarev
      13.12.2022 10:29

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


  1. cry_san
    13.12.2022 07:42

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


  1. micronull
    13.12.2022 08:08
    +7

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

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

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


    1. anonymous
      00.00.0000 00:00

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


      1. micronull
        13.12.2022 08:22
        +2

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


        1. anonymous
          00.00.0000 00:00

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


        1. economist75
          13.12.2022 09:15
          +3

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


    1. antgubarev
      13.12.2022 10:36
      +1

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


      1. alexkil
        13.12.2022 13:09

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

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

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


        1. pecheny
          13.12.2022 15:44

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


          1. domix32
            13.12.2022 17:00

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


      1. domix32
        13.12.2022 17:02

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


  1. Fen1kz
    13.12.2022 08:50

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


    1. anonymous
      00.00.0000 00:00

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


      1. Fen1kz
        13.12.2022 09:30
        +1

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

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


        1. anonymous
          00.00.0000 00:00

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


        1. Fen1kz
          13.12.2022 20:05

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

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


          1. alzurken
            13.12.2022 20:16

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


    1. kasyachitche
      13.12.2022 09:06
      +2

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

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


    1. garwall
      13.12.2022 09:07
      +2

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


  1. garwall
    13.12.2022 09:08
    +4

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


  1. BitLord
    13.12.2022 10:04

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


    1. garwall
      13.12.2022 10:45
      +1

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


      1. BitLord
        13.12.2022 11:41

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


        1. anonymous
          00.00.0000 00:00

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


  1. SquareRootOfZero
    13.12.2022 10:15
    +9

    Пробовал, в очередной раз, перейти на это в начале ковидной эпопеи, когда мудрое начальство решило, что удалённо работать через удалённый рабочий стол через медленный корпоративный 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», внезпано посреди нигде и вспоминая «кто я? где я? что я там делал-то до того, как решил эффективно отредактировать текст?»


    1. vtb_k
      13.12.2022 11:08
      +2

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


      1. SquareRootOfZero
        13.12.2022 15:37

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

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


        1. vtb_k
          13.12.2022 16:08
          -1

          думаю я обычно медленнее, чем печатаю, даже с учётом мыши, так что пофиг.

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


          1. SquareRootOfZero
            13.12.2022 16:24

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


            1. vtb_k
              13.12.2022 16:57
              -1

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


      1. Pavel1114
        15.12.2022 14:59

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


        1. vtb_k
          15.12.2022 15:33

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


          1. Pavel1114
            15.12.2022 16:08
            +1

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


            1. vtb_k
              15.12.2022 16:49

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


              1. Pavel1114
                15.12.2022 18:55

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


                1. vtb_k
                  15.12.2022 19:05

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


    1. PeterFukuyama
      14.12.2022 00:40

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


      1. micronull
        14.12.2022 06:59

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


      1. SquareRootOfZero
        14.12.2022 08:08

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

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


  1. MentalBlood
    13.12.2022 10:39
    +2

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

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


    1. anonymous
      00.00.0000 00:00

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


  1. DeniSix
    13.12.2022 12:39
    +1

    В Nvim мышка включается отдельной командой в конфиге.

    Наоборот, она включена по-умолчанию.


    1. turbidit
      13.12.2022 15:49

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


  1. Dropsen
    13.12.2022 17:20

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

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


    1. MentalBlood
      13.12.2022 19:02
      -1

      Похоже, что


      1. Нет
      2. Нет

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


    1. vtb_k
      13.12.2022 19:34

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


      1. Tony-Sol
        16.12.2022 00:39

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

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

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


        1. vtb_k
          16.12.2022 00:40

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


    1. DeniSix
      13.12.2022 21:35
      +2

      1. lazydocker
      2. Это же консоль. Прямо в wsl и запускать.


  1. Dirlandets
    13.12.2022 17:22
    +3

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

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


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

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

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

    Из минусов:

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

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

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


  1. ojgenn
    13.12.2022 17:44

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


  1. Pavel1114
    14.12.2022 06:18

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


    1. vvzvlad
      14.12.2022 12:05
      +3

      Не надоело?

      Нет.


  1. le2
    14.12.2022 13:20

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


  1. SuperFly
    14.12.2022 19:45

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

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

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

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


  1. Mitai
    15.12.2022 17:12

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


  1. HelpOrMe
    16.12.2022 03:56

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

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