Почему я до сих пор использую Vim?

https://medium.freecodecamp.org/why-i-still-use-vim-67afd76b4db6
  • Перевод
Vim — мой любимый редактор. Я начал его использовать много лет назад, когда перешел на Linux. Он пришелся мне по душе, так как я мог редактировать небольшие исходные файлы на своем четырехъядерном компьютере без необходимости долго ждать, пока он откроется.

Могу с уверенностью сказать, что Vim не плохой редактор и очень расширяемый, но это не повод говорить о том, что Vim подходит всем, так как это вопрос вкуса. При использовании Atom или Code у меня часто возникают зависания, бывает они длятся по нескольких минут.

Как вы думаете, сколько памяти нужно редактору, чтобы открыть следующий C файл?

#include <stdio.h>
int main() {
  printf("Hello, world!\n");
}

Использование памяти


А вот и ответ:

1*ZdqL3eJXV4v-ZlkDKJIlNgРедактору Code для открытия 60-байтного кода потребуется 349 мегабайт! Atom потребуется 256 мегабайт. А вот Vim нуждается всего в 5 мегабайтах.

Я также включил Nano, чтобы сравнить его с Vim и результат получился меньше чем 1 мегабайт.

Как насчет больших файлов? Открытие 6-мегабайтного XML-файла в Vim потребляет около 12 мегабайт. Nano практически на ровне с Vim. Code нуждается в 392 мегабайтах, а Atom в 845 мегабайтах!

1*UoLGhJjMeCbXfL0rBpcfBwВремя запуска


Давайте рассмотрим сколько времени требуется редакторам для открытия того же файла XML, а после открытия перемести курсор в конец файла. Atom и Code потребуется почти 20 секунд. Vim выполнит задачу за 4 секунды. Sublime меня приятно удивил, открыв всего лишь за секунду. Быстрее всех был Nano.


1*nWL-IyPzxygwIKBkhvuzQAВыполнение поиска и замена 100 000 слов, в том же XML файле показали достаточно неожиданные результаты. Nano и Atom потерпели неудачу, так как для выполнения задачи потребуется почти 10 минут. Atom завис несколько раз, перед тем как получить результат. Code выполнил задачу за 80 секунд, Sublime за 6 секунд. Vim справился за 4 секунды.

1*9m9YNUPgQWRgk-6dtlSFMgПечально смотреть на то, когда редактор потребляет всю вычислительную мощность и память, которые доступны на «современном» дорогостоящем ноутбуке.

Библиотека видеоматериалов по Vim, здесь вы можете познакомиться с программистами работающими на VIM и посмотреть как он работает.
Какой из перечисленных редакторов чаще всего используете вы?

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

Метки:
Поделиться публикацией
Комментарии 168
  • +11
    У меня у одного диссонанс: графики выглядят как реклама Sublime, а в заголовке Vim?
    • –6

      sublime по мощи уступает vim-у все же.

    • +2
      в 3 из 4 графиков Vim лучше чем Sublime. Вряд ли это может быть хорошим результатом для Sublime
      • +5
        Заметно, а не на уровне стат. погрешности, Sublime уступает только на первых двух графиках. Но и они не совсем понятны, т.к. по ним получается, что он при открытии 60-байтного кода сожрал в 1,5 раза больше памяти, чем при открытии 6-мегабайтного XML-файла. Похоже, что эксперимент не блещет чистотой.

        PS Не пользую Sublime и Vim. Использую иногда vi и то только по необходимости, когда иного не наблюдается.
        • 0
          У графиков разная цена деления: на 60 байт Sublime потребовалось 50Мб, на 6 мегабайт — 75Мб.
          • +1
            Да. Вы совершенно правы и это отбрасывает предположения о некорректности эксперимента конкретно по данному пункту. Однако «читабельности» графикам, к сожалению, не добавляет.
        • +6
          «Как вы думаете, сколько памяти нужно редактору, чтобы открыть следующий C файл?» — who cares?
          • +1
            Редакторам под DOS вообще хватало 640кбайт на всё!
        • +3
          nano, по графикам-то он рулит (почти везде).

          И, да, по памяти ожидал другой результат увидеть, что vim кушает меньше всего, ан нет!
        • +26
          Память нынче очень дешевый ресурс, а вот время — дорогой (автокомплиты, рефакторинги и прочие плюшки). Нормальная IDE может окупить отожранную память за несколько дней.
          • –5
            Вряд ли это можно как то противопоставить виму, время обучения и привыкания к нему — да, а вот про недостаток функционала всё чушь — vim'у вряд ли есть равные.
            • +2
              а как же emacs? функциональности и расширяемости там тьма :)

              И интересен вопрос от пользующихся им, насколько круто он выполняет данные функции, как в посте автора?
              • +6
                Я много работаю с текстом во всех его проявлениях. По своему опыту могу сказать следующее. Какой бы бред вам не пришел в голову Vim это уже умеет.

                PS: ввязываться в спор emacs vs vim категорически отказываюсь. Единственное, что наверняка можно сказать про emasc это то, что это отличная операционная система. Жаль только в нем нет нормального текстового редактора ;)
                • +1
                  Менять сигнатуру метода умеет?
                  • +2

                    нынче есть очень интересный тред — встраивать средства рефакторинга в тулинг идущий с компилятором/интерпритатором (как это например сделали ребята из TypeScript). В этом есть немало смысла, "не надо ждать пока все IDE добавят новые плюшки", это на руку разработчикам языков. А если все используют одинаковый тулинг для рефакторинга — то спорить кто лучше в этом явно смысла нет.

                    • 0
                      Плюсую, особенно если у языка маленькое комьюнити — эти тулзы очень сильно помогают
                  • +2
                    Идут года, проходят десятилетия, а аргументы всё те же.
                    • +2
                      В emacs есть evil-mode, режим, в котором он мимикрирует под vim. Так что есть там нормальный текстовый редактор (-:
                      • +9
                        «Какой бы бред вам не пришел в голову Vim это уже умеет» — ребята из JetBrains ехидно в сторонке улыбаются :)
                        • 0
                          к большому сожалению при включении VimMode в CLion нет ремапинга остальных шоткатов — они просто перестают работать. Да и в отличии от vim и emacs продукты JetBrain не работают по ssh (кроме как примонтировать раздел по sftp).
                          Кстати интересный проект для emacs — spacemacs.
                          • 0
                            JetBrains не текстовый редактор. Зачем вы его привели, не понятно
                        • –1
                          Emacs работает круто и быстро! Перешел с vim и не жалею
                        • 0

                          Расскажите про автоматический рефакторинг в Vim (и сколько он с таким обвесом плагинами ест памяти).

                        • 0
                          Там все это решается плагинами.
                          • 0
                            Вроде бы в статье и не говорится, что vim надо использовать, как IDE.
                            У меня есть и Vim и Sublime, и IDE разные, все они выполняют разные задачи.
                            • 0
                              Тут про редактор кода речь, если я правильно понял.

                              Я тоже использую все это, и тоже для разных задач — конфиги на серверах в виме, локальные логи смотрю в саблайме, код в IDE.
                          • +7
                            У vi/vim есть одна маленькая особенность: с самого начала это крайне недружелюбный интерфейс, недаром же один из самых популярных вопросов на stackoverflow это как выйти из vim. В nano с этим все проще: открываешь редактор и сразу есть подсказки по хоткеям, из коробки.
                            Лично я использую sublime или nano, по ситуации.
                            • +12
                              В сравнении остро не хватает mcedit. :)
                              • 0
                                Интересно было бы узнать какие версии редакторов использовались, а то вон atom с каждой новой версией содержит какие-то улучшения по производительности.
                                • +4
                                  Статья вообще ни о чём. Из перечисленных трёх метрик (memory footprint, время запуска, скорость) первые 2 никому не важны. Скорость важна, но она далеко не единственное преимущество vim. Про основные фичи (удобство навигации, command/insert mode, text objects, расширяемость плагинами) скромно промолчали.

                                  PS: моя основная IDE — Emacs в режиме эмуляции клавиатурных комбинаций Vim (evil-mode) и это реально уберкомбо, соединяющее преимущества обеих сред.
                                  • –2
                                    >>Из перечисленных трёх метрик (memory footprint, время запуска, скорость) первые 2 никому

                                    Кому как. У меня вот 2GB памяти. Можно поставить 4, но нужно перепаивать чипы, что я делать разумеется не буду.
                                    Редактор должен запускаться за 0 секунд. Не существует никаких причин чтобы было иначе.
                                  • –11
                                    nano нельзя рассматривать как среду разработки. Это ж notepad.
                                    Так что если вы хотите на ЛЮБОЙ машине с ЛЮБОЙ ОС иметь привычный интерфейс среды разработки, альтернативы VIM-у нет.

                                    ЗЫ: и не надо про emacs — не про него тема.
                                    • +8
                                      Пользуюсь продуктами JetBrains — в любой ОС получаю привычный интерфейс.
                                    • +9
                                      Раз пошла такая пьянка, почему бы не добавить сюда Notepad++?
                                      Можно ещё сравнить с полновесными IDE (Visual Studio, Eclipse)… Но это уже будет перебор… Или нет?
                                      • +3
                                        Про ed ещё забыли!
                                        • 0

                                          Единственное, что навскидку не придумывается (именно не придумывается, не факт, что данную функциональность проблематично реализовать) — это вся и всяческая визуализация, типа тех же ER-диаграмм и прочих связей в БД. А так из vim-a вполне себе лёгкую IDE замастырить, я думаю, не проблема.

                                          • 0

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

                                        • +6
                                          По мотивам недавних трех холиваров: угадайте на чем написаны Atom и Code?
                                          • –1
                                            +gitkraken +ещё хренова куча всего.
                                            • 0
                                              На фреймворке electron (т.е. JS и вроде как TypeScript)
                                              • 0
                                                И с прилагающимся браузером, который всё это и исполняет…
                                          • +10

                                            Статья из разряда "Hello world на Java занимает в 100 раз больше памяти, чем на С, и запускается в 20 раз дольше". У vi(m) та же самая проблема, что и у JS: его пользователи становятся фанатиками, кричащими, зачатую невпопад, о достоинствах и замалчивающими недостатки.

                                            • +1
                                              vim никуда не уходит и не уйдет. Сегодня это самый адекватный редактор для терминалов (ssh сервера) со слабым connection (ping > 100 ms). Так что пусть vim развивается, а люди его изучают.
                                              • +1
                                                Я второй день настраиваю фиговину через канал с пингом в ~5 секунд и потерями 70% D:
                                                Простое — через sed, сложное — в nano. Больше всего боюсь сделать cat какого-нибудь большого файла.
                                                Вроде пока жив.
                                            • –3
                                              Я все понимаю, но меня слегка смущают цифры. Я только что запустил AndroidStudio и ей потребовались 600М. Странно? Вот и я так думаю.

                                              Vim — один из самых дебильных редакторов. Более недружелюбного и уродского еще нужно поискать. Но его сила ни в удобстве. И даже ни в его фичах. Его основная сила в том, что на любой Unix и Unix-like системе он будет. И какой бы жидкий канал не был он будет отлично работать.
                                              • +1
                                                Его основная сила в том, что на любой Unix и Unix-like системе он будет.

                                                Из коробки — далеко не факт, nano субъективно чаще, а права на установку далеко не всегда есть. И не уверен, что vim можно поставить на самый популярный десктопный Unix её стандартным установщиком.

                                                • +1
                                                  Сможете вспомнить где «из коробки» не было vi(m)?
                                                  • –1

                                                    Ubuntu

                                                    • +1
                                                      У меня почему-то присутствует. И присутствовал всегда. Именно при стандартной установке.
                                                      Собственно поэтому я и удивился.
                                                      • 0

                                                        Хм… Странно. Регулярно его устанавливаю и основная ОС в компании Ubuntu.

                                                        • +2
                                                          Именно vim может отсутствовать, но вот vi будет везде и всегда, в любой Unix-like ОС.
                                                          • –1
                                                            Я обратил внимание, что стоит именно Vim. А vi к нему прилинкован.
                                                        • 0

                                                          Только что установил свежую Ubuntu 17.04 на новый ноут. Обычный десктопный исошник, не серверный, не сетевой, не минимальный, ни ещё какой:


                                                          Заголовок спойлера
                                                          ~$ sudo vim /etc/default/grub 
                                                          sudo: vim: command not found
                                                          ~$ sudo apt install vim
                                                          Reading package lists... Done
                                                          Building dependency tree       
                                                          Reading state information... Done
                                                          The following additional packages will be installed:
                                                            vim-runtime
                                                          Suggested packages:
                                                            ctags vim-doc vim-scripts
                                                          The following NEW packages will be installed:
                                                            vim vim-runtime
                                                          0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
                                                          Need to get 6.371 kB of archives.
                                                          After this operation, 30,8 MB of additional disk space will be used.
                                                          Do you want to continue? [Y/n] 
                                                          Get:1 http://ubuntu.volia.net/ubuntu-archive zesty/main amd64 vim-runtime all 2:8.0.0095-1ubuntu3 [5.299 kB]
                                                          Get:2 http://ubuntu.volia.net/ubuntu-archive zesty/main amd64 vim amd64 2:8.0.0095-1ubuntu3 [1.072 kB]
                                                          Fetched 6.371 kB in 0s (38,9 MB/s)
                                                          Selecting previously unselected package vim-runtime.
                                                          (Reading database ... 210651 files and directories currently installed.)
                                                          Preparing to unpack .../vim-runtime_2%3a8.0.0095-1ubuntu3_all.deb ...
                                                          Adding 'diversion of /usr/share/vim/vim80/doc/help.txt to /usr/share/vim/vim80/doc/help.txt.vim-tiny by vim-runtime'
                                                          Adding 'diversion of /usr/share/vim/vim80/doc/tags to /usr/share/vim/vim80/doc/tags.vim-tiny by vim-runtime'
                                                          Unpacking vim-runtime (2:8.0.0095-1ubuntu3) ...
                                                          Selecting previously unselected package vim.
                                                          Preparing to unpack .../vim_2%3a8.0.0095-1ubuntu3_amd64.deb ...
                                                          Unpacking vim (2:8.0.0095-1ubuntu3) ...
                                                          Processing triggers for man-db (2.7.6.1-2) ...
                                                          Setting up vim-runtime (2:8.0.0095-1ubuntu3) ...
                                                          Setting up vim (2:8.0.0095-1ubuntu3) ...
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode
                                                          update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
                                                          ~$ 
                                                          • 0
                                                            Дайте прямую ссылку если нетрудно на iso.
                                                            Чтобы не было разнотолков. Бо самолично проверял и все было.
                                                              • 0
                                                                Установил по вашей ссылке.
                                                                $which vi
                                                                /usr/bin/vi

                                                                Я не знаю что еще сказать.
                                                                • 0

                                                                  which vim ?

                                                                  • 0
                                                                    Если вам не трудно, запустите вы этот vi.
                                                                    И прочтите что у него на приветственном экране написано.
                                                                    ЗЫ Ну и ветка идет от коммента «Сможете вспомнить где «из коробки» не было vi(m)?»
                                                                    • 0

                                                                      Я знаю, что vi и vim близкие родственники, но я писал исключительно о vim. А запускать после "update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi" смысла точно нет, да и не думаю, что в "Need to get 6.371 kB of archives" только новые алиасы для vi из коробки.

                                                                      • 0

                                                                        При чём тут «близкие родственники»? Во многих дистрибутивах под «vi» понимается «Vim, скомпилированный с минимальным набором возможностей». Возможно, ещё и с порезанным runtime. Понимаете, не новые алиасы, а бинарник с другими флагами при компиляции, плюс runtime файлы.

                                                                        • –1

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

                                                                          • 0

                                                                            И к чему это? Здесь опровергали два ваших заявления: сначала «Vi(m) „из коробки“ в системе нет» (https://habrahabr.ru/post/335364/#comment_10355530). Оказывается, есть. Второе, в ответе «Ubuntu» нa «Сможете вспомнить где «из коробки» не было vi(m)?» вы почему‐то имели ввиду только Vim и уж его‐то там нет (https://habrahabr.ru/post/335364/#comment_10367516). Но это тоже не так, там Vim.


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

                                                                            • 0

                                                                              "Vi(m)" — это ваша самодеятельность, и я говорил, и в комменте на который я отвечал речь исключительно о vim, а не о vi(m)

                                                                              • 0

                                                                                В комментарии, на который вы ответили «Ubuntu» написано буквально «Сможете вспомнить где «из коробки» не было vi(m)?». Если вас не устроил расширение «Vim» из первого комментария до «vi(m)» (сделанное 9660, а никак не мною), то нужно было так и написать в комментарии с «Ubuntu», тогда он не стал бы неверным. Хотя Vim там всё равно есть.

                                                      • 0
                                                        В серверных версиях нет точно, всегда ставлю допом.
                                                        • 0
                                                          Парни. Вот только что скачал ubuntu server 14.04. Поставил в виртуалке, выбрав опцию ssh-server.
                                                          Vim в наличии.
                                                        • 0
                                                          CentOS (Core)
                                                          • 0
                                                            http://mirror.yandex.ru/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
                                                            Vi присутствует.
                                                          • 0
                                                            В минимальном дебиане его нет (по крайней мере в девятом).
                                                            Первый раз /etc/apt/sources.d/ придется редактировать nano
                                                            • 0
                                                              Что есть минимальный debian?
                                                                • 0
                                                                  У меня смутное чувство что нетинстал все же не очень обычное «И не уверен, что vim можно поставить на самый популярный десктопный Unix её стандартным установщиком»
                                                                  • 0
                                                                    Ты же пишешь «из коробки». Вот в коробке нетинстала дебиана его нет. Учитывая, что в большинстве серверных конфигураций адреса зеркал приходится править, то первый раз их придется править нано.
                                                                    Я же не утверждаю, что на дебиан нельзя поставить vim стандартными средствами. Глупо было бы утверждать такое.
                                                                    • 0
                                                                      Установил debian-netinst. https://www.debian.org/CD/netinst/
                                                                      Vi присутствует.
                                                                    • 0

                                                                      "самый популярный десктопный Unix" — Макось. Linux не является Unix.

                                                                      • 0
                                                                        Вот тут я пас. Никакой возможности проверить наличие vi(m) в этой ОС у меня нет.
                                                                        Будем считать что нашли UNIX без vi(m).
                                                                        • 0
                                                                          Никакой возможности проверить наличие

                                                                          как жаль что человечество не обладает никакими инструментами для поиска информации...


                                                                          Будем считать что нашли UNIX без vi(m).

                                                                          на основании чего? в mac os vim есть.

                                                                          • 0

                                                                            Из коробки или надо из исходников собирать? :)

                                                                            • 0

                                                                              сча проверю на новом маке… version 7.4.8056 — из коробки.

                                                                              • 0
                                                                                Еще есть, например, в homebrew — 8.0.0893 в данный момент.
                                                                                • 0

                                                                                  это уже не из коробки, да и сам homebrew надо ставить.

                                                                                  • 0
                                                                                    Ну не из исходников же собирать, как написано выше :)
                                                                                    • +1

                                                                                      Судя по контексту homebrew — пакетный менеджер под MacOS не от Apple, про который надо откуда узнать и как-то установить. По смыслу гораздо ближе к "из исходников собирать", чем к "из коробки".

                                                                                      • –1
                                                                                        На мой взгляд, по смыслу таки ближе к чему-то вроде aptitude install vim.
                                                                                        Сама установка homebrew в систему — буквально одна строчка копипаста.
                                                                                        • 0

                                                                                          Вот когда из коробки будет homebrew, тогда будет ближе, а то, что загружается из https://raw.githubusercontent.com/Homebrew/install/master/install вполне может и исходники скачивать, и компилять их, мало чем отличается от строки копипасты типа curl… | tar… && make && make install

                                                                                          • 0
                                                                                            Из коробки третьесторонний пакетный менеджер врядли будет, по известным причинам.
                                                                                            Но в любом случае, куча софта (вроде тех же vim/openssl/bash/curl/etc) таки идет из коробки.

                                                                                            А вот по поводу отличий от «make && make install» — позвольте не согласиться :) Сабж — это вполне себе приличный пакетный менеджер со всеми фишечками пакетных менеджеров.
                                                                                            • 0

                                                                                              В Gentoo тоже приличный пакетный менеджер со всеми фишечками пакетных менеджеров (и их там дальше больше, чем в среднем). Но вы же не скажете, что в Gentoo пакеты не собираются из исходников?

                                                                                              • 0
                                                                                                Ну в генту же можно (если мне память не изменяет, ибо зело давно я его ковырял) и бинарные пакеты ставить, не? И с другой стороны — в deb-based при желании тоже можно из исходников средствами пакетного менеджера пакеты ставить. Об чем вопрос то? :)
                                                                                          • 0
                                                                                            Сама установка homebrew в систему — буквально одна строчка копипаста.

                                                                                            не забудьте поставить xcode build tools.

                                                                                  • 0

                                                                                    Прикольно — плюсик к эпплу. Лет через 3-5 может перевесит при выборе очередного ноута :)

                                                                                    • 0

                                                                                      я сдался 3 года назад и окончательно перешел в армию людей переплачивающих непонятно за что… в целом именно нежелание выбирать и стало основным доводом (ну и еще желание собирать мелочи под xcode).

                                                                                      • 0

                                                                                        Да, за последние дни пару раз был на грани от того, чтобы просто поехать в магазин и взять прошку. Именно из-за проблемы выбора, ну и специфики киевского рынка ноутов — пощупать с десяток моделей ценой 1500+ просто так никто не даст, а макбуки можно.


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

                                                                                        • 0
                                                                                          но с прошкой были бы риски плохой работы софта с ретиной.

                                                                                          это если про специфичное что-то говорить, в целом я за 3 года таких проблем не испытывал. Хоть сколько нибудь популярный продукт нормально работает. Да и после ретины работать на обычном дисплее не хочется.

                                                                                          • 0

                                                                                            Ну не знаю можно ли назвать специфичными Windows и Linux :) А у них с высокими дпи проблемы не решены толком. То есть вроде оси поддерживают, но даже у популярного и современного софта проблемы с сотношением физических и логических единиц измерения.

                                                                                          • 0

                                                                                            Можно аналогично поступить, только рассматривать не макбуки, а thinkpad'ы, скажем.

                                                                  • 0

                                                                    он (точнее, vi) есть в busybox.

                                                                    • 0
                                                                      Если вы имеете ввиду MacOS, то Vim туда нормально заходит. Я себе поставил без проблем.
                                                                  • +8

                                                                    91,56384% времени работы в vim использую его как редактор конфигов на серверах, 95,843684% времени для редактирования файлов на диске использую IDE от JetBrains.

                                                                    • +5
                                                                      Эм. Vim умеет в рефакторинг, автокомплит (желательно не совсем глупый) и подсказки аргументов? Наверняка умеет за счет кучи плагинов.

                                                                      А вот умеет ли он в интеграцию с Docker, дебагерами, системами деплоя и тестирования, например? Синхронизацию с удаленными серверами, базами данных, удобная работа с Git? Управление менеджером пакетов? Сомневаюсь.
                                                                      Добавьте сюда еще 100500 фич современных IDE, о которых уже даже не задумываешься и Vim будет нервно курить в сторонке.

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

                                                                      P.S. Не сравнивайте потребляемую программой память и память, требуемую для открытия файла. Любая IDE без открытых файлов жрет памяти довольно много, но вот открытие файлов в ней — не жрет память практически совсем, как и Vim.
                                                                      • +2

                                                                        Уж очень категоричный пост. На мой взгляд даже самые прошареные IDE довольно лимитированы во всем, кроме навигации и дебага. Я например категорически не могу пользоваться встроеными средствами, типа git. Мне на парядок удобнее пользоваться консольными программами, поскольку они быстрее и понятнее. А вот навигация по коду в режиме просмотра в Idea мне нравится больше чем в vim.


                                                                        Про интеграцию с docker не совсем понял. Умеет ли билдить, запускать в докере? Таки да, запускать он может что угодно и где угодно. У вас некореектное представление об этой экосистеме. Для IDE на java верно следущее: есть плагин — есть функциональность. Для vim же вполне достаточно: есть консольная команда — есть функциональность. Плюс интеграция с python, что в пределе позволяет любые манипуляции с любыми объектами (если есть соответствующий модуль в pip), при чем даже repl можно сделать.

                                                                        • 0
                                                                          Для рутиных задач вполне хватает встроенных средств. Для всего остального, да, есть консоль, только вот нужна она довольно редко.

                                                                          Про Docker — просто первое, что пришло в голову. Здесь посыл в том, что IDE из коробки поддерживают популярные инструменты. Хотя интеграция в JetBrains с Docker мне не нравится, честно говоря.

                                                                          Весь этот спор про Vim vs IDE можно считать некорректным, т.к. Vim консольный, а современные IDE нет. Мне, как и 99% их пользователей, только лишь этой разницы хватит в пользу IDE.

                                                                          В пользу Vim обычно приводят какие-то сумасшедшие кейсы типа «Я могу с помощью пары нажатий и регулярки заменить какую-то неведомую фигню на другую неведомую фигню». И вроде бы да, это круто. Вот только зачем? Нормального рефакторинга и простого Поиск/Замена хватает в 99.999% случаев.

                                                                          В общем, статья ни о чем :)
                                                                          • +3
                                                                            Здесь посыл в том, что IDE из коробки поддерживают популярные инструменты.

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


                                                                            Я так прикидываю, что дело здесь даже в консольности, а скорее всего в команности, если так можно сказать (поскольку например mcedit тоже консольный, но не командный). Т.е. когда что-то хочешь сделать в IDE, ты либо знаешь хот кей, либо лезешь в минюшки. А в vim — либо знаешь хот-кей, либо выполняешь команду, в командной строке (не знаешь команду, говоришь :help).


                                                                            Ну и ещё один фактор популярности vim это эргономика: не зря же в каждой IDE есть vim плагин для редактора (рекомендую попробовать кстати).


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

                                                                            • 0
                                                                              Большинство vim'еров держат рядом открытый терминал и выполняют в нем все, что нужно, а в vim только правят.

                                                                              Грубо, я так же работаю и в IDE. git, docker, файловые команды, иногда grep, tail — это всё в консоли, а в IDE — просмотр и правка кода, иногда отладка. Иногда в консоли открытой в IDE запускаю vim даже для правки конфигов :)

                                                                            • 0
                                                                              Разве с вами кто-то спорил? Вы спросили умеет-ли Vim? Вам ответили — умеет.

                                                                              Мне, честно говоря, вообще не понятен посыл одно против другого. Зачем? Тем более для таких разных инструментов. По-моему куда лучше смотрится Vim + IDE.

                                                                              Лично я не вижу ничего зазорного в том, что бы проект писать в IDE, а скажем какие-то файлы открывать в Vim и производить поиск или анализ. Если информации много. Скажем сотни тысяч строк, то выискивать что-то руками или простым поиском- гиблое дело. А если строки очень похожи, то вообще жесть. И при этом даже несложная регулярка поможет вам сэкономить кучу времени и нервов.
                                                                              • 0
                                                                                Весь этот спор про Vim vs IDE можно считать некорректным, т.к. Vim консольный, а современные IDE нет. Мне, как и 99% их пользователей, только лишь этой разницы хватит в пользу IDE.

                                                                                Вот как раз TUI или GUI особого значения не имеет. Для меня главное преимущество IDE — полноценная поддержка такой сущности как "проект" и полноценный синтаксический анализатор.

                                                                                • 0
                                                                                  Попользовался плагином Fugitive (поддержка git в vim), теперь почти не использую git с консоли.
                                                                                  Так же хочу заметить у vim несколько пакетных менеджеров: Vundle.vim, vim-plug, pathogen.
                                                                                  Концепция у вим здоровская: он отлично умеет то для чего создавался: редактирование текстов, и для новичков нужно иметь немного усидчивости и посидеть на голом виме, чтобы понять что он может из коробки, без плагинов.
                                                                                  Кстати редактирование кода через ftp, ssh тоже из коробки (читать netrw)
                                                                              • +2
                                                                                Эм. Vim умеет в рефакторинг, автокомплит (желательно не совсем глупый) и подсказки аргументов? Наверняка умеет за счет кучи плагинов.

                                                                                А вот умеет ли он в интеграцию с Docker, дебагерами, системами деплоя и тестирования, например? Синхронизацию с удаленными серверами, базами данных, удобная работа с Git? Управление менеджером пакетов? Сомневаюсь.

                                                                                Тут скорее наоборот, vim не понимает кода, что вы пишите, потому рефакторинг, автокомплит и подсказки для него гораздо сложнее, чем интеграция со сторонними тулзами. Вывод: первое обычно умеет плохо, а второе замечательно.
                                                                              • 0
                                                                                При установке vim-a на headless сервере он тянет под 200 мб зависимостей, это единственное, что в нем раздражает.
                                                                                • +4
                                                                                  Так надо ебилд с -X мержить!
                                                                                  • 0
                                                                                    ебилд — это система сборки в каком-то дистрибутиве линукса или что?
                                                                                    Я про pkg install vim в FreeBSD если что. Собирать из исходников — тоже не вариант на сервере по нескольким причинам (не знаю как в Линуксах, но в FreeBSD сборка из исходников обычно натягивает зависимости новее, чем в системе пакетов, отсюда вылазят всякие конфликты иногда, т.е. нужно либо все из портов собирать, либо все из пакетов, миксовать не рекомендуется).
                                                                                    • 0

                                                                                      Да, это как порты в FreeBSD, только в Gentoo.

                                                                                  • 0
                                                                                    Я даже с SSD на 250Gb не заморачиваюсь и за 200 метров.
                                                                                    21 век, купите себе жесткий диск на террабайт и не мучайтесь.
                                                                                    Еще скажите трафик экономите.
                                                                                  • –1
                                                                                    У некоторых комментаторов наблюдается «гороховый эффект» лишь при одном упоминании vi/viM :) На мой взгляд, vi/viM — стандарт «де-факто» для использования в UNIX-like OS и без хотя бы базовых знаний команд vi/viM в Linux, не говоря уже о UNIX и коммерческих UNIX, комфортно и эффективно работать работать вряд ли получится. Однако вышесказанное не умоляет достоинств других текстовых редакторов — речь идёт исключительно о сложившейся традиции или «выборе сообщества», «выборе аудитории пользователей» — как это не назови.
                                                                                    • +3
                                                                                      > На мой взгляд, vi/viM — стандарт «де-факто» для использования в UNIX-like OS и без хотя бы базовых знаний команд vi/viM в Linux, не говоря уже о UNIX и коммерческих UNIX, комфортно и эффективно работать работать вряд ли получится.

                                                                                      Да не скажите. Вполне себе нормально живется без знаний vi/vim (: Для 99% случаев поправить мелкий скрипт и nano хватает.
                                                                                      • –1
                                                                                        Скорее всего у вас достаточно узкая специализация. Первые 10 лет работы в unix-like операционных системах я тоже думал, что мне нормально живется без знаний vi/vim.
                                                                                        • 0
                                                                                          Думаю, на этом ресурсе приветствуются аргументы, а не пафос.
                                                                                          • 0
                                                                                            На этом ресурсе большинство уведет карму в глубочайший минус просто за то, что им кажется, что выдвинутое мнение не совпадает с их собственным — поэтому нет никакой разницы, что именно здесь приветствуется.
                                                                                          • +2
                                                                                            Я средней руки программист-сисадмин-эникейщик, у меня 32 сервера под юниксом (от фряхи до qnx) и я не представляю зачем мне нужен vi/vim. Если мне надо поправить мелкий скрипт я сделаю это при помощи nano. Если мне надо поправить большой или написать новый — я не буду это делать на живчике, а скачаю на свой компьютер и запущу нормальную IDE. Хотя такой необходимости у меня просто нет, ибо на компьютере где я работаю есть точные копии того что лежат на сервере и я могу поменять у себя и залить все одной кнопкой.
                                                                                            • 0
                                                                                              Ну вот есть задача потестить новый фреймворк. Можно для этого запускать IDE, конечно. Но как быть в случае с пайтоном, например, если машина для разработки удаленная? Как подебажить опенстек на удаленном сервере? Можно, конечно, ковырять скрипты в тысячи строк с nano, но это просто не так удобно, как с vim, да и не везде есть nano (как и права на его установку), а vi 100% есть везде. Что делать, если надо написать небольшой модуль к Puppet, купить RubyMine? Как быстро поправить конфиг (выровнять строки, закомментить что-то)? Как быть, в конце концов, если редактируешь файл из nano, а sudo вызвать забыл? Абсолютно все вышеперечисленное можно делать без vi/vim, но когда вы делаете это в нем, вы не думаете обо всех этих сопутствующих проблемах, вы думаете только о том, как решить задачу. Может, такое сравнение понравится не всем, но это как печатать 10 пальцами — вы не думаете о кнопках, вы думаете только о том что вы хотите напечатать. Это позволяет концентрироваться и выполнять поставленную задачу лучше.
                                                                                              • 0
                                                                                                — я каждый день как раз пишу на питоне на удаленном сервере, IDE автоматически заливает файлы по sftp по нажатию ctrl + s
                                                                                                — Все остальные описанные операции хорошо делает scp + notepad++ например, при сохранении файла в блокноте, сцп автоматически заливает файл на сервер. Notepad++ довольно неплохо справляется с текстовыми задачами, к нему тоже есть куча плагинов. Да он и без плагинов довольно мощный, поддерживает кучу синтаксисов, макросы и всякое.
                                                                                                — с правами согласен, либо рут открывать по ssh, либо менять права на конфиг, не очень удобно. Но если вы руками правите кучу конфигов на куче серверов, то вы что-то делаете не так. А если один конфиг в качестве исключения, то тогда можно и права ненадолго сменить.
                                                                                                • 0
                                                                                                  Можно писать в IDE, а потом заливать по sftp. Скорость будет страдать, разумеется. И чем чаще вы будете сохранять, тем больше она будет страдать. Из таких маленьких страданий складывается большая боль. Но это кому что нравится — я часто вижу у людей желание делать вещи каким-то конкретным способом и не хочу им продавать свой подход. Но как мне кажется, спорить, что редактирование прямо на удаленной машине ощутимо быстрее, чем копирование целого файла каждый раз на эту машину, бессмысленно. Я в IDE занимаюсь только разработкой, например и почти никогда — тестированием новых вещей.

                                                                                                  Про все остальные операции — notepad++ не кроссплатформенный. И если вы им пользуетесь, то скорее всего, у вас интерфейс системы не очень подходящ под удобную работу по ssh. А так — он хороший, да. Почти как vim. Только с окошками и мышкой надо побольше тыкать.

                                                                                                  Про кучу конфигов и что-то не так — ну это очень голословно. У меня на одной работе постоянная разработка у людей на ажуре. Вот часто бывает, что надо заспавнить новую виртуалку, но что-то подхачить под нужды для тестирования. Вот прямо каждый день такое бывает. Что ж мне, оркестрировать каждую виртуалку, которая и живет-то часто несколько часов всего?
                                                                                                  • 0
                                                                                                    Можно писать в IDE, а потом заливать по sftp. Скорость будет страдать, разумеется. И чем чаще вы будете сохранять, тем больше она будет страдать. Из таких маленьких страданий складывается большая боль.

                                                                                                    Слово «автоматически» вам о чем-нибудь говорит? Я каждый день на работе почти целый день именно этим и занимаюсь, IDE настолько быстро сохраняет файл по sftp, что для меня это прозрачно. И даже намеренно попытавшись обогнать процесс сохранения, у меня ничего не получится.

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

                                                                                                    Серьезно? Прям таки ощутимо? Мне кажется слепым методом никто и не заметит разницы, включая вас. Но раз уж для вас так ощутимо быстрее, почему бы вам не отказаться от SSH и не править файл через консольник, стоя в датацентре? Нафига все эти пакеты по сети гонять, через многочисленные коммутаторы и маршрутизаторы, ощутимо быстрей будет. НО! Если вдруг у вас диалап, беру все свои слова обратно.

                                                                                                    но что-то подхачить под нужды для тестирования

                                                                                                    Что-то подфачить — это править сотню конфигов по тысячи строк руками? Где текстовые операции такие сложные, что vi незаменим, и другие редакторы и консольные инструменты не справятся? И такое каждый день? Вы меня заинтриговали, можно пример конфига и текстовых операций, которые вы производите?

                                                                                                    Я конечно тоже использую vi, но только там, где нет ничего другого и поправить требуется несколько строк.
                                                                                                • 0
                                                                                                  Если вы зашли на удаленку для того чтоб там «ковырять скрипты в тысячи строк с nano» — вы делаете что-то не так.
                                                                                                  Поправить переменную — любой редактор подойдет.
                                                                                                  Поправить скрипт — я лучше его скачаю и буду править локально и залью обратно, мне как-то спокойней это делать в удобном окружении настроенной IDE.

                                                                                                  Ну и по пунктам:
                                                                                                  > Что делать, если надо написать небольшой модуль к Puppet, купить RubyMine?

                                                                                                  Не знаю что это такое, простите.

                                                                                                  > Как быстро поправить конфиг (выровнять строки, закомментить что-то)?

                                                                                                  Я справлялся в nano. Самый сложный конфиг скачивал локально, ибо там было 2000 строк.

                                                                                                  > Как быть, в конце концов, если редактируешь файл из nano, а sudo вызвать забыл?

                                                                                                  Ну это просто нелепая ситуация.

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

                                                                                                  Меня уже лет десять пытаются тыкать носом в консоль и приучить что любое действие в ней удобней. Нет, это не так. Это привычней тем кто учит. С vim точно такая-же история. Вы к нему привыкли, вам в нем удобней — а мне удобней и привычней в nano и я еще не встречался с задачами где-б он меня тормозил. Я не вижу для себя никаких преимуществ, которые я получу овладев данным инструментом.
                                                                                                  • 0
                                                                                                    >Я не вижу для себя никаких преимуществ, которые я получу овладев данным инструментом.
                                                                                                    Вот тут можно было закончить, если бы вы это сразу написали. Я вижу для себя преимущества, овладев любым инструментом.
                                                                                                    • 0
                                                                                                      Вы лукавите. Человек всегда ограничивает свой кругозор в выборе. Я сделал ставку на IDE от Jetbrains, этот инструмент покрывает 400% моих требований. До этого я делал ставку на Qt. Зачем мне может понадобиться vim? Чтоб в беседе упомянуть «А я знаю vim»? Я им пользоваться не буду, у меня есть полноценная IDE, с подсветкой, отладкой, системой контроля версий и удобным для меня внешним видом, удобными хоткеями наконец, загрузкой на сервер одной кнопкой, подсказками.

                                                                                                      Вы предлагаете учить инструмент на просто так?
                                                                                          • 0

                                                                                            Это уже не совсем актуально. Во многих мейнстримовых дистрах nano по дефолту в качестве EDITOR, хотя и vi там есть.

                                                                                          • 0

                                                                                            Консоль — только VIM.
                                                                                            GUI — notepadqq.

                                                                                            • 0
                                                                                              Не знал про такой, спасибо!
                                                                                            • +3

                                                                                              Какая целевая аудитория у Atom? По скорости запуска и работы он как большая IDE, а по возможностям как простой текстовый редактор (например, Sublime).

                                                                                              • 0
                                                                                                А куда делся notepad++?
                                                                                              • 0
                                                                                                sed, vi
                                                                                                Под виндой notepad++, но только когда нужно открыть мелкий (<200МБ) текстовый файл.
                                                                                                • +1
                                                                                                  Я честно, долго и упорно пытался приспособить Vim как средство для web-разработки. Но даже с кучей плагинов он умеет меньше чем VSCode из коробки. Потом для Markdown. Но опять, отсутствие превью склонило выбор в пользу VSCode. В итоге, сейчас он прижился в основном как консольный редактор. Еще им удобно работать с большими файлами или если требуется большой объем, особенно нестандартного, редактирования текста. Все-таки история команд иногда очень сильно выручает.

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

                                                                                                  Надеюсь неовимовцы все-таки осилят LSP и тогда можно будет снова подумать о конкуренции Neo(Vim) с современными редакторами для разработчкиов. Потому что сейчас Vim ее полностью проиграл, что косвенно показывает количество и качество плагинов.

                                                                                                  Мой конфиг можно посмотреть и покритиковать на гитхабе.
                                                                                                  • 0
                                                                                                    > Еще им удобно работать с большими файлами

                                                                                                    С большими — не очень. Он начинает сильно тормозить на файлах в районе 300-600 метров. Я как-то попробовал открыть в нем sql дамп на что-то в районе гигабайта — он просто упал через минут 5-7 размышлений. К слову, sublime с этим файлом справился быстро и на ура.
                                                                                                    • +1

                                                                                                      Большие файлы как раз проблема: Vim грузит в память весь файл разом. Ещё больше проблема файлы с длинными строками: здесь одна строка — один C’шный unsigned char * и с длинной строкой реально не готовы работать ни подсветка синтаксиса, ни код для её редактирования.

                                                                                                  • +3
                                                                                                    А если обвесить vim плагинами до такой степени, чтобы он стал IDE, и сравнить?
                                                                                                    Что-то мне подсказывает, что он начнет проигрывать.
                                                                                                    • 0
                                                                                                      Вы, конечно, не про vim спрашивали, но я могу описать как происходит в моей конфигурации Emacs.

                                                                                                      Из-за его однопоточности всё может дойти до того, что при большом количестве событий на
                                                                                                      печать/перемещения курсора могут возникать подвисания (freeze) редактора на небольшое,
                                                                                                      но замечаемое глазом время (0.1-0.3 секунды).
                                                                                                      Если честно, всё равно по ощущениям более отзывчивый, чем IntelliJ IDE на достаточно мощных машинах,
                                                                                                      а на моём ноутбуке так её лучше не запускать, рискуют на пару с браузером вогнать кого-нибудь в swap.

                                                                                                      Но по потреблению памяти, нет, не факт, что будет проигрывать.
                                                                                                      Описанный выше «задумчивый» Emacs даже на достаточно большом количестве немаленьких буферов
                                                                                                      потребляет примерно 60-80Mb.

                                                                                                      tl;dr — да, вы правы, но экстраполировать на абстрактную IDE сложно. Зависит от её кривизны.
                                                                                                      • 0

                                                                                                        Что‐то мне подсказывает, что нет. Слишком простой ЯП: никакого JIT, GC на счётчике ссылок (простой mark&sweep для особых случаев). Даже AST нету, при создании функции просто сохраняется её исходный код. В результате ужасная производительность, но потреблять гигабайтами память здесь нечему: собственного аллокатора, резервирующего много места на будущее, нет, мусор не копится, код хранится в одном представлении, дополнения приходится оптимизировать, либо дёргать внешние программы (у некоторых языков, впрочем, можно запустить код на языке внутри процесса Vim).

                                                                                                      • +14
                                                                                                        >> Почему я до сих пор использую Vim?

                                                                                                        Потому что не знаете, как из него выйти? :)
                                                                                                        • +9

                                                                                                          Значит, вы используете Вим, потому что у вас мало памяти?