Comments 78
[ИронияНаГраниСарказма мод офф]
Если говорить про vim — то это уже эм сколько там лет хабру, 11? Тогда это 11 сезон сериала про vim.
Серьезно, когда мне надо, к примеру, сдвинуть блок кода на 2-3 отступа в право — мои руки делают это сами, когда меня спрашивают как это сделать в vim — я «зависаю» на несколько секунд пытаясь вспомнить. С IDE, лично у меня, так не получилось — приходилось отвлекаться на мышку, вспоминать в каком меню находиться нужный пункт, добираться до него.
В IDE нужно выделить этот блок кода и нажать таб. Или Shift+Tab в обратную сторону. Максимально просто и не надо подвисать на несколько секунд. И уж тем облее не надо вспоминать пункт меню.
:set sarcasm
В следующий раз специально приведу не тривиальную операцию, в пример, а что ни будь ярко-индивидуальное, трудно настраиваемое, работающее только у полутора анонимусов из-за специфичности.
:set sarcasm 0
Такая «кнопка» даже в Vim может быть: к примеру, дополнение pymode предоставляет интерфейс к rope, каковая является библиотекой для рефакторинга Python проектов (правда, в документации я увидел только переименование модуля). Но Python — это язык с динамической типизацией, много вы тут в автоматическом режиме не нарефакторите. Java и C++ — другое дело, тут рефакторинг автоматизировать гораздо легче (если не злоупотреблять макросами в C++).
Правда, во что я не поверю, так это в то, что IDE способны ещё и комментарии отрефакторить. Особенно если это не комментарии‐документация (где могут и часто должны возникать явные и типизированные ссылки на конкретные сущности вроде классов и методов), а просто комментарии к коду.
И ещё я не поверю в то, что есть вменяемый автоматизированный рефакторинг динамически типизированных языков, в т.ч. проектов, где часть кода на C++, а часть на каком‐нибудь luajit с его ffi.
В общем, старый добрый grep (точнее, его альтернативы) мне кажется хоть и менее удобным, но одновременно более надёжным и более универсальным.
для php есть
С IDE, лично у меня, так не получилось — приходилось отвлекаться на мышку, вспоминать в каком меню находиться нужный пункт, добираться до него
Ну тогда наверное для вас будет открытием, что большинство опытных пользователей современных редакторов и IDE все «стандартные» манипуляции с текстом делают с клавиатуры, а не мышкой.
А теперь представьте обратную ситуацию: опытный пользователь IDE, залез в vim (по уважительной причине, а как же!), собрался сделать то, что привык делать за пару тыков в клавиши, понимает, что не знает, как это сделать, и… Э-ээ… Ну… Меню? Мышка? Я вас умоляю, придётся идти в Яндекс и там гуглить мануал, или в маны вникать, куча телодвижений.
То есть то, в чём Вы увидели минус — это таки возможность найти редко используемое действие через удобный, хорошо структурированный и неглубокий классификатор, заодно и шорткат подсмотреть. Минус? Не думаю.
Только наличие меню в gvim не отменяет того факта, что в конце концов быстро делаются привычные действия, а медленно — непривычные. Поэтому скорость работы, очевидно, очень субъективный аргумент.
Я вот в Идее многие вещи делаю медленнее, чем в редактрое семёрки Delphi, но точно не считаю Идею хуже. Хотя для постоянной работы над проектом на Delphi 7 она, увы, не подходит. Или я таки просто не умею её готовить?
я пользуюсь почти постоянно gvim, глаза меньше болят…
но меню у меня отключено, оно лишнее...
Комбинация vim+tmux+i3 и мышка 99% не нужна
Очень верное замечание!
Серьезно, IDE-люди, сколько процентов функционала своей IDE Вы используете? 25-30%?
Что за аргумент такой? Одной самой нужной из других возможностей достаточно чтобы что-то использовать. Сколько вы изпользуете процентов возможностей своей жизни? 30-50%?
Visual Studio Code — кроссплатформенный редактор исходного кода, поддерживающий базовые возможности интегрированной среды разработки, созданный в Microsoft
Это не говоря уже, например, про пользователей Eclipse :)
Вообще, неправильно говорить, что IDE — узкоспециализированный инструмент. Наоборот, функционал тяжелых IDE способен заменить не только vim, но вообще весь инструментарий разработчика на вашем компьютере. Собственно разработка, отладка, визуальное проектирование, работа с данными, средства моделирования и документирования, профилирование, контроль версий, командная работа — всё это можно встретить в одной IDE. Куда уже шире.
Даже пользователи обычной Visual Studio немного обиделись, которая штук семь языков поддерживает «из коробки» и ещё немало с помощью сторонних плагинов.
В vim из коробки 500+ файлов синтаксиса =) Мне их столько не надо, но на какой язык\синтаксис бы меня не забросила работа — всё или уже есть, или легко скачать и доставить — C, C++, Bash, Python, Perl, PHP, Javascript, HTML, XML, Yaml, ini-файлы, error-файлы — это я пробовал сам.
разные конфиги для языков… прекрасно работает в IDE
минимальная поддержка синтаксиса для экзотики настраиваеться в 2 клика мышкой…
мультиязычные проэкты прекрасно подерживаються…
я пользуюсь в основном eclipse и VSCode…
работа без мышки… абсолютное дело вкуса… и привычки…
немного умею работать в VIM… и согласен с предыдушей статьей про режимы… именно из них вытекают все особенности VIMa
а в IDE для меня киллер фитча это дебагирование… задал конфигурацию, нажал кнопку мыши и все сразу на экране…
и код и переменные и логи… и терминал если надо…
и если забыл скомпилировать то все за тебя сделали…
и если забыл за аплоадить то тоже
и все из коробки…
Plugin в IDE поверхностно спасает, но есть ли плагин к вашей IDE такой, чтобы скриптовать расширеия? И в полном ли объеме поддерживается фунционал vim?
Легко))) пару дней и набросаем команду ".*" для создания кубиков и треугольников в 3D)))
Шутка)) полностью поддерживаю
vim тоже всё умеет, если плагины подключить.
У меня получается 4-6-пальцевый и не совсем слепой метод (надо видеть краем глаза контуры клавиатуры), но предпочитаю vim всем прочим консольным.
Использую IDE только там, где нужны её специфические возможности типа рефакторинга между несколькими файлами или тыкания в 500 ошибок, и то не уверен, что мне просто не хватило терпения найти плагин для этого.
Если Вы всё ещё хотите холиварить на тему Vim VS IDE, то не забывайте — это инструменты. Ваять доброе и вечное можно хоть с помощью awk, вопрос что использовать — дело лишь удобства и привычки.
Сам сижу на PhpStorm/PyCharm + IntellijRust c IdeaVIM. Да он не идеален, но поддерживает с горем пополам основные функции vim которых вообщем-то с головой хватает именно для редактирования, да и подсветка кода у этих IDE гораздо лучше чем VIM может себе позволить. VIM использую каджый раз когда IDE что-то не может: язык, большой файл, да просто заметки которые найти можно без лишних проблем.
Но обсуждения этого вариант утопает в войнах ситхов.
С одной стороны пользователи IDE которые не понимают зачем им Vim в их IDE. В теории их можно понять, порог входа в Vim не маленький, и не хочется тратить время на изучение.
С другой стороны гуру Vim-a сразу начинают искать способ завести свои 101 плагина, и импортировать .vimrc. А потом начинают песню «а король-то — ненастоящий», хотя большинство претензий это их привычки к разным плагинам.
А в чем проблема выйти из IDE (в смысле переключить окно) и посмотреть «неродные» файлы vim, sublime, чем-нибудь еще?
а ну и забыл…
Давай минус ананимус)))
IDE — хороший выбор, когда Вы окопались на 2-3 языках и никуда с них не уходите.
А, ну то есть хороший выбор для где-то 99% людей. Окей, на этом и сойдёмся.
Есть доклад "vim + tmux" https://www.youtube.com/watch?v=5r6yzFEXajQ
Не знаю, куда тут можно воткнуть i3 (хотя сам люблю и пользуюсь именно vim и tmux и i3).
— Нормального автодополнения (а не того, которое грузит процессор на 100% и виснет на несколько минут) нет.
— Нормального дебаггера (без необходимости делать print на каждую переменную) тоже нет.
Т.о. для меня vim так и не стал заменой ide, к сожалению.
Но надо ли ему таковой быть?
1. Нормальную поддержку проектов. Я знаю про плагины project и NERDTree, но последний — это вообще не о том, а project на больших проектах тормозит и были какие-то проблемы с импортом (прошу прощения, точно уже не помню)
2. Навигацию по коду — как минимум, переход от места вызова функции к месту определения (php). Да, ctags, но как делать индексацию? Руками всего проекта? Долго и неудобно.
Ещё очень хотелось-бы, но, думаю, нереально
1. Автоматическая генерация импорта (php)
2. Более-менее интеллектуальное автодополнение, а не тупо по списку слов.
Вот из-за отсутствия этих фич у меня производительность в IDE гораздо выше чем в vim, несмотря на его возможности по обработке текста. Поэтому, несмотря на все симпатии, я не могу полноценно использовать vim в повседневной работе.
я тоже начинал с php… я переходил на IDE и обратно.
все же вим мне больше понравился, но что бы в нем работать надо поменять рабочий процесс + доп приложения, но для этого надо работать под линухами, масдай приходилось дорабатывать под вим.
вот почему я многим советую не переходить под вим, это долгий процесс
Plug 'retorillo/json-ponyfill.vim'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'fatih/vim-go', { 'tag': '*' }
Plug 'nsf/gocode', { 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh' }
Plug 'Valloric/YouCompleteMe'
Plug 'wellle/tmux-complete.vim'
Plug 'scrooloose/nerdcommenter'
Plug 'majutsushi/tagbar'
Plug 'fholgado/minibufexpl.vim'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'amiorin/vim-project'
Plug 'Xuyuanp/nerdtree-git-plugin'
Plug 'altercation/vim-colors-solarized'
Plug 'IN3D/vim-raml'
Plug 'andreevlex/vim-language-1c-bsl' "OMG 1C
Plug 'vim-syntastic/syntastic'
1) Хватает плагина vim-projects и отдельного конфига в каждом проекте
2) Ctags + tagbar + vim-go
3) Не могу сказать, честно говоря даже не совсем понял о чем речь (давно отошёл от php, начинаю подзабывать этот ад)
4)YouCompleteMe+syntastic+ctags
Всё же главная киллер-фича Вима, тот фактор, который делает его широко используемым, а где-то и приоритетным — это… (Драматическая пауза, напряжённая музыка...) Вимеры! Люди, которым он нравится, которые его любят несмотря на "объективные недостатки" (с точки зрения их оппонентов) и даже ЗА них, потому что для них это — достоинства. Вот.
А меряться количеством микродвижений на полезное действие — не детский сад ли?
Немного о VIM и IDE