Как освоить Vim? +49


AliExpress RU&CIS

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

Я со всей уверенностью могу заявить о том, что Vim позволил мне повысить эффективность в деле написания программ. Работать стало удобнее (ниже я расскажу об этом более подробно). Я никому не хочу навязывать Vim, но очень рекомендую освоить этот редактор всем, кто занимается программированием, работает в сфере Data Science, в общем — тем, кто так или иначе пишет и редактирует некий код.



Если вам очень хочется узнать о том, стоит ли вам использовать Vim, и о том, кто и для чего им реально пользуется — взгляните на этот материал (кстати, не позвольте его названию, «Не пользуйтесь Vim», ввести себя в заблуждение). Ещё можете посмотреть это видео, которое, кстати, подготовил сам Люк Смит.

А теперь, учитывая всё вышесказанное, предлагаю поговорить о том, что такое, на самом деле, Vim!

Что такое Vim?


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

В Vim имеется несколько «режимов работы», переключение между ними приводит к изменению функционала клавиатурных клавиш (например, клавиша W в режиме вставки, что неудивительно, позволяет ввести букву w, а вот в нормальном режиме она позволяет перемещать курсор вперёд на одно слово). При таком подходе клавиатура используется и для ввода символов, и для перемещения по тексту. Другими словами — при работе в Vim не нужна мышь.

Это очень хорошо в тех случаях, когда нужно постоянно «переключаться» между редактированием и просмотром кода. Обычно программисты именно так и работают. Если вы раньше никогда не пользовались Vim для работы с программным кодом, то вы даже не замечаете того, как много времени тратится на то, чтобы снять руку с клавиатуры и потянуться к мыши (или к трекпаду), затем — на то, чтобы переместить курсор туда, куда нужно, и наконец на то, чтобы вернуть руку на клавиатуру и приступить к вводу текста (в общем — тратится очень много времени).

Конечно, на то, чтобы привыкнуть к Vim, нужно некоторое время. И это — не прямая замена какой-нибудь IDE или редактора вроде VS Code. Но можно сказать, что Vim позволяет тому, кто умеет им пользоваться, значительно ускорить работу с кодом. Кроме того, интересно то, что его более простым аналогом является Vi — стандартный текстовый редактор большинства Unix-подобных систем, работающий в терминале.

Как научиться работать в Vim?


?1. Используйте vimtutor


Меня не удивляет то, что в каждом руководстве по Vim рекомендуется начинать изучать этот текстовый редактор с vimtutor. Поэтому я, без зазрения совести, поступлю так же. Нет нужды играть ни в какие «Vim-игры» (хотя они и довольно интересны), или прибегать к программам, помогающим запоминать бесчисленные клавиатурные сокращения. Надо просто установить vimtutor и, когда найдётся 10-15 минут свободного времени, прорабатывать этот официальный учебник по Vim. И не пытайтесь сразу же запомнить все клавиатурные сокращения Vim; вы запомните их постепенно, снова и снова проходя уроки vimtutor.

Хочу отметить, что Windows-пользователям я рекомендую использовать WSL (Windows Subsystem for Linux, подсистему Windows для Linux) и для прохождения vimtutor, и, в целом, для работы с Vim. Лично я в Windows с Vim не работал, поэтому не могу обещать того, что при работе с ним в этой ОС всё будет точно так же, как в Linux.

?2. Постоянно пользуйтесь Vim


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

Используйте Vim как можно чаще. Нужно просмотреть текстовый файл? Запустите Vim. Хотите что-то по-быстрому изменить в Python-скрипте? Примените Vim. Делаете какие-то заметки? Делайте их с помощью Vim. В общем, полагаю, вы меня поняли. И каждый раз, когда работаете в Vim, всегда задавайтесь вопросом о том, какова наиболее эффективная последовательность нажатий на клавиши (то есть — наиболее короткая последовательность), позволяющая решить текущую задачу.

И попутно постарайтесь сократить использование мыши.

?3. Интегрируйте с Vim всё что сможете


Используйте клавиатурные привязки Vim везде, где это возможно. Начните делать всё, что сможете, «в стиле Vim». Например, если вы пользуетесь браузером, основанным на Chromium (Chrome, Brave, Edge), или браузером Firefox, подумайте об установке расширения Vimium, которое позволяет пользоваться в браузере клавиатурными сокращениями Vim, отвечающими за перемещение по документу (H, J, K, L и так далее).

Если вы пользуетесь для работы с кодом некоей IDE — найдите плагин или расширение для добавления Vim-привязок в соответствующую среду. Например, пользователи PyCharm (или любой IDE от JetBrains) могут воспользоваться ideavim. А пользователи VS Code (в 2021 году этот инструмент уже ближе к IDE, чем к обычным текстовым редакторам) могут прибегнуть к расширению VSCodeVim.

В Jupyterlab можно включить привязки Vim для встроенного текстового редактора путём установки jupyterlab-vim, что позволит полностью эмулировать Vim в ячейках блокнотов.

Постарайтесь органично интегрировать Vim в свою рабочую среду и несколько недель поработайте по-новому. Я могу говорить о том, что после нескольких VSCode-сессий в стиле Vim мне стало гораздо удобнее пользоваться этим редактором. А ещё — я очень рад избавлению от мыши!

?4. Перенастройте клавишу Caps Lock (но это необязательно)


Самая бесполезная клавиша, расположенная в самом лучшем месте клавиатуры. Именно так можно охарактеризовать клавишу Caps Lock. Поэтому советую превратить Caps Lock в Escape. Если вы интересуетесь Vim, то уже должны знать о том, что клавиша Escape используется в Vim для переключения режимов. Я очень советую тем, кто стремится к максимальной эффективности, воспользоваться вышеописанной модификацией.

Пользователи Windows и WSL могут использовать uncap — программу, которая превращает клавишу Caps Lock в Escape.

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

Если вы работаете в Linux — настроить всё как надо вам помогут StackOverflow и Google. Лично я (заслуженный пользователь Arch Linux) использую утилиту setxkbmap, с помощью которой делаю из Caps Lock ещё одну клавишу Escape. А потом включаю автозапуск утилиты при запуске системы:

setxkbmap -option caps:escape

?5. Глубже изучите Vim


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

  • ZZ — сохранить документ и выйти из Vim. Красивая команда.
  • zz, zt, zb — прокрутка текста, перемещающая строку с курсором, соответственно, в центральную, в верхнюю или в нижнюю часть области просмотра.
  • Ctrl+u, Ctrl+d — прокрутка области просмотра вверх или вниз на полстраницы.
  • ciw — (Change Inside Word) удаление текущего слова и автоматический переход в режим вставки.
  • C — удалить текст от позиции курсора до конца строки и перейти в режим вставки.
  • dt<char> — (Delete To <character>) удалить текст от позиции курсора до следующего вхождения указанного символа.
  • ~ — (тильда, на стандартной клавиатуре вводится клавишей, находящейся под Escape) переключение регистра (верхний/нижний) текущего или выделенного символа.
  • . — (точка) повтор последней команды Vim.
  • ggvG= — (перейти в начало файла, войти в визуальный режим, выделить весь текст до конца, выровнять выделенные строки) автоматическое выравнивание текста во всём файле.

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

Если вас интересуют другие команды Vim — посмотрите это замечательное и довольно длительное видео, демонстрирующее прохождение уроков vimtutor, которое записал Вим Дизель (шучу — это всё тот же Люк). Тут собрано множество полезнейших советов по Vim.

Итоги


Вероятно, сейчас вы уже достаточно хорошо освоили Vim и значительно повысили свою скорость работы с кодом. И вы наконец сможете похвастаться перед пользователями Reddit или перед коллегами своими отточенными навыками редактирования текстов, когда в ходе работы вам не приходится убирать руки с основной части клавиатуры. Когда вы достигнете подобного уровня, вы можете развиваться в сфере Vim и дальше. Например — в следующих направлениях:

  • Можно установить Neovim и поэкспериментировать с ним (это — отрефакторенный форк Vim, рассчитанный на высокий уровень расширяемости и на поддержку графического интерфейса).
  • Можно перенести функционал Vim в терминал или интерпретатор командной строки, воспользовавшись vim-airline.


Vim-airline, тема violet (источник)

  • Можно попробовать некоторые из популярных Vim-плагинов.

Желаю всем, кто дочитал до этого места, наслаждаться будущим, наполненным благами Vim (и освободиться от власти мыши или трекпада).

Пользуетесь ли вы Vim?




Комментарии (322):

  1. polearnik
    /#22768558 / +1

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

    ПО сравнению с какой программой? nanо, блокнот? НЕ сказал бы что у меня есть проблемы с скоростью написания кода. скорее проблемы с скоростью понимания но скакать по вкладкак довольно удобно и мышкой. а клавиши Page Up Page Down помогают делать это быстро

    • vvpoloskin
      /#22768876

      НЕ сказал бы что у меня есть проблемы с скоростью написания кода

      Ну так тут и не утверждают, что у вас есть проблемы с написанием кода.
      Написано же: ускорить работу с кодом.

      • warhamster
        /#22769102

        Как вим может хотя бы сравниться по скорости (я уж молчу о каком-то ускорении) в хотя бы такой банальной, но крайне нужной при чтении кода операции, как клик по имени функции/метода в идешечке?

        • vvpoloskin
          /#22769366 / +3

          Ну вы кликаете не мышкой, а комбинацией gd. Мышку при этом брать в руки не надо.

          • warhamster
            /#22769496

            Да, но сначала надо довести курсор до названия, а это уже чисто физически дольше. Есть, наверное, команда для поиска по названию, но если между курсором и нужным методом есть похожий текст — это поможет плохо.

            А если надо в обратную сторону — какой будет вимовский аналог «show usages»?

            • artemisia_borealis
              /#22769808

              это довольно быстро. Слэш набираете и далее то, что ищете
              /это_ищу

              Если похожее, то жмёте «N».
              А реальное преимущество перед мышью будет тогда, когда вы ищете то, что за пределом экрана.

              • DirectoriX
                /#22769852

                Ну прям как Ctrl+F, чудеса. Жаль, что vim найдёт аналогичные строки и, например, в комментариях. Или, например, если я хочу посмотреть все использования переменной i внутри цикла (и у меня есть другие циклы с такой же i) — vim будет искать аж по всему документу. Какая досада.

                • vvpoloskin
                  /#22769954

                  Ну хватит уже осуждать то, в чем не разобрались. В ВИМ полно вариантов для поиска внутри строки, файла, абзаца, фукнции и т.д.

                  • DirectoriX
                    /#22769970

                    И в целом проекте (размазанном по куче файлов) он тоже ищет?
                    А если у меня одна переменная перекрывает область видимости другой — он тоже это корректно обработает?

                    • vvpoloskin
                      /#22770288 / +1

                      И в целом проекте (размазанном по куче файлов) он тоже ищет?

                      Ну да. 7 лет назад я отлично изучал с помощью него кодовую базу django.
                      А если у меня одна переменная перекрывает область видимости другой — он тоже это корректно обработает?

                      Допускаю, что не для всех языков, но на C и Python с парой дополнений это делалось.

                • fkthat
                  /#22769978

                  А зачем средствами редактора текста делать то, что является задачей IDE?

                  • DirectoriX
                    /#22770014 / +16

                    Вот именно. Зачем вообще использовать vim для работы с кодом, когда это задача IDE? Конфиги — допустим, но код…

                    • wigneddoom
                      /#22770164 / +1

                      А код это всегда 100500+ строк размазаных по сотням файлов?

                      • DirectoriX
                        /#22770180

                        Не всегда 100500 строк в сотнях файлов, но зачастую хотя бы тысяча строк в десятке файлов.

                        • wigneddoom
                          /#22770392 / +1

                          Ну мне повезло. Тысяча строк в десятке файлов меня не ставит в тупик.


                          IDE безусловно удобная вещь, это ещё не говоря о языках/платформах где без неё вообще не возможно что-то вразумительное сделать. Например, разработка под Андроид.


                          Честно, я не понимаю вашего негатива в сторону vim. Может всё-таки разрешите людям использовать удобные им инструменты?


                          P/S. Тут ещё emacs фанаты не набежали, они бы вам рассказали про правильное сочетание клавиш.

                          • DirectoriX
                            /#22770426 / +9

                            Да редактируйте хоть sed'ом если вам так удобнее. Просто vim-фанаты обычно:
                            — Вот я попробовал vim и трава стала зеленее, а сахар — слаще. Короче, vim — лучше, чем любое другое средство редактирования, все переходите на него, карма очистится (даже на Хабре).
                            — Чем лучше-то?
                            — Чем другое средство редактирования.

                            • wigneddoom
                              /#22770514 / +3

                              А, ну это уже классика. Переход с обсуждения инструмента на его фанатов.

                              • DirectoriX
                                /#22770538 / +1

                                Не-не-не, вы прям сейчас посмотрите комментарии под этой статьёй (или любой другой про vim): все любители vim'а его прям боготворят, а как дело доходит до «всё равно лучше использовать IDE», так сразу «ничего не знаю, vim — это блокнот + схема управления». Потому что он и есть блокнот со своей схемой управления.

                                • wigneddoom
                                  /#22770630

                                  Нет ну сравнивать vim и блокнот (я так понимаю классический notepad.exe) совсем странно. Vim вполне можно допилить с помощью плагинов до "почти" IDE. Тем более что сейчас существует LSP. Да и сочетания клавиш можно запилить любые. Есть даже извращенцы которые Emacs mode делают.


                                  Vim корректнее было бы сравнивать с тем же Emacs, Sublime text (тоже кастати был очень популярным с армией фанатов), Notepad++ (на винду всегда ставлю).

                              • ghrb
                                /#22770612

                                А кому нужен софт без сообщества? Один из базовых критериев при выборе инструмента это состояние сообщества.

                            • vvpoloskin
                              /#22771146 / +7

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

                              • Arenoros
                                /#22772860 / +1

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

                                это абсурд, это ты привык думать в контексте vim, а не он такой удобный. Я пользуюсь vim когда нужно что то совсем небольшое поправить на удалённой машине, для этих задач он неплохо подходит, но ни чем не лучше nano или mc для тех кто привык работать с ними.
                                Но автор заявляет что VIM магическим образом позволит очень сильно ускориться при работе с кодом после глубинного понимания этой «волшебной» утилиты. Но это полный и бездоказательный бред. Единственный обоснованный плюс vim это наличие данного редактора на 99% posix платформ.
                                И мне абсолютно не понятно зачем из буханки хлеба делать автобус, а потом ещё и учиться его водить.

                                • bibiw_one
                                  /#22780722

                                  Наличие команд ускоряет работу с текстом
                                  В нано нет команд
                                  В вим есть


                                  Банальный пример, получить буст в скорости работы можно, перейдя с нано на вим и зная только лишь, как работает команда delete. Ситуации, когда необходимо удалить большое количество строк в каком нибудь конфиге, возникают очень часто, и в nano вы 20 раз нажмете ctrl+k, а в vim — выполните простую d20d. Одна только эта мелочь может сэкономить десяток секунд жизни. Из таких мелочей и складывается магическое ускорение работы. Когда знаешь и применяешь кучу возможностей вим, это становится реально заметно

                                  • Danik-ik
                                    /#22780834 / -1

                                    Как-то странно Вы скорость сравниваете. Где оценка времени на ТОЧНЫЙ подсчёт строк, которые надо удалить? Если их штуки три, выгоды нет, если штук двадцать девять — уже надо точно знать, СКОЛЬКО. Ошибся на одну — и никакого тебе преимущества. В классическом же редакторе я выделю строки почти не глядя, за исключением крайних строк. И удалю скопом


                                    Мне это напомнило анекдот, извините.


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

                                    P.S. Я не против vim, честно. На днях по приколу часа два в нём просидел, работая над примерами кода, и даже не заплакал ни разу, почти понравилось. Раздражали только длительная (четыре клавиши, Карл! Esc, :, w, Enter) команда сохранения файла и отсутствие сохранения по потере фокуса. Автосохранение по таймеру не предлагать, укушу.


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

                                  • unsignedchar
                                    /#22780862

                                    d20d


                                    Я, например, очень плохо измеряю на глаз, 20 строк надо удалить или 21. У меня так:

                                    d20d
                                    #fuck
                                    u
                                    d19d


                                    • fkthat
                                      /#22785418 / +1

                                      v20jkd а можно и просто по номерам строк сделать (нумерация-то, обычно, у всех всегда включена).

                                  • Arenoros
                                    /#22785016

                                    1. есть 100 других способов это сделать, включая подключение по sftp и редактирование хоть в visual code
                                    2. то что это ровно «20» срок совсем не очевидно, это ещё нужно напрячься посчитать

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

                                  • shutkarmannbii
                                    /#22785632

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

                                    • unsignedchar
                                      /#22785656 / +2

                                      Всё так. А если нужно выделить область между скобками (функцию в С/С++, массив, или кусок структурированных данных в пару мегабайт)?

                                      • shutkarmannbii
                                        /#22790398

                                        Не спорил с удобством вима или превосходством нано — просто был удивлен тому что надо нажимать 20 раз сочетание клавиш, вместо выделения области и удаления её

                      • unsignedchar
                        /#22770206

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

                    • fkthat
                      /#22770358 / +1

                      Затем, что именно редактиировать код в Vim на порядки удобнее чем в "традиционном" редакторе. У меня просто под Visual Studio стоит плагин VimVs, а под VS Code стоит VSCodeVim, и я могу одновременно, не переключаясь использовать все преимущества и фичи и того и другого.

                    • alsoijw
                      /#22770572 / +3

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

                      • Ryav
                        /#22775392

                        Посоветуйте для python, пожалуйста. Нужны autosuggestions и справка, запуск и отладка внутри vim.

                        • Edison
                          /#22785608

                          vim-lsp (или любой другой lsp клиент) — вот все что умеет lsp сервер, то будет и у вас, плюс сразу поддержка других языков. Go, C/C++, Rust, Python, etc.
                          Для деббага есть DAP — но еще сырое. Лично я больше на Go пишу и для деббага использую vim-delve.
                          Думаю для python тоже что-то есть.

                    • chapuza
                      /#22770810 / -4

                      Смотря про какой язык речь. Тонны бойлерлейта Java/C# действительно, наверное, удобнее ворочать в IDE.


                      Навскидку во всех без исключения остальных языках — хорошим разработчикам IDE только мешает.

                    • bibiw_one
                      /#22780728

                      А как вы сравниваете IDE и Vim? Можно пользоваться Vim для конфигов, и IDE с Vim плагином для кода, и использовать все плюшки мира)

            • wheercool
              /#22775434

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

            • z0h3
              /#22778026

              Спуститься в реализацию метода, он же show usages, если используется в определении метода: gd
              Обратно: Ctrl — o

              • warhamster
                /#22778048

                А как курсор-то поставить на нужное место? Двигать курсор — медленно, поиском — тот еще костыль.

                • z0h3
                  /#22778500

                  Можно по номеру строки:
                  :<номер строки>

                  но обычно в vim курсором перемещаются по файлу, поэтому проблемы, что курсор неизвестно где — не возникает, он уже итак где-то рядом с названием метода

                  • unsignedchar
                    /#22778520

                    номер_строки g

                    ;)
                    Ту же команду можно закодировать по разному. Забавно.

          • Arenoros
            /#22785028

            А когда есть 10 разных наследников на который из них оно меня приведёт? Или если нужно увидеть всех кто унаследовал этот класс? а какая команда развернёт C++ макрос? И самый главный вопрос дебажить код надо принтами или для реализации выпадающих списков при просмотре локальных переменных в точке останова тоже есть плагин?

        • Maccimo
          /#22777086

          И вы действительно кликаете?
          В любой нормальной IDE для этого есть горячие клавиши. В IDE от JetBrains это Ctrl-B, например.

          • warhamster
            /#22777284

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

            Симулятор, что ли, запилить, чтобы показывал случайный кусок кода и мерял затраченное время…

            • fkthat
              /#22777342

              Кликни мышью на конец файла в полтыщи строк, а я посмотрю. И поприкалываюсь. Для упрощения задачи можешь даже заранее руку на мышь положить. :))

              • unsignedchar
                /#22777354

                Ухватить мышью прокрутку, потянуть вниз до конца экрана.

              • DirectoriX
                /#22777362

                Прокрутить полосу прокрутки в конец — 1 секунда. Кликнуть — ну, пусть ещё одна (хотя наверняка меньше). 2 секунды максимум. За две секунды vim-пользователь нажмёт свои 1-2-3 (или сколько там надо) клавиш и будет с пренебрежением смотреть на мышеюзера всё оставшееся время, аж целую секунду. О ужас. Секунду!

              • warhamster
                /#22777502

                А как в виме выгляжит команда «перейти на вызов именно той функции, которая мне нужна, хоть я его еще даже не вижу на экране и про него вообще пока не знаю»? Это охренительно полезная штука, я ради нее одной готов ночами вим изучать.

                • unsignedchar
                  /#22777956

                  А как это выглядит в ${IDE}? Запишусь в очередь на изучение ;)

                  • warhamster
                    /#22778020

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

                    • fkthat
                      /#22779442 / +2

                      Ёмоё. Я уже устал писать. Я почти все время работаю в Visual Studio с плагинонм VsVim. Если мне надо перейти на начало/конец файла, то я нажму gg или G, если мне надо вырезать или скопировать строковой литерал, то я нажму dia или yia, и т.п., если же мне надо перейти на определение/реализацию/использование метода, то я просто нажму F12, или Shift-F12, или Ctrl-F12 (шорткаты Visual Studio), вот и все. Мне же в ответ все время пишут: "Если используешь vim, то значит отключай нах совсем мышь и ***дуй в свой vim". Разговор с глухим.

                  • dblokhin
                    /#22779382

                    Find Usages в JetBrains. Очень полезная штука.

                    • unsignedchar
                      /#22779468

                      Это везде есть.
                      «перейти на вызов именно той функции, которая мне нужна, хоть я его еще даже не вижу на экране и про него вообще пока не знаю» — это оно разве?

                      • dblokhin
                        /#22785382

                        Перейти на вызов функции (а их может быть несколько), хоть он даже не видит его на экране и вообще про него не знает. Оно.

                        >> Это везде есть.
                        В vscode, помню, не нашел как ни старался.

                        • unsignedchar
                          /#22785462

                          Значит не везде ;)
                          qtcreator, pycharm это тоже умеют.
                          vscode — тот ещё универсальный комбайн с кучей плугинов. Почти как vim :D

              • alklimenko
                /#22783914

                Ctrl-End почти везде работает

                • fkthat
                  /#22783962

                  Ты не поверишь, но в vim тоже.

                  • alklimenko
                    /#22785142

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


                    Я как-то пытался освоить vim, но для себя я решил, что он того не стоит. На его изучение нужно потратить довольно большое количество времени, а выгода непонятно когда наступит, учитывая что для большинства vim-овских команд в IDE (я сейчас, в основном, использую IDE от IntelliJ, но и в других будет +- также) есть свои аналоги — комбинации клавиш. И судя по всему, таких как я большинство.

                • Opensourcer
                  /#22792894

                  Действительно работает, но не на всех клавиатурах есть клавиша End. Мне например не очень комфортно печатать на большой клавиатуре, так что мне удобнее использовать Vim, в котором подобные клавиши чаще всего не требуются.

                  • alklimenko
                    /#22793058

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

                    • fkthat
                      /#22793704

                      Что-нибудь типа Ctrl-Alt-Shift+Shift+Space

          • fkthat
            /#22779476

            И вы действительно кликаете?

            Да, действительно. Все ищу способ, как бы еще одну мышь подключить под вторую руку. И тогда вообще можно будет еще и код писать на экранной клавиатуре. :)))

  2. ZiggiPop
    /#22768586

    1. Перенастройте клавишу Caps Lock (но это необязательно)

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

    • DmitryAnatolich
      /#22768794

      Ну нет, нет же!


      /sarcasm on
      Caps Lock надо переназначить на LCtrl/LControl (потому что emacs-ом надо пользоваться.)
      /sarcasm off,


      а нижнюю левую (у меня это fn) — уже на переключение языков.


      Еще можно нижнюю левую на один язык, а нижнюю правую пожертвовать для другого (и наклеить на них аутентичные надписи ЛАТ/РУС.)

      • Oxyd
        /#22769484

        Menu — переключение на En
        Shift-Menu — переключение на Ru
        И индикатор текущей раскладки становится не нужен!

      • rpg999
        /#22769756

        На макбуке у меня настроен так, чтобы при обычном нажатии Caps Lock она работала как Esc, а в комбинации с другой клавишей — как LCtrl. По мне удобно.

      • d7s2di
        /#22770096 / +1

        Кстати, LCtrl на месте капслока — место довольно каноничное. У меня такая вот клавиатура завалялась:

        тыц

        • DmitryAnatolich
          /#22770160 / +1

          Тут та же петрушка: Control (СУ) под мизинцом, внизу раздельные переключатели раскладки. Умели ведь!


          Кликми

          image

          • gatoazul
            /#22771034 / -1

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

            • DmitryAnatolich
              /#22771066

              Вот да! Помню, был у меня электронный словарь с фонетической клавиатурой (только обратной — от QWERTY) и это было чертовски удобно.

            • Oxyd
              /#22772294

              Не напоминайте мне об этой боли. Из-за этого мне пришлось, в срочном порядке, изучать ассемблер, по книжке Питера, нашего, Нортона. Потому что с такой раскладкой, без резидента переназначающего клавиши, играть на Искре 1030 в любимых леммингов (управление как на спектруме — qaop) не было ну совершенно никакой возможности! ;-)

        • Valery4
          /#22771566

          У меня и сейчас такая, но без надписей. Вот фото из сети

          Заголовок спойлера
          image

    • Imbecile
      /#22774696

      У меня четыре языка, так что не вариант. Чтобы однозначно переключиться на нужный, я повесил каждый язык на сочетания ctrl+1, ..., ctrl+4. То есть, не глядя ни на клавиатуру, ни на монитор, я могу однозначно выбрать язык, на котором пишу.
      И что вешать на капслок пока не очень придумал.

      • nad_oby
        /#22777088

        Четыре, это жестко.
        никогда так не замочивался, трех хватало, особенно мило когда хотя-бы один RTL язык.
        А Ctrl+num это жеш табы терминала, не?

    • Maccimo
      /#22777092

      Caps Lock совершенно точно не самая бесполезная клавиша. Клавише Fn это звание подходит гораздо больше. Или, если выбирать среди клавиш с индикатором состояния, то Scroll Lock.

      • DirectoriX
        /#22777102

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

      • geher
        /#22778396

        Бесполезных клавиш много разных. Только расположены они обычно не самым удобным или постоянным образом, чтобы на них вешать что-то полезное. Иногда они оказываются не такими уж и бесполезными.
        Fn во многих случаях не выходит за пределы самой клавиатуры (в смысле невозможно детектировать нажатие и отпускание программно, поскольку клавиатура не порождает код нажатия или отпускания сразу после Fn, только если после нее, соответственно, нажать или отпустить другую клавишу). Кроме того без него иногда недоступны PgUp, PgDn, Home и End. Да и всякие полезности через нее часто работают вроде управления яркостью экрана и громкостью звука, включением-выключением тачпада и т.п… А еще ее иногда вообще на клавиатуре нет.
        Scroll Lock часто расположен нестандартно (искал на своей клавиатуре, нашел — Fn+F12). На другой клавиатуре вообще не нашел.
        Не зря то же переключение раскладок часто вешают на Ctrl, Alt и Shift в разных комбинациях. Только это порождает свои проблемы, поскольку данные клавиши часто задействованы в других комбинациях, что часто приводит к спецэффектам (часто встречаю — MS Word, переключение по Alt-Shift, сразу после переключения раскладки часто переводит в меню, после чего клавиши с буквами приводят к выбору различных пунктов меню, когда безобидно, а когда и что-то серьезно-неприятное может произойти).
        Вот и получается, что CapsLock единственная "ненужная" клавиша, которая находится в подавляющем большинстве клавиатур на одном и том же месте, реально используется по назначению крайне малым количеством людей, почти не задействована в популярных и стандартных сочетаниях клавиш, иногда еще и состояние на клавиатуре подсвечивается. В результате прямо просится на место переключателя двух раскладок (при желании можно и трех, но это немного сложнее и не так удобно).

      • fkthat
        /#22781954

        Caps Lock совершенно точно не самая бесполезная клавиша. Клавише Fn это звание подходит гораздо больше. Или, если выбирать среди клавиш с индикатором состояния, то Scroll Lock.

        Ага. Особенно на ноутбуке, где, у меня, например, тот же Ins без Fn вообще не нажать. А переназначать Esc на ScrLock смысла нет, так как ScrLock удалена от букв еще дальше.

  3. jedecuz
    /#22768932

    позволяет пользоваться в браузере клавиатурными сокращениями Vim, отвечающими за перемещение по документу (H, J, K, L и так далее).


    Ну, вообще-то в наше время, в отличие от тех времен когда их вводили, уже и на всех клавиатурах есть стрелки и pgup-pgdn, и сам вим научился их понимать…

    "… вы что, до сих пор жарите сосиски на той маленькой сковородке?"

    • DmitryAnatolich
      /#22768964 / +1

      С одной стороны — да, а с другой у клавиш управления курсором те же проблемы, что у мышей:


      1. Надо убирать руки с «основной» клавиатуры.
      2. Местоположение не стабильно.

      • gatoazul
        /#22771040 / +1

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

        • DmitryAnatolich
          /#22771052 / +1

          Перерывы и разминку надо делать, а не полагаться на полумеры

          • gatoazul
            /#22772684

            Перерывы по определению короче, чем время работы. И перерыв можно пропустить, а работу — нет.

            • DmitryAnatolich
              /#22772698 / -1

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

    • phillennium
      /#22770404 / +1

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

      Правда, я всё равно пользуюсь стрелками просто из-за того, что привык по другим программам)

      • gatoazul
        /#22771046 / +2

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

        • phillennium
          /#22771236 / +1

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

          • DirectoriX
            /#22771256 / +3

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

            • phillennium
              /#22772338

              Клавиши HJKL нужны не для того, чтобы «писать со скоростью стенографистки», а для того, чтобы перемещаться по уже написанному. То есть никакого «думает быстрее, чем пишет» в их случае нет.

    • Xuxicheta
      /#22771024 / -1

      жарю. У меня нет стрелок, решил тут по старой памяти взять полноразмерную клаву — очень неудобно.
      Использую капс плюс qwe asd zx для навигации, получается прям быстрее.

    • saboteur_kiev
      /#22773230

      Это не столько vim научился их понимать, сколько терминал

  4. pmcode
    /#22769016

    Использование Vim как среды для разработки без плагинов невозможно. Так что, основная сложность тут будет мэйнтейнить персональный конфиг на 500+ строк. Примерно поэтому, когда я понял, что солидную часть времени я трачу не на собственно работу, а на настройку Vim, то ушел на VSCode. Даже на серверах его использовать уже не особо хочется.


    Жаль, что даже в рамках Neovim мало что меняется. Поддержки PCRE нет и не предвидится. Удаление текста как было реализовано через одно место, так и осталось. Мультикурсор только через сторонние плагины. Унылый VimL с его глобальной областью видимости и т.д.

    • Pavel1114
      /#22772088

      Есть варианты. Например сам vim я пользую только в консоли для быстрых правок. Для написания кода безусловно удобнее использовать IDE. Но к счастью одно другого не исключает и существуют плагины для большинства редакторов позволяющие внедрить самую востребованную функциональность vim. Такие же плагины есть и для браузеров. Добавляем к этому i3wm с vim подобными хоткеями и практически полностью отказываемся от мыши(изредка использую touchpad).

    • trdm
      /#22790466

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

      500+ строк — это фигня.
      У меня скрипты на javascript для Notepad++ (плагин jN) по объему к 400 кб. приближаются. В самом большом, реализующим Intellisense для js, vbs, php Intell.js — сейчас 3,5к строк. И все равно эта хрень довольно часто ошибается. :( Надо бы доделать.
      И в итоге функций не так уж и много добавил:


      Заголовок спойлера

      Скрипты->Список функций Ctrl+1
      Скрипты->Перейти к определению F12
      Скрипты->Вернуться назад Ctrl+-|Alt<-
      Скрипты->Пойти вперед Ctrl++|Alt->
      Скрипты->addToHistory..print
      Скрипты->Tags navigation
      Скрипты->Tags navigation->Перейти к тегу на выбор Ctrl+Shift+3
      Скрипты->Tags navigation->Список тегов script Ctrl+4
      Скрипты->Список объектов (Intell.js) Ctrl+2
      Скрипты->Список объектов тек.файла (Intell.js) Ctrl+3
      Скрипты->
      Скрипты->Включить отладку Intell Ctrl+Shift+F9
      Скрипты->Intelisense run ctrl+I
      Скрипты->Intellisense (вкл/выкл) ctrl+F8
      Скрипты->Перечитать шаблоны
      Скрипты->UntilMenu
      Скрипты->UntilMenu->UntilMenuCut
      Скрипты->UntilMenu->UntilMenuCut->Comment selection Ctrl+/
      Скрипты->UntilMenu->UntilMenuCut->Удалить строки длинее N Ctrl+Shift+K
      Скрипты->UntilMenu->UntilMenuCut->Обрезать строки длинее N
      Скрипты->UntilMenu->UntilMenuCut->testCMakeParser Alt+T
      Скрипты->UntilMenu->Разбить строки на сегменты по 110 симв. Ctrl+Shift+S
      Скрипты->UntilMenu->Удалить пустые строки Ctrl+Shift+E
      Скрипты->UntilMenu->VimComplete Ctrl+L
      Скрипты->UntilMenu->Сортировать строки
      Скрипты->UntilMenu->Сортировать строки Desc
      Скрипты->Закрыть окно сообщений Ctrl+Shift+Q
      Скрипты->Templater Shift+F12
      Скрипты->
      Скрипты->Скобки
      Скрипты->Скобки->Вставить последние 'скобки' Ctrl+B
      Скрипты->Скобки->Выбрать и вставить 'скобки' Ctrl+Shift+B
      Скрипты->Скобки->Выбрать и вставить 'скобки'-2 Ctrl+Shift+V
      Скрипты->Скобки->
      Скрипты->Скобки->Вставить скобки каждой строке
      Скрипты->Скобки->
      Скрипты->Скобки->Открыть каталог настройки
      Скрипты->Форматировать
      Скрипты->Форматировать->Форматировать Ctrl+Y
      Скрипты->Форматировать->Открыть конфигурацию tidy
      Скрипты->Форматировать->MinifyCSS
      Скрипты->Форматировать->Форматировать *.html (тек.дир) Ctrl+shift+Y
      Скрипты->
      Скрипты->Time addition(2.45+20 = 3.05) Ctrl+Shift+D
      Скрипты->Eval selection Ctrl+Shift+C
      Скрипты->sWaper Alt+W
      Скрипты->en/decode URI Ctrl+F6
      Скрипты->Punto switcher F6
      Скрипты->Text processors
      Скрипты->Text processors->Combine lines into paragraphs Ctrl+Shift+A
      Скрипты->Text processors->Объединить текст в строку Ctrl+Shift+P
      Скрипты->Отфильтровать текст по выделению Ctrl+Shift+L
      Скрипты->
      Скрипты->Тест квадратной скобки Ctrl+[
      Скрипты->Translate…
      Скрипты->Translate...->getWordTranslation Alt+F11
      Скрипты->Translate...->
      Скрипты->Translate...->To мessage
      Скрипты->Translate...->Append selection
      Скрипты->Translate...->Reaplece selection
      Скрипты->Translate...->
      Скрипты->Translate...->Edit translate file list
      Скрипты->Translate...->
      Скрипты->Translate...->E:\Utils_Dicts\001.txt
      Скрипты->Translate...->E:\Utils\Qdictionary7\Dicts\enrus.dic
      Скрипты->Translate...->E:\Utils\Qdictionary7\Dicts\rusen.dic
      Скрипты->Translate...->E:\Документы\Литература_English\Словари\001-Словарь.txt

  5. kgbplus
    /#22769100

    Помимо ZZ есть еще, не менее удобная, ZQ которая завершает vim без сохранения открытого файла.

  6. iiwabor
    /#22769346 / -1

    Помнится, когда я первый раз попал в Vim — я как минимум полчаса разбирался, как из него выйти. Какое сочетание клавиш не нажмешь, комп только квакает и ничего не происходит((( «Как выйти из Vim » — самый популярный запрос в гугле про Vim
    Если бы добрые люди не подсказали, застрял бы в нем навсегда.
    Это как до такого додуматься — «esc ->: -> q»

    • evgenyat
      /#22769758

      у меня это решалось проще: перезапуском компьютера :)

      • saboteur_kiev
        /#22773238

        Уверен, что на баше вычитали

        • evgenyat
          /#22779014

          Кстати, да, прочитал. Лет через 5 после своих попыток освоить VIM.

    • unsignedchar
      /#22770078 / +4

      ctrl Z
      ps
      kill -9 `pidof vim`

      • DirectoriX
        /#22770104 / -1

        И он останется висеть в списке остановленных, пока вы не fg'шнете его

        • unsignedchar
          /#22770142

          kill -9 достаточно эффективно убивает.
          Да, это не самый лутший способ выхода из vim, но мне помогло ;)

          • sirmax123
            /#22771562 / +9

            Да я 10 лет в vi работаю! Просто не знаю как из него выйти.

            • PmPozitron
              /#22775484 / +4

              на самом деле, Николай Васильевич Кнут не сжигал четвёртый том искусства программирования, а случайно удалил его, пытаясь выйти из vim ©

  7. d7s2di
    /#22769350 / +1

    Еще как пользуюсь. И для правки конфигов, и для мелкого программирования, во студенчестве делал в нем (в связке с LaTeX) курсачи, презентации и писал диплом. Почта, кстати, тоже на нем вместе с mutt. В браузере vim-образный tridactyl. В общем, зависимость этот редактор вызывает жуткую.

    Кстати, по поводу стрелочек (клавиш управления курсором) и hjkl. Мало того, что до стрелочек надо руку отрывать от алфавитно-цифрового блока, так еще и на многих ноутах они могут быть размещены совершенно «дизайнерским» образом.

    • Oxyd
      /#22769554

      В браузере vim-образный tridactyl.

      Я поступил радикальнее. Поставил qutebrowser


      так еще и на многих ноутах они могут быть размещены совершенно «дизайнерским» образом.

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


      Клавиатура для морожнопалочковопальцевых

      macpooke

      • d7s2di
        /#22770034

        Лет 10 тому назад, я активно пользовался conkeror'ом. Потом был uzbl.

        Главная проблема таких браузеров в том, что средства для подавления нежелательного контента сильно уступают таким вещам как ublock, umatrix, privacy badger etc.

        И если 10 лет тому назад с этим можно было мириться, завернув браузер через squid с тем же rejik'ом, то сейчас всякой динамической гадости и трекеров стало несоизмеримо больше.

        Потому пользуюсь обвешанной лисой. Благо, что хоть возможность худо-бедно изменять интерфейс через userChrome.css еще сохранилась.

        • Oxyd
          /#22772300

          В qutebrowser встроенный адблок. Особой разницы, по сравнению с той-же лисой или brave, не заметил. Единственное что немного печалит, так это отсутствие интеграции с KeePassXC. Но ничего, будет время, порефакторю свои workflow скрипты для i3wm, заодно попробую прикрутить keepassxc-cli к браузеру.

          • d7s2di
            /#22781880

            Главная претензия к встроенным adblock'ам — отсутствие element-hider'a. То есть, хочется иметь возможность вручную вырезать мешающий элемент, не полагаясь только на списки.

            Вместо keepass, по старинке, пользуюсь связкой текстовика, gpg и grep.

  8. DirectoriX
    /#22769748 / +3

    Vim — это один из примеров hard to learn, f**king hard to master. И если его использование для редактирования каких-нибудь конфигов на сервере я ещё могу понять (хотя у вас что, даже mc не стоит, что вы не можете более человеческий mcedit использовать?), то программировать в нём… Да будь он хоть трижды быстрым блокнотом, я думаю всё равно медленнее, чем пишу, а писать всё равно стоит в IDE из-за навигации, контекстного поиска, интеграции с отладчиком и т.д.
    А уж vi-расширения для браузеров — это, простите, что-то вида «я не смог адаптироваться к графическому миру, поэтому использую клавиатуру».

    • artemisia_borealis
      /#22769854

      Но к счастью во многих больших IDE есть поддержка vim-mode. Это по крайне мере msvc и PyCharm. Вроде и в VScode есть, но я им не пользуюсь.
      И представляю насколько уныло бы было без этих плагинов.

      Так что всё хорошо вместе.

      А про mcedit не понял:
      Если там нет vim mode, то на кой леший он нужен? Это же неудобно.
      А если есть? То на кой леший он нужен? Это же бессмысленно.

      • DirectoriX
        /#22769884

        Если там нет vim mode, то на кой леший он нужен?

        А на кой везде нужно пихать vim-mode? Родные средства навигации — это что-то плохое? Почему вы (и другие) считаете, vim такой мегаудобный — потому что «я потратил неделю на изучение этих сочетаний клавиш, теперь хожу и выпендриваюсь»? Или просто вы не в состоянии использовать что-то другое? Адаптируетесь плохо, например.
        Может, вы к смартфону тоже подключаете внешнюю клавиатуру, чтоб и там использовать vim-комбинации?

        • artemisia_borealis
          /#22769958

          А чего так пригорать-то?

          Что такое родные средства навигации? Родные для кого?

          Vim действительно удобный. И в некоторых (в большинстве) OS после установки (ещё без пакетов) в системе гарантировано есть vi (даже не vim). И какие-то настройки нужно призводить именно так.

          Зачем нужно изучать «родной» nano, mcedit и пр. со своими поистине интригующими новыми очень родными свойствами?

          Vim находится в актуальном состоянии, под множество ОС, действительно очень удобен.
          Никто его не превращает в IDE. Но поддержка в самих этих IDE vim режима намекает, что это довольно востребовано.

          • DirectoriX
            /#22769998

            Родные для кого?
            Для той программы, которой вы пользуетесь.
            И какие-то настройки нужно призводить именно так.
            Ну да, ведь мы же так часто пользуемся чистыми ОС приличный срок, и лишь потом dnf/apt-get install stuff.
            Зачем нужно изучать «родной» nano, mcedit и пр.
            Вы не поверите, но основные команды там прям на экране написаны, даже изучать не надо, достаточно просто в экран посмотреть.
            Но поддержка в самих этих IDE vim режима намекает
            Поддержка мыши или общепринятых Ctrl+X/C/V/F/H тоже намекает, что они очень удобны. А ещё они работают в гораздо большем количестве приложений сразу, без конфигурации.

            • wigneddoom
              /#22770360 / +1

              Для той программы, которой вы пользуетесь.

              Нет, для меня. Для той программы что я пользюсь запилили плагин с vim-mode. Это плохо?


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

              Зачем, если есть родной vi/vim?


              Поддержка мыши или общепринятых Ctrl+X/C/V/F/H тоже намекает, что они очень удобны.

              Конечно удобны и главное привычны, так или иначе но Windows занимает 90+ процентов дестктопа.


              А мне за 20 лет работы с Unix системами + X удобно то, что выделение сразу в буфер обмена копирует и фокус ввода за мышкой следующий.

              • DirectoriX
                /#22770398

                Это всё звучит как смесь стокгольмского синдрома и синдрома утёнка: «Я страдал, пока учил, но теперь я без него не могу жить. Поэтому хочу, чтоб он был везде»

                • wigneddoom
                  /#22770464 / +5

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


                  Желание сохранить удобный и привычный интерфейс это как раз нормально. Иначе бы не было столько плача про "Как плохо сделали в Win10 интерфейс".

                  • DirectoriX
                    /#22770478

                    Скорее «желание натянуть привычный интерфейс на всё, что запускается», потому что если для тех же IDE ещё можно понять, то для браузеров…

                    • wigneddoom
                      /#22770610 / -1

                      Про браузеры вам расскажут люди которые этим занимаются.


                      Лично я начал полноценно осваивать браузеры параллельно с vim. Поэтому привык к их интерфейсам. Так же и с MS Office, LibreOffice. Вообще нет проблем. Даже с Windows особых проблем нет, кроме упомянутого выделения — копирование в буффер обмена.


                      А вот с IDE, да. Прямо как собака Павлова — вижу код, значит :wa! Потому что работаю чаще c vim чем с IDE, поэтому и выход — установить vim плагин.

                    • Crandel
                      /#22773886 / -7

                      Скорее «желание натянуть привычный интерфейс на всё, что запускается», потому что если для тех же IDE ещё можно понять, то для браузеров…

                      Если ты даун, то и не поймешь никогда

                      • DirectoriX
                        /#22773916 / +1

                        Если ты даун, то и не поймешь никогда
                        Фу, как грубо. А самое главное — каково ваше обоснование? «Все вокруг мышеюзеры, а я — д'Артаньян»? Для себя можете хоть бинарно команды в USB отправлять, кнопка нолика под мизинцем правой ноги, а единички — под языком. Но оскорблять других просто ВОТ ТАК?
                        Может, у вас просто тяжёлый день выдался? Если так — советую поспать.

                        • Crandel
                          /#22778550

                          А самое главное — каково ваше обоснование?

                          Из-за таких идиотов, как ты все нормальные программы урезают функционал, потому что 90% даунов и домохозяек его не юзает, поэтому остальные обойдутся. Только дегенераты и нацисты навязывают всем свое мнение. Разве статья запрещает кому-то пользоваться ИДЕ? Или вас кто-то заставляет вим использовать. Статья написана вообще-то для тех кто уже сознательно выбрал писать в виме. Приперлись и доказываете, что только ваш способ удобен. Нифига мышь не юзерфрендли, шорткаты ускоряют работу в разы. Но тебе не понять, ты же с пеной доказываешь, что все, кто потратил время на это ошибаются. Хотя сам никогда не пробовал. Ты похож на слепого, что доказывает зрячему, что цветов не существует

                          • unsignedchar
                            /#22778914

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


                            Ужос какой. Ваше мнение безусловно более важно, ага.

                          • DirectoriX
                            /#22779310 / -1

                            все нормальные программы урезают функционал, потому что 90% даунов и домохозяек его не юзает
                            То есть вы хотите, чтобы каждая прпограмма поддерживала все функции всех предыдущих версий, а также ещё и имела встроенную интеграцию схем управления от других? Это как, запустил Word — а он не поддерживает vim-схему, значит сразу говно? Или, простихосподи, запустил Steam, а он тоже не поддерживает — тоже «дауны и домохозяйки» виноваты? Может, ещё и микроволновка должна перемещаться по столу, если на ней нажимать hjkl?

            • baldr
              /#22770406 / -1

              Поддержка мыши или общепринятых Ctrl+X/C/V/F/H тоже намекает, что они очень удобны.

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

              • DirectoriX
                /#22770526 / +3

                Не «бывает не так удобнее и быстрее», а «мне бывает не так удобнее и быстрее»

              • Timoffey
                /#22772592 / +2

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

          • gatoazul
            /#22771054 / +2

            Не знаю, с чего бы ВИМу быть таким уж удобным, если все его «фичи» разрабатывались под вполне конкретную древнюю клавиатуру, а вовсе не по принципам эргономики.

            • warhamster
              /#22771708 / +3

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

              • Oxyd
                /#22772312

                Угу. Объёмы кода. Да что там кода. Конфигов! Выросли в разы! И вим с этими объёмами помогает ну очень хорошо разбираться. Вы-ж не жалуетесь на то что linux яляется идейным продолжателем и носителем идей unix, родом из 1969-го. А MacOS, так и вообще прямой потомок этого самого unix.

                • gatoazul
                  /#22772688 / +1

                  Почему VIM, а не TECO? ТЕСO теперь вообще летать будет.

          • Weron2
            /#22771356

            В большинстве своем многие программы используют уже устоявшиеся комбинации клавиш:crtl+c ctrl+v. Почему-то в vim пошли своим путем

            • fkthat
              /#22771768

              Ctl-C/Ctl-V работают с буфером обмена. Где буфер обмена у консольного приложения?

              • DirectoriX
                /#22771948 / +2

                Вот прям вижу, как 100% пользователей vim и всяких vim-плагинов для приложений сидят исключительно в консольке. Вы, небось, тоже через elinks комментарий оставили?

                • fkthat
                  /#22771960

                  Нет, но Windows Terminal с PowerShell у меня запущен постоянно. И речь шла совсем не о том. Изначально Vi/Vim были консольными редакторами еще тогда, когда GUI с clipboard вообще не было. И вообще, как я уже и сказал — Ctl-C/Ctl-V вполне себе работают в Vim. Просто зачем мне, например, жать Shift, потом семь раз жать стрелку вниз, а потом еще жать Ctl-C, когда я в vim я для этого просто жму "7yy"

                  • DirectoriX
                    /#22771974 / +1

                    Если у вас GUI, то мышкой будет (потенциально) ещё быстрее, потому что не надо будет считать строки/слова/символы.
                    Если у вас CLI, то то же самое, потому что даже консольный режим в Linux'ах уже много лет как поддерживает мышь.

                    • Oxyd
                      /#22772334

                      А там и не надо считать. :set relativenumber включён постоянно и сразу кажет сколько строк нужно скопипастить/удалить/сдублировать/закомментировать etc.

                    • alsoijw
                      /#22772928

                      Если у вас GUI, то мышкой будет (потенциально) ещё быстрее, потому что не надо будет считать строки/слова/символы.
                      У вас есть опыт или вы пишите так вам хочется? Мне достаточно набрать vi" и я выделил текст в кавычках. Я за это время не успею перенести руку с клавиатуры на мышь и обратно, не говоря уже о том, что у меня нет опыта в шутерах, чтобы так быстро и точно, не промазав ни на символ, выделить текст. Номера строк отображаются слева, их не нужно долго считать, что позволяет довольно быстро, даже на созвонах подсказать в какой строке править текст.

                • Oxyd
                  /#22772328 / +2

                  Покажите мне буфер обмена в SSH сессии, буду вам премного благодарен. ;-)

                  • baldr
                    /#22776252 / -1

                    А Ctrl-w / Ctrl-y в bash — это не подойдет?

                  • DirectoriX
                    /#22776352

                    Знаете, в чём ирония? Вы наверняка открываете SSH-сессию из графической ОС (я крайне сомневаюсь, что ваш рабочий компьютер не имеет графического режима). А если вы работаете в графической ОС, то ваш терминал уже умеет работать с системным буфером обмена. Windows Terminal, MSYS Bash, Putty, XShell, Gnome Terminal — все они умеют копировать в системный буфер обмена текст с экрана, а также вставлять текст обратно из буфера.
                    Если вы назовёте графическую оболочку терминала, которая не умеет использовать буфер обмена ОС — я буду крайне удивлён, но благодарен за любопытную информацию.
                    UPD: только что проверил JuiceSSH на Android — она тоже умеет работать с системным буфером обмена.

                    • unsignedchar
                      /#22776424 / +1

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

                      • DirectoriX
                        /#22776466

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

                        • fkthat
                          /#22776486 / +1

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

                          • DirectoriX
                            /#22776520 / +1

                            Почему же не поверю, поверю. И даже поверю, что у вполне современных стоечных серверов тоже может быть исключительно CLI, да без мыши.
                            Правда, есть два нюанса: чаще всего код для них пишут не на них самих (а в изначальной статье рекомендуют именно программистам переходить на vim), и редактирование конфигов != программирование (я писал об этом где-то на этой самой странице). Если хотите — интерпретируйте мою мысль как «программисты, оставьте vim админам»

                            • fkthat
                              /#22776534 / +1

                              А потом такие "программисты" ставят IDE на сервер. Видел, знаю.

                              • DirectoriX
                                /#22776548

                                Ну знаете ли, некоторые и на Node.JS (и именно на JS, даже не TS) пишут части бекенда, в которых критична скорость и надёжность. А кто-то всерьёз заявляет, что подставки из красного дерева для акустического кабеля звук очищают от помех.
                                Если человек, грубо говоря, не очень умный, то ему и пристрастие к vim не поможет. А если достаточно умный — он сам решит, что эффективнее использовать для задачи: vim, VS Code или вовсе скрипт на AWK написать.

                    • fkthat
                      /#22776450

                      Я как бы писал об этом выше. "Терминальный" копипаст совершенно спокойно работает в терминальном виме. Это же терминальное приложение — с чего бы ему там не работать. Просто мне, например, он нафиг не нужен, потому что копипастить какой-то от балды произвольный текст никогда вообще нет надобности, всегда работаешь с какими-то логическими блоками (например "вырезать/скопировать весь текст между скобками), а для этого куда как удобней вимовские команды.

                      • DirectoriX
                        /#22776484

                        Если вы работаете исключительно в рамках одного приложения (будь то vim, emacs, mcedit или ещё что угодно консольное) — безусловно, вам без разницы что использовать, тут на первое место выходят исключительно личные предпочтения.
                        Однако как только вам понадобится взаимодействовать с другими приложениями (коллеге в Slack задать вопрос и приложить кусочек кода, скопипастить из Stack Overflow или ещё что угодно) — вы будете вынуждены использовать команды терминала.
                        Вы можете сказать «при чём тут другие приложения, мы тут vim обсуждаем», но учтите, что мой предыдущий комментарий — это ответ на

                        Покажите мне буфер обмена в SSH сессии

                        • fkthat
                          /#22776526

                          Однако как только вам понадобится взаимодействовать с другими приложениями (коллеге в Slack задать вопрос и приложить кусочек кода,

                          Вовсе нет. Если мне надо скопипастить в слак, например, абзац, внутри которого я нахожусь, то я просто нажму "+yip


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

                          • unsignedchar
                            /#22776622

                            "+yip — 5 кнопок, нужно запомнить. А выделить и скопировать первые 4 аргумента функции, например? Vs 1 движение мыши, которое работает одинаково что для абзаца, что для предложения.

                            • DirectoriX
                              /#22776626

                              С учётом Shift — 6 кнопок (при условии, что это именно "+, а не «кнопки с "+» и можно использовать '=)

                              • fkthat
                                /#22776678

                                С учётом Shift — 6 кнопок

                                А для мыши можно еще посчитать миллиметры, которые ею проехать надо, и нажатия кнопки мыши, и Ctrl-C за две кнопки.

                                • DirectoriX
                                  /#22776744

                                  Лучше вообще считать не нажатия кнопок, а суммарное время выполнения всех операций с текстом за час/день, с учётом «блин, да что ж там за кнопка-то, v или S» (независимо от наличия vim-штуки, я, например, в VS Code часто пытаюсь переключить заголовочный/исходный файл с помощью F4, потому что много работал в Qt Creator'е).
                                  Если у вас в вашем vim/Neovim/IDE с vim-плагином получается быстрее, чем в Notepad++/IDE без vim-плагина — вам, конечно, имеет смысл использовать vim-штуки. Если же vim-штуки тратят больше времени, то вы лукавите, возможно даже самому себе.
                                  В любом случае, никто не заставляет вас резко отказаться от вашего уклада.

                                  • fkthat
                                    /#22776758

                                    вы лукавите, возможно даже самому себе.

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

                              • unsignedchar
                                /#22776680

                                Вот именно. Vim позволяет делать очень крутые трюки с текстом, но запоминать правила составления заклинаний — :-/

                                • fkthat
                                  /#22776746

                                  Да вот как раз в вим все легко запоминается. Я бы мог и в обычной VS все нужные мне команды к шорткатам попривязать, только вот там я бы уже точно хрен что запомнил типа каких-нибудь Ctrl-Alt-K-Shift-F

                            • fkthat
                              /#22776664

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


                              И запоминается, кстати, очень легко если знать. "+ — использовать буфер обмена, y — "копировать", ip — "абзац". Два-три раза так сделаешь, а потом уже это делаешь вообще на автомате буквально одним движением. Тут, вот, например, сказали, что ZZ это "сохранить и закрыть файл", а я, если честно, про это даже и не знал — всю жизнь просто уже рефлекторно жму :wq и все, но надо будет теперь ZZ тоже попробовать :)

                              • DirectoriX
                                /#22776714 / +1

                                Не троллинга или хейта ради, а интереса из-за спрошу: правда ли, что вы вообще не убираете руки с клавиатуры с момента начала работы и до перерыва? Я не могу поверить в это, если это правда, а если не правда, то все «это быстрее, чем убирать руку с клавиатуры» звучат несколько натянуто.

                              • unsignedchar
                                /#22777344

                                Только что проверил
                                "+yip — копирует, но не в системный clipboard, а во внутреннй буфер vim. Немного не то.
                                y4t, — ничего не выделяет и не копирует.

                                • fkthat
                                  /#22777360

                                  Ок. Пускай не копирует.

                                  • DirectoriX
                                    /#22777382

                                    А вот не ОК.

                                    Если мне надо скопипастить в слак, например, абзац, внутри которого я нахожусь, то я просто нажму "+yip
                                    Вставьте в Slack из буфера vim'а, желательно без команд терминала-оболочки.
                                    Everybody vim-gangsta until «ну значит нельзя».

                                    • fkthat
                                      /#22777406

                                      Ну сказали же, что не работает, значит не работает :)))

                                      • DirectoriX
                                        /#22777410

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

                                        • chapuza
                                          /#22777862 / +1

                                          IDE vs vim — это вовсе не спор, это как лакмусовая бумажка: если человек топит за IDE, почти наверняка писать код он умеет только по подробной подсказке, на среднем уровне. Чтобы убедиться в чем-нибудь — ему всегда хватает версии «Мойша напел».


                                          Я никогда не встречал настоящих профессионалов, которым бы требовались «умные» среды разработки.


                                          Так вот. В дебианах системный клипборд по умолчанию отключен. Надо накатывать что-то типа gtk-vim. fkthat просто уже от усталости и твердолобости собеседников перестал воспринимать этот разговор всерьез, да и зачем?

                                          • unsignedchar
                                            /#22777988

                                            Если некоторые заклинания работают только у автора, и он не может объяснить почему — из этого следует, что он крутой профессионал В VIM. Ну ок ;)
                                            Не знаю, как у крутых специалистов по набору и копированию, а у меня чаще всего чтение и поиск (по всему проекту). Тут ide удобнее.
                                            А иногда нужно смотреть какие то diff'ы — тут vim удобнее. Или преобразовать кусок файла из одного формата в другой без скрипописания — тут vim вне конкуренции.

                                • borisxm
                                  /#22778760

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

                                  :echo has('clipboard')

                                  Если «1», значит все должно работать (у меня прекрасно работает).

                                  • Edison
                                    /#22782054

                                    90% комментирующих не смогли разобраться с clipboard в vim и комментируют, что "НЕ РАБОТАЕТ!!11".
                                    (сейчас будут писать — "это мне надо потратить время чтобы просто настроить клипбоард" — не хотите не тратьте, только не надо писать что не работает)

                            • fkthat
                              /#22776716

                              А выделить и скопировать первые 4 аргумента функции, например?

                              y4t,

                              • unsignedchar
                                /#22776764

                                Func1(a,b,
                                Func2(x,y),
                                c,d,e)


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

                                • fkthat
                                  /#22776804

                                  Ну я такое никогда не напишу (и у нас в команде тоже не напишут, ибо правила для стиля), так что мне по большому счету все равно. Но, если так надо, то visual mode или маркеры никто не отменял. И даже выделение мышью (сюрприз!) тоже работает точно так же как везде.

                        • Edison
                          /#22782032

                          ну это не правда, у меня vim янкает в системный clipboard — выделяю кусок код, жму y и потом ctrl-v браузере.
                          Если надо ставить что-то в терминал — у меня в tmux prefix+p вставляет (по аналогии с vim). Еще у меня есть десктоп в офисе, когда удаленно работаю по SSH, так


                              ForwardX11 yes
                              ForwardX11Trusted yes

                          и теперь я могу y в vim на удаленном сервере и и ctrl+v в браузере у себя на локалхосте.

                  • borisxm
                    /#22778768

                        ForwardX11 yes
                        ForwardX11Trusted yes
                    

                    подойдет?

            • Oxyd
              /#22772324 / +1

              Это не устоявшиеся комбинации. Это просто стандарт. (Привет IBM CUA93!). Но это стандарт на взаимодействие с графической оболочкой и софтом под неё. Родился он благодаря тому, что софтописатели 80-х лепили хоткеи кто во что горазд (до сих пор помню хоткеи word-star подобных текстовых редакторов Ctr-K-C, Ctrl-K-V и это вот всё), но вы-ж не жалуетесь на то что в мире далко не один стандарт, ну например на пивоварение. Просто кому-то ближе ибм-овский стандарт (который приняли Apple и Microsoft) и активное использование мыши, кому-то вим-биндинги, которые хоть официальным стандартом и не являются, но тем не менее активно используются.

              • sshikov
                /#22772982 / +2

                А при чем тут мышь? CUA не предполагает ее наличия, в общем случае. Стрелки — это перемещение, стрелки + ctrl — это быстрое перемещение (по словам), стрелки + shift — это перемещение и выделение, home/end/pgup/pgdn — это перемещение на начало/конец/по страницам, и тоже можно совмещать с модификаторами. И это таки не просто стандарт, а широко используемый стандарт, первая версия которого появилась еще до графических оболочек, под DOS уже была.

            • edo1h
              /#22779012

              Почему-то в vim пошли своим путем

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

    • fkthat
      /#22769880

      У vim очень легко запоминающиеся команды, если понять принцип. Наример, если просто запомнить, что "d" это удаление, то сразу же запоминается, что "dd" это удаление строки, "12dd" это удаление 12 строк, "d7w" это удаление 7 слов вперед, "dG" удаление до конца файла и т.д. Так же и со всем остальным.

      • DirectoriX
        /#22769924

        «d» это удаление
        Допустим
        «dd» это удаление строки
        Удаление-удаление — это строка… как-то странно, но ок.
        «12dd» это удаление 12 строк
        Ага, число + команда = «выполнить команду Х раз»
        «d7w» это удаление 7 слов вперед
        Так, стоп. Почему число внутри команды? Почему не 7dw? Или, аналогично, почему удаление 12 строк не d12d?

        • fkthat
          /#22769948

          "Число + команда" — повторить команд число раз. "Команда + перемещение" — применить команду к тексту в пределах перемещения. Поэтому "12dd" и "d7w" сработает, а "d7d" скорее всего нет.


          "12dd" — "12 + удалить строку"
          "d7w" — "удалить + перемещение на 7 слов вперед".

          • DirectoriX
            /#22770054 / +3

            То есть вторая d в dd — это перемещение? Одна и та же буква меняет значение в зависимости от положения в команде?
            Вы, конечно, простите, но это примерно та же самая причина, по которой римские цифры сложнее арабских — «символ тот же, но если слева, то вычитаем, если справа прибавляем».

            • fkthat
              /#22770338 / +2

              Нет. Обычно дубль команды это "применить команду к целой строке". Например: ">>" это табуляция текущей строки, а ">}" или ">%" это соответственно табуляция абзаца или "блока" кода. А есть еще не только перемещения, но и "диапазоны" (ranges). Например, ">i{" это табуляция всего, что между ближайших охватывающих фигурных скобок, а "diw"/"yiw" это удаление/копирование всего слова на котором курсор и т.п.


              Некоторые неудобства в Vim это м.б. копирование/вставка между буфером обмена UI (хотя, в большинстве случаев, Ctl-C/Ctl-V будут работать), и случаи, если надо постоянно переключаться между кириллицей и латиницей (решается настройками)

            • unC0Rr
              /#22773874

              С тем же успехом можно сказать, что римские проще: палочка всегда означает единицу, а крестик — десять. В то время как арабские — «символ тот же, но если слева, то десятки/сотни/т.д., если справа — единицы».

        • Rrs
          /#22770908 / +2

          7dw тоже работает, как и d12d

          • fkthat
            /#22771074 / +1

            Да, проверил, работает. Просто как-то по привычке удобней 12dd нажать (потому что дважды жмакнуть на d проще). Вот чего так и не могу осилить, как ">" применить, скажем, трижды к двум строкам? Делаю "2>>..", потому что другого по сей день в голову так и не пришло.

            • alsoijw
              /#22771318 / +1

              Не уверен что понял, но разве не так? vj3>

              • fkthat
                /#22771338

                Да, сработает. Но это с visual mode, а с ним-то вообще все что хочешь можно. Вот, интересно, как бы без него.

        • fkthat
          /#22779046 / +1

          Удаление-удаление — это строка… как-то странно, но ок.

          Согласен, страннее некуда. То ли дело логичное и очевидное Ctrl-Shift-H для замены текста.

    • d7s2di
      /#22770040 / -1

      более человеческий mcedit

      Смешно.

      • sirmax123
        /#22771572

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

      • Oxyd
        /#22772340 / -2

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

        • DirectoriX
          /#22773758 / +1

          Вы серьёзно? mc для консольного режима, конечно не необходим, но он значительно позволит сократить время и нервы при манипуляциях с файлами. Или вы на каждый случай будете писать ls-cd-ls-mv-mv-mv-ойнетадиректория?

          • saboteur_kiev
            /#22774634

            Тут можно поспорить.
            Если вы сисадмин-эникейщик, ковыряетесь с разными системами, разными файлами — то возможно mc вам сокращает нервы.
            А в моей практике, я обслуживаю одинаково настроенный парк или дженкинс нод или кластеров или софта, который разрабатываем мы, имена файлов почти известен наизусть. И тут даже ls не всегда нужен…

    • DieSlogan
      /#22770300

      Навскидку:
      У VIM хорошая подсветка синтаксиса
      Во времена тормозящих удаленных шеллов редактировать файлы было еще той задачей
      Пакетная обработка файлов и макросы

      • alsoijw
        /#22770606 / +2

        У VIM хорошая подсветка синтаксиса
        У vim модсветка синтаксиса на регулярках, со всеми вытекающими: длинные строки не подсвечивает, в сложных файлах(когда комбинируется сразу несколько синтаксисов, например php(js, html и сам php) она часто ломается, и иногда чинится прокруткой вверх, иногда нет.

    • Oxyd
      /#22772304 / +1

      А уж vi-расширения для браузеров — это, простите, что-то вида «я не смог адаптироваться к графическому миру, поэтому использую клавиатуру».

      Нет. Это банально быстрее. Пример — открытие ссылки. Пальцы гораздо быстрее нажимают две-три клавиши (в зависимости от количества ссылок в видимой области страницы), чем перемещение правой руки к мыши, перемещение самого курсора мыши и клик. Даже на ThinkPad, где руку к мыши перемещать не нужно, курсор ведомый трекпойнтом моментально к нужной ссылке не переместится. В случае-же вим биндинга, ссылка открывается со скоростью мысли.

  9. MuuNu
    /#22769760

    Осваивать Vim — это, пожалуй, страшно. Или, точнее, очень страшно

    Никогда если честно, не понимал — почему вима так боятся.
    Чтобы пользоваться примерно на уровне обычного блокнота Windows — нужно освоить не много клавиш. Это «hjkl» (Либо стрелочки для казуальщиков) для перемещения, «i» для вставки и «o» для вставки новой строки, «esc» для выхода из режима редактирования и :w/:q/:wq для сохранения/выхода/сохранения и выхода.

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

    Кроме того есть vimtutor, с которым во всём можно разобраться буквально за 2 дня

    • mike66
      /#22770780 / -2

      Разбираться 2 дня, что бы «просто набрать текст». Вы сами вдумайтесь в абсурд этой ситуации.

      • alsoijw
        /#22771326

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

      • fkthat
        /#22771348

        Чтобы "просто набрать текст" для освоения хватит минут 15.

        • sshikov
          /#22773000

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

          P.S. При этом я лично ни разу не фанат vim, и при наличии возможности предпочитаю пользоваться mc.

          • DirectoriX
            /#22773776

            Страшно прочитать пару страниц инструкции что-ли, до того как начинать пользоваться?
            Так дело в том, что большинство других редакторов (кроме emacs, пожалуй) вообще не требуют накаких инвестиций времени в мануалы перед началом работы. А из vim'а вы натурально не сможете выйти, если никогда не сталкивались.

            • sshikov
              /#22773846 / -1

              >А из vim'а вы натурально не сможете выйти, если никогда не сталкивались.
              Ну да, этот анекдот уже тут рассказали :) Однако хочу заметить, что там есть хелп — а значит его можно прочитать. Ну т.е. я бы просто называл это ощущение слегка иначе. Неспособностью читать мануалы, например, или даже скорее нежеланием. Потому, что если вы возьмете другой текстовый редактор, ну допустим Xedit, то там тоже чтобы выйти, нужно ввести команду. Если вы ее не знаете — то у вас тоже будут проблемы. Quit или Exit? Это тоже страшно? Ну в общем, слово страх тут как-то не очень уместно выглядит.

      • geher
        /#22773500

        Разбираться 2 дня, что бы «просто набрать текст». Вы сами вдумайтесь в абсурд этой ситуации.

        "Лучше день потерять, а потом за полчаса долететь".


        А на самом деле vim не так страшен, как его порой малюют.
        При необходимости могу легко с ним справиться (и даже справляюсь, когда надо бывает).
        Но все же не люблю его. Причем не за клавиатурные сочетания, а за необходимость переключения между тремя режимами как минимум (вставка, навигация и ввод команд).
        Причем режимы эти визуально отличимы очень плохо. Чуть не дожал кнопку или промахнулся — и несколько секунд дезориентации обеспечены. Тут простые переключения раскладки и режима вставки/замены иногда доставляют. А в виме еще "веселее" получается.

        • Aldrog
          /#22774916

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


          Чуть не дожал кнопку или промахнулся — и несколько секунд дезориентации обеспечены.

          В любой непонятной ситуации можно ещё раз нажать Esc.

          • geher
            /#22777052

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

    • FibYar
      /#22770860 / +3

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

      • alsoijw
        /#22771328

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

    • saboteur_kiev
      /#22773248

      Ну вот автор сказал, что ему было очень страшно, но почему не объяснил ;)

      Я вот тоже не понимаю этих прыжков вокруг сложности vim.

      Когда я был зеленый, и не знал о *никс ничего, мне показали как подключаться по ssh и как редактировать текстовый файл через «vi », и пару хоткеев. Остальное man vi. И я просто так и делал, без лишних стонов «а где тут мышка и любимый блокнот/ворд». Так и освоил.

  10. fkthat
    /#22769898

    За статью респект. Сам использую его где только можно (плагины к VS и VS Code, консольный Vim, как замена notepad), и, CapsLock, как раз, уже давным-давно переназначен на Esc :)

  11. unsignedchar
    /#22770122

    А еще в vim есть замечательный режим vimdiff, ещё более замечательный режим накладывания патча прямо из .diff файла, киллер-фича «прогнать выделение через однострочный фильтр на шелле»… Ради этого приходится терпеть странные комбинации клавиш ;)

  12. ogost
    /#22770282 / +2

    Я уже лет 5 с вим-биндингами везде, где можно(wm, IDE, браузер, шелл), из них года 2 вместо полноценного IDE использовал vim/neovim с плагинами, свистоперделками, пасъянсом и поэтэссами. Измеримого ускорения в наборе текста/кода я не заметил (тем более есть коллеги, которые ещё быстрее меня набирают и без всякого vim-а), но удобно, это да, гораздо удобнее, чем выделять/кликать мышкой или в раскоряку нажимать хоткеи типа alt+shift+blahblah. И потом, главное в програмировании не скорость набора текста, чай мы не секритутки, а суровые code mokey.
    Капс у меня переназначен на смену раскладки, короткое нажатие шифта — на ESC.
    Писать код в виме перестал, это возможно, это удобно, но зачем, если есть продвинутая IDE? Сейчас максимум — править удалённо конфиги на сервере.
    Изначально перешёл на вим из-за боли в запястье — туннельный синдром сказывался. Не могу сказать с уверенностью, что именно вим спас меня, но тем не менее работать стало ощутимо легче — не нужно было пользоваться мышкой и раскорячиваться с хоткеями, а потом и боль ушла.
    Порекомендую ли вим — определённо да. Заставляю ли, агитирую ли, призываю ли — определённо нет, если вам и так удобно — зачем что-то менять?

  13. dblokhin
    /#22770382

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

    Спойлер
    Спойлер-ссылка в хабре кстати не отрывает вимиум. Он видимо ждет именно клика :)

  14. phillennium
    /#22770418 / +3

    ZZ — сохранить документ и выйти из Vim

    Много где пишут про этот вариант, но почему-то почти нигде про делающий то же :x, а мне он почему-то кажется удобнее.

    • Oxyd
      /#22772360 / +1

      :x клавиши находятся в разных частях клавиатуры. Надо две руки. В случае ZZ, это две соседние клавиши — левый шифт и Z. Почти как даблклик мышкой.

      • phillennium
        /#22772366 / +1

        В случае ZZ, это две соседние клавиши

        Спасибо, стало понятнее, почему расхожусь с предпочтениями большинства: у меня они не соседние) Ну и ещё мне нравится, как :x соотносится с :w — в голове эти две вещи логично рядом укладываются.

  15. RomeoGolf
    /#22770762 / +16

    Вбрасыватели «VIM vs IDE» — угомонитесь, пожалуйста. Нет никакого «vs». Никто не заставляет никого вылезать из уютной IntellijIDEA, нырять в темный страшный vim и собирать в нем ынтырпрайз-проекты на яве. Есть дохренищщщща задач для нормального текстового редактора вне IDE и помимо конфигов. Вот просто навскидку, первое, что в голову приходит:
    — тексты с не-WYSIWYG разметкой: LaTeX, markdown и подобное. Особенно если это надо лишь время от времени, а не 40 часов в неделю
    — старые языки, например asm PDP-11. Представьте себе, он еще не помер, и процессор серийно выпускается.
    — новые языки, например, ассемблер NM6403-6407.
    — Чужие языки, например, надо чей-то код внезапно однажды на питоне посмотреть и поправить, хотя по работе питон не нужен от слова абсолютно.
    — огромные по размеру таблицы данных в виде plain text, которые завесят наглухо практически любой другой редактор. Причем, с прекрасной возможностью поиска по этим данным путем регулярок, а также выборки нужной пачки этих данных.
    — сложные и регулярные манипуляции с текстом, например, периодически необходимое преобразование опять же данных, полученных в текстовом виде (результаты записи контрольных приборов, полученных от сторонней организации, повлиять на формат записи нельзя), с выборкой и заменой части этих данных по какому-то (не буду слишком подробно) правилу, тут скрипты vim влегкую уделывают любые макросы. Причем, макросы там тоже есть.
    — необходимость работать с зоопарком кодировок с перебросом текста на кириллице из одних кодировок в другую — vim удивительно всеяден и позволяет делать это настолько легко, что не надо совсем задумываться над процессом и последовательностью операций.

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

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

    Это кое-что из того, что в моей повседневной работе встречается более-менее регулярно. И VIM здесь великолепен портясающей настраиваемостью, подсветкой синтаксиса под все, что надо (и очень легко добавить еще), скриптуемостью, всеядностью по кодировкам, форматам конца строки и размерам, кучей возможностей редактирования, поиска и замены из коробки, переносимостью между кучей ОС (забрал свой vimrc — и на чужой машине ты как дома), встраиваемостью сторонних утилит в процесс редактирования и поиска (типа ctags из простого), и, черт побери, ругаемой всеми модальностью, которая поначалу кажется чем-то диким, а потом не понимаешь, как без нее другие обходятся. Многое из этого (и еще много чего не перечисленного) есть и в других редакторах, но все это есть в одном месте. Наверное, emaсs не хуже. Говорят, в принципе, такой же, я не пробовал. Но nano, mcedit и тому подобное… Конфиги править — может быть.

    Да, для шарпа я буду пользоваться студией, для явы — идеей, благо теперь есть и бесплатные версии, возможностей которых для меня хватает. Но IDE для LaTeX? Для PDP-11? Или вспоминать, как работает iconv (передаваемы параметры и все такое), и где-то добывать ее под винду, когда интернета на рабочей машине нет, и вообще он далеко?

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

    • phillennium
      /#22771250 / +4

      Прекрасный комментарий, по-моему, его можно (после небольшой доработки) отдельным постом публиковать)

  16. RomeoGolf
    /#22770826 / +4

    А по поводу титульного вопроса статьи — вот мой рецепт:
    1) при возникновении необходимости сделать какое-то действие, например, промотать открытый файл, в котором курсор на нижней строке так, чтоб строка с курсором стала посередине, не тянуться к мыши с колесиком прокрутки, а выяснить (:help, google, stakoverflow) как это делается в vim. Это будет поначалу дольше, чем крутнуть ролик, но это еще учеба
    2) записать в шпаргалочку: «zz — прокрутить строку с курсором в середину окна»
    3) после разрастания шпаргалки больше двух страниц а5 упорядочить подсказки по темам: поиск, редактирование, настройка, командная строка, регистры вставки и т. д.
    4) при возникновении предпосылки к п.1 сначала смотреть свою шпаргалочку.
    5) изредка пересматривать шпаргалочку и удалять то, что уже прекрасно запомнилось.

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

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

    • DirectoriX
      /#22771144 / +1

      Надо свое подмножество выяснить опытным путем и отточить.
      При условии, что вам вот действительно нужен именно vim и никаких более user-friendly альтернатив нет и не предвидится. В противном случае 99,9% пользователей проще сразу взять что-то иное. Да, пусть там надо будет вместо 4 клавиш нажать 8, зато гораздо быстрее освоить.

      • RomeoGolf
        /#22772206 / +1

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

        Насчет юзер-френдли альтернатив (только если не предвидится) — еще раз повторюсь, для десятка разных задач, решаемых одним инструментом, существенно лучше освоить один этот инструмент, чем десяток юзер-френдли отдельных. Какие бы френдли они ни были к юзеру, их все равно надо осваивать. А перед этим про них надо узнать, их надо выбрать из множества альтернатив (вероятно, попробовав по нескольку штук руками), их надо скачать и установить (и они будут жрать место и ресурсы), с ними надо разобраться в плане чистоты, платности и лицензируемости (на работе это может быть критично), их надо настроить под себя, с ними надо решать вопросы совместимости по ОС… Я наверное еще не все перечислил.

        А можно просто использовать vim. Спасибо за предложение, но нет.

      • fkthat
        /#22774756

        никаких более user-friendly альтернатив нет и не предвидится.

        Для меня "friendly" это то, что позволяет сделать нужное мне быстрее и проще. И в этом весь этот ваш мышинный "friendly" рядом с vim даже рядом не стоял.

        • DirectoriX
          /#22774760

          Пожалуйста, пользуйтесь на здоровье.

    • edo1h
      /#22779026

      В моей сейчас страниц 10 (а5)

      поделитесь?

      • RomeoGolf
        /#22779296 / +1

        Ну, давайте попробуем как нибудь так, в plain-text`овом виде. Это, наверное, самый полный вариант из сохранившихся — тут страниц 16. Но, повторюсь, лучше это составлять самому. Примерно как при изучении английского словарный запас набирать, чужой словарик вряд ли поможет.

      • fkthat
        /#22779304

        Да такого добра и в сети полно. Набираешь просто в поисковике: "vim cheat sheet"

  17. dmitrytorshin
    /#22771332

    Раньше думал, что когда нибудь изучу вим. В итоге сделал программируемую клавиатуру под qmk. Теперь у меня стрелочки на ijkl (и другие кнопки навигации) вообще во всех программах, под любой ОС. Вим так и не осилил. Но спасибо ему за объяснение что не убирать пальцы с центрального ряда не только можно, но и нужно.

  18. slim8020
    /#22771334 / +3

    Vi это предок Vim'а, а не аналог)

  19. Radish
    /#22771394 / +2

    читаю каждую статью про VIM, и всё жду, где расскажут, почему программисту надо соревноваться в скорости с машинисткой? Да работа программиста это овер 90% чтение, а не печать. Да и чтение нифига не в одном только VIM.

    • fkthat
      /#22771524 / +1

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

      • Arenoros
        /#22772832

        При чем тут скорость.

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

        • fkthat
          /#22773456

          Скорость работы с кодом != скорость набора текста.

          • Arenoros
            /#22774908 / +1

            Вот как адепт vim объясни в чём оно быстрее, я может неправильный программист, но больше всего времени я трачу не на модификацию текста, или поиск каких то подстрок, а чтение и навигация по огромному салюшену с 50+ проектами на плюсах, с постоянным переходом по объявлениям, определениям и наследованиям методов/классов и без выпадающего списка с нужными методами, решарперовских штук по автокомплиту и разворачивании макросов я бы вообще за… ся работать с кодом, единственное что бы помогло работать быстрее это нейроинтерфес который мог заменить мышь и клавиатуру но точно не убогий редактор с миллионом хоткеев которые нужно держать в голове. В чем удобство мастурбировать десятки макросов на то что можно сделать мышкой в 2 клика?

            • fkthat
              /#22774918 / -1

              Да что же я заставляю тебя Vim использовать? Елозь мышью, если тебе нравится :)

              • Arenoros
                /#22776104 / -1

                Дело не в том что ты или автор «заставляет» что то использовать, а в том что адепты вима несут бездоказательный бред о том что он ускоряет «работу» с кодом или что это вообще может быть удобным, да ещё словно это лучший редактор, при том когда начинается выяснение как и в чём, то оказывается что помогает он полтора землекопу в одном из тысячи кейсов, но зато понтов столько как будто священный грааль откопали. Отказ от мыши, omg это ж так оптимизирует скорость работы…

                • fkthat
                  /#22776120 / +1

                  Я вот не пойму — ты мне пытаешься объяснить, как мне удобней или неудобней работать?

                  • Arenoros
                    /#22776130 / +1

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

  20. Compolomus
    /#22771786 / +1

    Тоже хотел вим освоить, на роутере vi, исправить добавить строчку и сохранить, максимум что понадобилось.
    Сам я обычно работаю в полнокнопочной клавиатуре, левая рука это ctrl shift правая это стрелки и верхний блок из 6 клавиш, то есть выделять, вставлять, удалять, скролить одной рукой можно.
    ctrl + ins — копировать
    shift + ins — вставить
    shift + home | end | pgup | pgdown — выделение
    delete тут понятно, ctrl + del ещё вариант
    Правая рука рядом с enter backspace плюс правее целый калькулятор с вводом любой математики.
    Привык очень. Как то у товарища на ноуте хотел код чуть подправить, так себя не удобно почувствовал, как без рук. Пришлось за мышкой тянуться(
    Стрелки для более точного позиционирования курсора, плюс быстрые скачки вверх, вниз, вперёд, назад, удаление, копирование, вставка. Писать одна позиция, навигация и прочее другая. Причём выделять как по мне даже точнее чем мышкой
    Имхо. Кстати тоже везде поддерживаются сочетания

  21. tmpnick
    /#22772514 / +6

    Как освоить Vim?
    Чтобы освоить vi(m) достаточно выучить :q! и сделать apt-get install nano

    • unsignedchar
      /#22772612

      Почему не mc?
      Собственно, если нужно пару строк в конфиге поправить — любой редактор годится. А в nano (и в mcedit тоже) ещё и подсказка внизу экрана болтается, ничего учить не надо.
      Но вот если надо делать что-то более-менее нетривиальное с текстом (вырезать кусок из одного файла и вставить в другой, например) — простые редакторы становятся сложными.

      • tmpnick
        /#22772970

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

        • unsignedchar
          /#22773276

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

          • tmpnick
            /#22773860

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

            • unsignedchar
              /#22773946 / +2

              Например, перенести пару функций на С из одного файла в другой. Я бы посмотрел на этот скрипт :)

      • Kirikekeks
        /#22773002

        Никакой не годится, это sed, открывать любой редактор как то много.

  22. FoxTheRed
    /#22772674

    VIM пользуюсь, но в объеме старого доброго vi
    Привычка с времен терминалом 9600 8-n-1

  23. solarcore
    /#22772828

    Вот интересно, почему условный vim популярнее того-же emacs? Статей по vim я замечаю гораздо больше везде. Да и говорят о нём чаще

  24. /#22772872 / +2

    Действительно сложно объяснить, почему, перейдя с mc на vim, обратно уже не тянет. И даже более того, удивляешься, как столько лет пользовался mc/mcedit и всё устраивало. Просто поверьте, что vim затягивает.

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

  25. cr0nk
    /#22772886 / +1

    Как освоить Vim?

    Осталось только понять зачем. Если редактор требует столько усилий, то может быть ну его?!

  26. Kirikekeks
    /#22772968

    Cplk все таки кириллица. vim для маргиналов, это про управление текстом мыслью. К написанию мыслей текстом он не имеет отношения совсем. Очевидно, что есть знаменитые писатели, а знаменитых редакторов нет. Но спросите писателей — есть ли очень уважаемые редакторы? А что такое текст? Это мысль, написанная. Алгоритм для тутошных. Vim для мысленного редактирования мыслей уже верно. Вот пальцем — неудобно, в телефоне писать. В Vim отредактировать всю ветку комментариев прямо на сервере, выделив нужные тебе мысли — самое то. Особенно если с телефона на этот сервер зайти, и тут vim великолепен, неподражаем, могуч, незаменим.

  27. funca
    /#22772986

    Для меня vim это типовой набор шоткатов для редактирования текста, выученных когда-то давно. Использую как режим в vscode, pycharm, терминале (set -o vi) и т.п. Базовые команды везде одинаковые и хорошо дополняют остальные функции IDE. Удобно, что они не отличаются в разных операционных системах — переключение между убунтой, макосью и виндос вызывает меньше проблем с привычками. Настоящий vim запускаю когда надо редактировать одиночные файлы или удаленно.

    Удобно использовать одноразовые макросы когда надо сделать много однотипных правок: qq включает режим записи вводимых команд, еще раз q останавливает запись. Записанный макрос можно выполнить набрав @q. Ну или 10@q чтобы выполнить его десять раз подряд. Теоретически вместо q можно использовать любые другие буквы или символы, сохраняя тем самым разные макросы в разные регистры, но ситуации когда это бывает нужно встречаются крайне редко.

  28. funca
    /#22773036

    .

  29. cudu
    /#22773046

    Переход на строку, поиск внутри файла, поиск внутри проекта, выделить слово, выделить строку, выделить несколько строк, скопировать-вставить — то, что мне хватает в моей IDE(да и в любом текстовом редакторе все эти комбинации, разве что не везде есть переход на строку).
    Зачем ВИМ?

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

  30. eliasdaler
    /#22773096 / +4

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


    Возможно вы и не замечаете, как тратите время на нажатие "Backspace" много раз, чтобы удалить слово (некоторые кликают два раза на слово или используют "Ctrl"+"Shift" + стрелочки). Или выделяете мышкой что-то внутри скобочек, чтобы заменить содержимое. Вот несколько примеров того, как Vim помогает мне каждый день.


    1. Замена слова.

    Допустим я хочу заменить arg2 на newArgument (и мой курсор где-то внутри строки).


    res := someFunction(arg1, arg2)

    Я жму f, (перевести курсор на запятую) -> w (перейти на новое слово) -> ciw (заменить слово) -> newArgument<ESC>. А иногда и вовсе достаточно просто вбить:


    :s/arg3/newArgument/ (вот тут любые регулярки работают)


    1. Замена слов внутри скобок, кавычек и пр

    Очень часто надо менять что-то внутри строк:


    Допустим, я хочу заменить "hello_world" на "what's up" вот здесь:


    some_function("hello_world")

    Не проблема — находясь в любом месте на строке, я делаю ci" (заменить всё внутри кавычек) и печатаю what's up<ESC> — всё. Никакого ручного выделения, сколько бы текста не было внутри.


    some_function("what's up")

    А иногда и такое бывает:


    res := someFunction(arg1(someFunc(()), someStruct { a : 5, b : 10 })

    Допустим, надо вызвать someFunction с другими аргументами. f( -> ci(.


    1. Макросы

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


    tests := []string {
        "input1",
        "input2",
        "input3"
        ...
    }

    А хотим получить это:


    tests := []struct {
        str string
        someBool bool
    } {
        { str: "input1", someBool: true },
        { str: "input2", someBool: true },
        ...
    }

    Не проблема — переходим на строчку "input1" -> начинаем писать макро: qa. Далее жмём I (вставка в начало строки), пишем { str: <ESC>. Затем добавляем в конец A + someBool: true },<ESC>. И перед завершением макроса переходим на строку ниже, чтобы не делать это вручную после исполнения макро снова и снова: k. И завершаем макро: q


    Теперь, чтобы применить этот макрос к сотне строк, мне достаточно нажать 100@a. И это иногда спасает мне минуты бесполезной и рутинной правки вот таких вещей, где одну и ту же вещь нужно править одинаково, но для многих строк.


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




    И вот таких вещей очень и очень много. Редактирование в Vim — это почти как программирование и оптимизация рутинных вещей. Нужно вставить что-то в начале строки? I. В конце? A. Вставить строчку вниз? o. Вверх? O. И всё это делается без перемещений курсора. Без кликов мышки и ручного поиска начала или конца строки.


    Вы говорите редактору что хотите сделать, например "заменить всё внутри кавычек". Для этого вы жмёте ci", а не выделяете всё в кавычках вручную и жмёте "Backspace".


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

    • cudu
      /#22773120 / -3

      так вот где индусы пишут свои сотни строк ифов или свича.

    • unsignedchar
      /#22773462

      Все правильно. Только код программы лучше править в IDE, умеющей в этот язык. Которая умеет отличать переменные от функций и комментариев. Vim сам по себе умеет отличать только слова, скобки и кавычки.

      • fkthat
        /#22773596

        Только код программы лучше править в IDE

        Тут уже сто раз написали, что одно другому не мешает. Наверное для всех популярных IDE давно уже есть плагины для vim-mode.

    • fkthat
      /#22773590 / -1

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

      Возможно, тут еще замешаны фрейдовские мотивы. После vi/vim работа в "обычном" редакторе напоминает онанизм — вот хейтеры vim и боятся этого лишиться :)))

      • DirectoriX
        /#22773786 / -1

        После vi/vim работа в «обычном» редакторе напоминает онанизм
        В равной степени после человеческого редактора (типа VS Code) vim напоминает мазохизм, и не многие хотят в это погружаться ради сомнительной выгоды (которой может и не быть в каждом конкретном случае)

  31. Xambey
    /#22773200 / +1

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

    • unsignedchar
      /#22773858

      Писать текст удобно в любом редакторе ;)
      Редактировать — в зависимости от вида текста. Vim, он как швейцарский ножик. Да, им можно резать, пилить и крутить винты. Но специальный инструмент удобнее же. У vim есть много очень полезных и мало где ещё реализованных функций. Но нужны они очень не часто.
      Те, кому не нужен vim — они просто не решали специфических задач, где он действительно нужен. Те, кому он необходим, и они в нем даже интернет отстают — просто кокетничают :)

      • DirectoriX
        /#22773910

        Не могу не согласиться с такой аналогией. Швейцарский нож, может, и универсален, но обычная отвёртка удобнее. Грубо говоря, в поход не ходят с целым ящиком инструментов, но и шкаф ножом не собирают.
        С другой стороны, когда в руках vim, всё вокруг кажется hjkl…

  32. Almighty_Goose
    /#22773266

    Сам я, много лет назад, изучал VI из соображений, что он есть в любом Linux/Unix из коробки, даже если других редакторов не установлено. Прошел vimtutor и думал, как круто, как-нибудь обязательно выделю время и освою весь VIM. Однако, на свежую голову мысль, что расширения VIM могут отсутствовать в VI поубавила пыл. Так, до сих пор, к стыду своему, и не овладел, постоянно забываю куда hjkl должны двигать курсор, приходится пользоваться стрелками.

    В копилку раздела 5 я бы добавил Control-V — прямоугольное выделение (VISUAL BLOCK), позволяет выбрать и удалить (или скопировать) вертикальную колонку. Также, полезные программы view и vimdiff, которые, фактически, тоже vim.

    Но самое большое разочарование, меня постигло от visudo: запустить и уже в голове представляя себе следующие команды VI, но внезапно обнаружить, что открылся GNU nano
    После такого предательства "apt purge nano" руки сами набирают без участия разума.
    (Если бы sudoedit открывал nano я бы и слова не сказал).

  33. LennyB
    /#22773298 / +2

    Не нужно осваивать Vim! Это приводит к серьёзным побочным эффектам:

    • vim вызывает зависимость;
    • vim заставляет ваш мозг работать в модальном режиме;
    • Вы будете приходить в ярость, если при нажатии «j» или «k» не работает прокрутка;
    • становится невыносимой работа в текстовых «процессорах» типа Word, потому что они печатают на экране ":wq" вместо того, чтобы сохранить документ и выйти;
    • если вы раньше с грустью и жалостью смотрели, как кто-то копирует файлы, используя перетаскивание в проводнике, то теперь Вы сами почувствуете себя этим кем-то.

    Так что оставьте vim вимерам и живите спокойно!

    • fkthat
      /#22773884

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

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

  34. ZaitsXL
    /#22773824 / +2

    Ещё одна чудесная статья из серии "А лучше чем Б по причине моих субъективных предпочтений". Другие примеры: Android vs iPhone, Windows vs Linux, PS vs Xbox vs PC, MP3 vs Lossless — тысячи их и все бессмысленны

    • Almighty_Goose
      /#22773836

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

      В вопросе «Как освоить Vim?» речь о мотиватиции даже не идет — освой VIM или умри.

  35. fkthat
    /#22773898

    Кстати, совершенно не упомянули еще вот этот замечательный ресурс: https://vim.fandom.com/wiki/Vim_Tips_Wiki

  36. sergey-b
    /#22774942

    Современное программирование процентов на 50 — это Ctrl-C и Ctrl-V. Что в vi на этих сочетаниях клавиш? Какие клавиши в vi делают то же самое, что Ctrl-C и Ctrl-V в остальных текстовых редакторах?

    • unsignedchar
      /#22775162

      Вы не поверите, y и p. Даже ctrl жмыкать не надо ;)

      • sergey-b
        /#22775580

        Почему же? Верю. А это копирование только внутри vi работает или я могу в браузере сделать Ctrl-C, а потом в vi сделать p?

        • unsignedchar
          /#22775610

          Вставка средствами терминала работает же. Shift ins. Не знаю, как в windows 10, а в более старых терминал был создан для боли и мучений ;).

          • fkthat
            /#22775750

            Везде где только можно всегда сработает "+p. В терминале, в insert mode работает все так же как обычная вставка (Shift-Ins, Ctrl-V, etc), в GUI-версии тоже.

        • Edison
          /#22780572

          да, можете (у vim есть поддержка clipboard, --version покажеть скомпилирован ли с поддержкой, и set clipboard+=unnamedplus), так же наоборот — yank в vim, ctrl+v в браузере.

  37. eldoradofdg
    /#22775486 / +2

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

  38. ovitente
    /#22775488 / +1

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

    Но к авторам основного поста есть просьба: возможно не стоит рекоммендовать интегрировать вим с каждой ide, если вы не пользовались интегрированным решением сами.
    Поймите пожалуйста, vim (neovim) — мой основной инструмент работы спустя кучу туториалов, прочтения и применения информации из двух с половиной книг, и нескольких лет практики.

    Но после опыта использования его аналога в vscode, и webstorm, я очень ругался на его кривую реализацию. При том что не поленился и конфигурил их аналогично моему основному вим конфигу. Но оказалось, что, чисто технически, реализация vim-mode в них ужасная, и сделана «на отвали», создавая иллюзию, что ты сейчас в каком то из них будешь так же продуктивен благодаря встроенному аналогу.

    Более того, у меня есть теория, что внутри IDEшек, вообще не стоит использовать vim-mode, так как его активация сразу ломает исходные горячие клавиши и комбинации.
    Сам я использую vscode в основном для демонстрации экрана с кодом тем, кому очень сложно его воспринимать в чем то другом кроме vscode.

    • fkthat
      /#22775570

      Ну не знаю. Пользуюсь и в Visual Studio и в VS Code — все вроде бы норм. Некоторые фичи не поддерживаются, кое что надо поднастроить изначально, это да, потому что это все-таки не "чистый вим", а плагин для IDE и ему как-то надо еще с самой этой IDE дружить, но как-то особой боли это не приносит.

    • fkthat
      /#22775784

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

      • DirectoriX
        /#22775962

        «Ну раз вимеры освоили сам vim, то и в JSON перепишут свои конфиги» — видимо какая-то такая логика. А так, JSON — основной формат конфигов для VS Code, так что ничего удивительного. Как говорится, «вам шашечки или ехать?»

        • fkthat
          /#22775970

          Это очень неудобно, потому что вим используется не только в VSCode

          • DirectoriX
            /#22775974

            Но ведь в vim'е такие могучие и удобные макросы (ну, судя по комментариям), неужели так сложно написать макрос и запустить его аж 1 раз на все строки?

            Кстати, VS Code из коробки умеет синхронизировать настройки, так что вам даже не придётся на втором компьютере (если у вас их более одного) то же самое делать!

            • fkthat
              /#22775978

              Ты о чем это?

              • DirectoriX
                /#22775980

                Макросы, могучие удобные вимовские макросы типа «1 раз набрал, на все строки применил». Или они, внезапно, не такие могучие и не смогут переделать вимовский конфиг в JSON-форму?

                • fkthat
                  /#22776018

                  Ты 8 марта на день раньше начал отмечать?

                  • DirectoriX
                    /#22776036 / -1

                    Я вообще не отмечаю, мне просто интересно, почему вы как vim-пользователь не хотите воспользоваться умопомрачительными возможностями vim'а, и с его помощью за минуту сконвертировать его собственный конфиг в VS Code-формат, чтоб пользоваться vim-плагином.
                    Видимо, возникла какая-то проблема в процессе…

                    • fkthat
                      /#22776082

                      Нет нужды, просто (у меня там всего пару настроек, про которые я за давностью даже забыл какие именно). А для работы с JSON у меня есть более подходящие инструменты — тот же PowerShell, например.

                      • unsignedchar
                        /#22776134

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


                        Есть у меня подозрение, что у кого в .vimrc всего пару настроек, и кто одновременно утверждает, что без vim жить не может — это он немного кокетничает :D

                        • fkthat
                          /#22776148

                          В консольном вим у меня


                          PS ***@***:~$ cat .\_vimrc | measure -Line | select Lines                                                                                                                                                                                 Lines                                                                                                                   -----                                                                                                                      54 

                          В VSCodeVim и VsVim почти все это есть в самой IDE и от вим мне там нужны только кейбиндинги и команды.


                          А вот вся моя настройка VsVim:


                          " The number of screen lines to keep above and below the cursor.
                          set scrolloff=3
                          " Set Shell
                          set shell=\"c:\\Program\ Files\\PowerShell\\7\\pwsh.exe\"
                          set shellcmdflag=-Command

  39. chry
    /#22778024 / +1

    Имхо, Vim — секта.
    Сам пользуюсь vim на постоянной основе с плагинами типа ycm, nerdtree, clang-tiny и форматтер, и это безумно удобная вещь, да, но не когда у тебя есть возможность использовать нормальную IDE.
    К тому же странно, в статье нет сравнений (внятных), кроме «ну, в виме быстрее». Нет, не быстрее, большие проекты в нем писать не удобно зная даже все шорткаты. Зато очень удобно писать embedded, когда нет возможности использовать IDE нормально, а проекты вписываются в пару десятков файлов.
    А итог такой: часто админите, пишите embedded, нет GUI или нужно просто быстро отредактировать конфиг? — vim с плагинами — ваш выбор. Но когда речь идёт о разработке больших проектов, выбирайте IDE, их придумали не просто так. А для vim-оводов, хорош вовлекать людей в секту.

    • unsignedchar
      /#22778090

      "Vim — секта"


      Скорее веганы среди трупоедов ;)

  40. katber
    /#22778028

    Тот случай, когда помимо vimtutor'а узнал ещё и про WSL

  41. NikitOS9
    /#22778060

    для всего нужна причина, тогда вопрос меняется — Как и для чего освоить Vim?

  42. Almighty_Goose
    /#22779836

    На мой взгляд, это противостояние адептов VIM/EMACS против всех остальных IDE/GUI-редакторов напоминает противостояние игроков DOOM, среди которых были клавишники и мышисты. Одни играли только клавиатурой, вторые еще использовали мышь. Думаю, всем ясно кто в итоге победил.
    Сейчас, правда, противостояние пошло на новый виток: консольщики с контроллером против игроков ПК.

    • saboteur_kiev
      /#22780306

      Думаю, всем ясно кто в итоге победил.


      Вот только по немного другой причине.

      Если вы не застали те времена, то могу вам напомнить, что когда вышел Doom, мышки мало того что были не лазерные, так еще и весьма некачественные. А еще, что немаловажно, не на каждом компьютере. А вот клавиатуры многие были профессиональными, с железными корпусами, надежные (привет BTC professional и др).

      А вот прошло несколько лет, появились недорогие но уже неплохие мышки (mitsumi, pilot), а клавиатуры наоборот — на профессиональные спрос уменьшился, китайский ширпотреб распространился, да и собственно Windows 95 уже полноценно заехала в СНГ. Поэтому мышки распространились повсеместно, и ими научились пользоваться.

      • DirectoriX
        /#22780340 / -1

        Если бы клавиатурное управление было лучше (по скорости, точности, времени реакции — неважно) — оно бы и осталось доминирующим. А так всё же выходит, что клавиатуры доминировали только пока мыши были не очень-то распространены.

        • saboteur_kiev
          /#22781894

          1. Пока мыши были плохими.

          2. Когда мыши начали распространяться, ими не умели пользоваться. Возьми сейчас любую бабушку, которая не пользовалась компьютером и попроси чтобы она мышкой в сапера сыграла. Картинка будет как когда 3-летнего ребенка просишь написать что-то. Овладеть мышкой с нуля на уровне нормального управления в шутеры — это не день и не два. А в DOOM уже играли несколько лет.

          • DirectoriX
            /#22781932

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

          • fkthat
            /#22782056

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

            Лол. Расскажи моей маме, которой 72 года, и которая нормально лазит по интернету мышью, но на совет по телефону "нажми пробел" спрашивает "что такое пробел" :))

            • saboteur_kiev
              /#22784700

              Возьми сейчас любую бабушку, которая не пользовалась компьютером

              Лол. Расскажи моей маме, которой 72 года, и которая нормально лазит по интернету мышью


              Л — логика.
              Я надеюсь вы хотя бы протирали шарик от мышки спиртом?

    • fkthat
      /#22780362

      Ты на работе целый день в DOOM играешь? Тогда тебе точно vim не подойдет (IDE, впрочем, тоже) — DOOM ни там ни там нет. :)

      • unsignedchar
        /#22780374

        Doom сейчас есть даже на калькуляторе. Ждём, когда его портируют на vim :D

    • edo1h
      /#22780628

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

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


      классический vim с hjkl и esc на месте caps lock как раз предлагает примерно то же самое (но набирать текст одной рукой проблематично, поэтому клавиатура+клавиатура, а не клавиатура+мышь).

      • DirectoriX
        /#22780638

        Это всё так, но до тех пор, пока вы не отвлечётесь от непосредственно игры/редактирования кода. Как только вам понадобится ответить в Discord или Slack/переключить музыку/открытьгайд, Jira или документацию — вы наверняка всё равно воспользуетесь мышью (а может и нет, если вы таки установили vim-плагин для браузера).
        Если вы переключаете приложения относительно редко, то безусловно есть смысл держать руки на клавиатуре неотрывно. Если переключаетесь часто — выгода от «неотрывных рук» становится малозаметной.
        А ещё во время работы с кодом приходится думать (иногда даже долго) и не писать код, но во время сессии в шутере вы, скорее всего, если не нажимаете на кнопки, то у вас загрузка уровня или катсцена.

  43. el777
    /#22781824

    Основное, что мне не нравится в нем как в IDE: я когда пишу код, хочу думать что я пишу, а не как я это пишу.


    Познакомился с Vim еще в прошлом веке — в 98 году на серверах была FreeBSD, сами сервера были слабенькие. Вим там отлично жил и позволял редактировать конфиги, какие-то простенькие HTML страницы и прочее. Я даже быстро узнал как из него выходить — удаленный сервер-то для выхода на перезагрузишь :) Так что какой-то моральной травмы, связанной с ним нет.
    Но с тех пор примерно так его и использую — если нужно что-то на живом сервере поменять.


    Мне проще (читай "с меньшим переключением контекста") двинуть курсор мышью или поиском Cmd+F.
    Режимы вставки/переходов есть в любом редакторе. Но они переключаются удобнее — долгим нажатием модальной клавиши (Ctrl/Alt/Etc). Нажал — включилось, отпустил — выключилось. Мне это удобнее, чем смотреть в угол экрана, какой там режим. Этак дойдем до того, что и на клавиатуру начнем смотреть :)
    Одно время я даже выработал себе привычку всегда нажимать Esc для переключения в модальный режим — чисто чтобы не смотреть в угол экрана и не думать, какой сейчас режим включен.

  44. ovitente
    /#22782112 / +2

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


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


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


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


    Но почему так происходит? Каковы глубинные корни причины?
    Мое мнение, что дело вовсе не в инструментах, программах и пр., а потому что такова природа эго человека, который его в себе не контролирует.


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


    И теперь я не занимаю ни одну ни другую сторону споров, особенно этой темы.
    Ведь мой опыт показал, что активная вим агитация мол это имба тула — не работает, да и неправильно так как является навязыванием, актом насилия над личностью.


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


    Опытный "вимщик" ( или консольщик ), это не тот кто может "поставить на место" любого mouse-user`а или IDE`шника своим задротством умением, ни в коем случае не позволяйте себе допускать такую мысль. Мышкой пользуюсь как минимум в браузере и корпоративном ПО где даже горячие клавиши не предусмотрены, даже пером для планшета, ведь не только ж код в консоли писать)
    Это человек который даже вслепую "умея вим" — все равно учится, здраво анализируя свою деятельность на возможность увеличения продуктивности. А как он потом распоряжается освободившимся временем благодаря общей оптимизации своих процессов — каждый решает сам.


    Так же более чем согласен с теми кто выше говорил что нет никакого vs между IDE и vim.
    И если отклоняться в сторону программирования то я так же уважаю IDE как серьезное комплексное решение для давно выведенного круга задач. Да это же замечательно когда человек изучив свою ide`шку — уже приступил к работе, приносит результат, получает ценный опыт в своей квалификации и наконец зарабатывая средства. А может ему нафиг не нужен вим, хоть потом, спустя кучу времени он сможет решать им те же задачи плюс гораздо больше. Ну не надо оно ему, чего вы пристали))


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


    А единственное что бы мне хотелось касательно вима ( конкретно neovim ), так это что бы его разработка и сопровождение — продолжались.


    Я искренне надеюсь что не утомил таким длинным комментарием, посыл был только принести мир.

  45. vtb_k
    /#22787852 / +2

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

    • DirectoriX
      /#22787912

      Проблема не в самом vim, а в том, что в статье (и во многих комментариях) написано «он повысит продуктивность». Не «быстрее открывается», не «повысит, при условии, что вы пишите не менее 2500 знаков в минуту», не «вот конкретно мне он позволил работать лучше, может быть и вам тоже» — а просто «vim наш король, используйте его поголовно».

      • vtb_k
        /#22788180 / +2

        >Проблема не в самом vim, а в том, что в статье (и во многих комментариях) написано «он повысит продуктивность»

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

      • unsignedchar
        /#22788380

        "Вы ещё кипятите? Едем к вам" (ц) реклама.

      • fkthat
        /#22788536 / +2

        «vim наш король, используйте его поголовно»

        Ну и где в статье такое написано? Что конкретно бомбит-то так, я не могу понять.