Я работаю программистом уже почти десять лет. И, как и для каждого, кто посвящает работе до 2/3 суток, удобный инструментарий имеет для меня огромное значение. Сегодня я хочу как следует порефлексировать, поэтому статья выйдет слегка необычной. Сразу же хочу дать дисклеймер: всё, что вы прочтете ниже, носит субъективный характер. Поэтому будьте открыты и снисходительны.
Приблизительно 2010 год — Notepad и все-все-все
Делая первые шаги в Java, я писал код в Notepad++. Да-да, я был тогда молод и простительно невежествен. Тогда я понятия не имел, что такое редактор кода. Мне казалось, что это просто Notepad с дополнительными кнопками.
Основное внимание я уделял изучению программирования, а DX (Development Experience) отошел на второй план. Единственно интригующим было то, что я мог запускать код с помощью плагина, нажимая на функциональную клавишу. Это давало большое преимущество по сравнению с работой в Notepad и командной строке Windows.
Ключевые моменты
Хорошо, когда можно писать и выполнять код в одном и том же месте.
Два года спустя — Eclipse
К этому времени я уже вполне мог писать приличный код сразу на нескольких языках. В какой-то книжке, не помню точно, автор советовал обратить внимание на такую замечательную вещь как Eclipse. Я попробовал и втянулся. Впервые инструментарий стал вызывать у меня привыкание. Удовольствие от написания, сборки и запуска Java Swing-приложений без погружения в системы сборки и исполнения было просто... непередаваемым.
Интернет был тогда невелик, поэтому я часто копался в оффлайновой документации, пытаясь разобраться в проблеме. Временами это было крайне нудно и утомительно, но другого выхода я не видел. И вот впервые я задумался о том, что Eclipse ведет себя вовсе не так, как моя предыдущая программа. Я еще не знал слова IDE. Мне хватало того, что Java работает на трех миллиардах устройств, и я должен хорошо в нем разбираться.
Ключевые моменты
Очень хорошо, если ваша программа может самостоятельно позаботиться о конфигурации.
Еще лучше, если программа подскажет, что писать дальше.
2014 — Знакомство с Linux и VI
Я купил себе новый синий ноутбук. На наклейке надпись: «Ubuntu». Что это за штуковина? Где мой DVD-диск с пиратской Windows и ключом активации, написанным на обратной стороне? Я сходил в школьную библиотеку, и, Боже, обнаруженная там книга по Unix вызвала у меня радостный трепет. Тогда я решил с концами пересесть на Linux (и, спойлер, больше так и не касался Windows).
Однако я не понимал, почему чудаки из интернета постоянно пишут, что редактировать конфигурационные файлы нужно с помощью какого-то VI. Кому охота открывать терминал, добираться в нем до искомого файла и запускать этот жуткий vi, из которого даже выйти невозможно?
Как ни печально, но изучение vi входило в учебную программу колледжа, и мне приходилось в нем работать. Но я все равно так сильно его ненавидел, что написал особый конфиг для gedit, лишь бы профессору казалось, что я работаю в терминале.
Ключевые моменты
Никогда не требуйте от людей достигать поставленных целей сугубо с помощью вашего любимого инструмента. Имеет смысл лоббировать ту или иную идею, но лишь для того, чтобы проверить, найдет ли она отклик у людей.
Все разработчики обязаны пользоваться Linux. Никаких исключений. (Личное мнение: я считаю macOS также дистрибутивом Linux).
2017 — Возвышенное (Sublime) искусство кодить
И вот все стало налаживаться. Я определился с выбором профессии веб-разработчика. Часто писал небольшие утилитарные приложения. И в очередной раз книжка, которую я читал, подсказала мне, что Sublime Text — это моя новая среда разработки. Круто, я в деле!
Есть в нем кое-что, что близко моему сердцу. Это возможность гибко настраивать редактор при помощи JSON-файлов. Я провел целую неделю, подправляя что-то в файле настроек. Это было почти волшебством — скопировать JSON-файл на USB-накопитель и сделать компьютер приятеля похожим на мой.
В конце концов «моя» версия Sublime стала выглядеть как совсем другое приложение. По сей день я остаюсь убежденным фанатом райсинга (модный термин, обозначающий тонкую настройку ПО под себя). И да, мне, как и пользователям WinRar, совершенно начхать на постоянные поп-апы Sublime с просьбой купить его.
Ключевые моменты
Sublime очень хорош для своего пула задач.
Единственная причина, по которой он «провалился», — это идеологическое сходство с VS Code, у которого есть корпоративная поддержка и прекрасное сообщество. Разработчики потихоньку перебрались из Sublime на VS Code, а, как известно, никто не разрабатывает плагины для программ, которыми лично не пользуется. И опять же Vim — он и рядом не стоит с Sublime и его мощным графическим интерфейсом, однако сообщество упорно поддерживает его десятилетиями..
2019 — Взлет VS Code
Я чувствовал, что становлюсь старше и профессиональнее. Sublime Text был для меня как на ладони. Каждая привязка клавиш и каждая конфигурационная опция жили в моей голове. Не говоря уже о множестве расширений, хорошо настроенных под мой рабочий процесс.
В тот момент потеря папки с конфигами Sublime внушала больше опасений, чем пропажа самого ноутбука. Шучу, тогда я уже знал git. Но в офисе требовалось работать сугубо в VS Code, поэтому еще месяц я потратил на его настройку.
В конце концов, я сам изумился тому, какое чудище Франкенштейна у меня получилось. Мой VS Code выглядел как Sublime, работал как Sublime, а запускался дольше и тяжелее, чем старый-добрый Eclipse. Хуже всего было то, что senior ругался последними словами всякий раз, когда пытался отлаживаться на моей машине. Типичная проблема хакера, ничего удивительного.
Мне чертовски нравится экосистема расширений VS Code. Можно сидеть в редакторе и чувствовать, что под его капотом редактора что-то большое и умное. В нем было то, чего мне не хватило в Sublime. По сей день VS Code остается моим любимым инструментом для написания кода. Если что-то можно запрограммировать, то это обязательно будет происходить в VS Code. Мне он кажется современной версией emacs.
На собственном опыте я ощутил разницу между языками строгой и динамической типизации. В те дни я работал с Ruby on Rails, а динамически типизированные языки — это кошмар любого редактора. Убейте, но я ненавижу Ruby, Python, JavaScript и т.д., несмотря на то, что ежедневно пишу на них по естественным причинам. Иногда я даже прихожу поскулить и поскрестись под двери JetBrains.
Ключевые моменты
У VS Code была концепция универсального редактора. И сообществу удалось претворить ее в жизнь.
Ядро VS Code — жесткое и продуманное, а поверх него можно делать всё, что душе угодно.
Его благословение оборачивается и его проклятием. Поскольку каждый может легко и быстро написать расширение (а зачастую «легко и быстро» превращается в «тяп-ляп, вот вам плагин»), VS Code зачастую безосновательно упрекают в тяжести и медлительности.
2021 — Стремление к совершенству
Что такое ОКР, спросите вы? Это состояние, когда ты слишком строго относишься к тому, как все должно быть устроено. Возможно, кому-то это покажется скорее достоинством: мол, вау, это же круто, но по факту это история про «А-а-а! Края стола не параллельны краям ноутбука, паника!».
К тому же, я легко отвлекаюсь, поэтому мне нужна максимально сосредоточенная обстановка. Я отвлекся от написания этой статьи, чтобы поискать картинку выше, а вернулся лишь прочитав о фильме, из которого взялся этот мем...
Мне нравится, когда обе среды, как снаружи, так и внутри ноутбука, выглядят предельно минималистично. Посмотрите на скриншоты в конце статьи. Там даже иконок «скрыть-развернуть-закрыть» нет. Тюнинг всего, от расстояния между буквами в шрифтах до паддингов во всплывающих окнах, волнует меня не по-детски. Мне доставляет огромное удовлетворение заниматься подобными вещами, и если поискать в Гугле «Unix ricing», вы поймете, о чем я.
Однако в последнее время у меня стало болеть запястье из-за постоянных прыжков с букв на стрелки курсора. Работа по 80 часов в неделю имеет свои «плюсы». ????
Я погуглил об этой проблеме и, как ни странно, одним из советов было использование Vim (-mode) на компьютере. Коварный vi! Пока я не запустил его, я даже не понял, что это он меня настиг. Во мне тут же вскипела застарелая ненависть.
Для серверных нужд я пользовался Nano. Позже перешел на micro, который был по своему функционалу ближе к VS Code. Многие годы я делал всё, лишь бы снова не столкнуться с vi, моим заклятым врагом. А еще я настолько погряз в своих диких привычках, что буквально каждый инструмент, которым я пользуюсь, должен обеспечивать мне дикий микс из хоткеев Sublime и VS Code.
Боже! Я ненавижу себя. Я даже не могу пользоваться чужим компьютером, на котором установлена чистая версия этого ПО. С годами я забыл о том, как в свое время ценил awk, sed, grep и т.д. Настало время меняться. Нельзя и дальше жить в таком постыдном отрицании.
Ключевые моменты
Делайте то, что приносит вам удовольствие, а не только то, что позволяет сбежать от реальных проблем.
Все мы живем в отрицании чего-либо. Это нормально — рано или поздно наступит ваш черед испытать осознанность.
Изучите основные (gnu-) инструменты Linux.
В долгосрочной перспективе их преимущества будут неоценимы.
2022 — Привыкание к Vim
Я решил перейти на Vim. Не потому, что он лучше подходит для моего конкретного рабочего процесса, а потому, что хотел покончить с зависимостью от VS Code.
Да, я понимал, что все равно не смогу работать в Vim в офисе. Но дома — пожалуйста. Кстати, я премного благодарен YouTube'ру по имени Бен Авад, который открыл мне спокойный способ миграции на Vim.
Тогда меня ничего особенно не удивляло в Vim, потому что буквально каждая его фича могла быть реализована сочетанием клавиш в VS Code. Тем не менее постоянная путаница между редакторами изматывала. Я даже специально отключил Vim для всех папок моих рабочих проектов.
Уже к концу года я мог свободно перемещаться в VS Code, используя комбинации клавиш из Vim. И даже начал видеть в последнем эргономические и функциональные преимущества.
Ключевые моменты
Нужно быть практичным и последовательным. Сначала научиться ходить, чтобы потом бегать.
Соблазн достичь того, что у других не получается, является хорошей мотивацией.
Личной силы воли не хватит, чтобы исследовать эти неосвоенные территории. Без катализатора и сильной мотивации не обойтись.
2023 — Окончательная миграция
С моей стороны было чертовски глупо думать, что в один прекрасный день я удалю VS Code и перейду на Vim, потому что смогу работать в нем ничуть не хуже. Я не осознавал, что использую Vim для выполнения действий а-ля VS Code. Все, чему я научился, сводилось лишь к нескольким новых сочетаниям клавиш. VS Code к этому моменту уже захватил контроль над моей личностью. В нем я мог молниеносно просматривать код, и это вызывало уважение коллег. Поэтому я вздохнул и вернулся к старой парадигме, оставив Vim в прошлом.
Я был рад уметь делать все, что и эти «ботаники» из Vim, но осознавал: это не моя зона комфорта. Проблема заключалась в том, что я использовал VS Code с гибридной привязкой клавиш, а теперь попытался заменить этого кадавра на что-то совсем другое. Странное решение, не правда ли?
К счастью, недавно выдался перерыв в работе над офисными проектами, и я понял, что это тот самый шанс, чтобы изменить свои установки. Я осознал, что переход с Sublime на VS Code не доставил мне никаких проблем, он проходил в удовольствие. Я снова открыл Neovim. Это было болезненно, но у меня был план. Всякий раз, когда мне чего-то не хватало, я читал документацию по Neovim и добавлял функции.
Меня радует, что я сам, сознательно написал каждую строчку своего конфигуратора редактора. Это заняло целых два месяца, но теперь у меня есть собственная милая маленькая PDE (Personal Development Environment).
Это охватывало все — от величины отступов по умолчанию до дерева файлов и языковых серверов. Позже я посмотрел на YouTube видео от ThePrimeagen о настройке Neovim, и оно настолько меня перегрузило, что мне пришлось взять недельный перерыв на обдумывание собственной конфигурации. ????
Ключевые моменты
Примите к сведению теорию айсберга. В первую очередь заметна часть, торчащая над водой, а не вся та работа, которая потребуется для понимания основ.
Моей самой большой мотивацией для окончательного перехода был шлейф величия, окружающий Vim как программу. Все, что показано на скриншотах ниже, — это текст в окне терминала, никаких изображений, никаких реальных кнопок или какого-либо графического интерфейса. Это даже не настоящие иконки. Это действительно сложно — и сделать, и понять. Нельзя изменить шрифты или их размер. Всё, что есть у вас в распоряжении — это аккуратное манипулирование текстом в черном окне терминала. Я невероятно уважаю людей, которые создали все это.
Сегодняшний день
Теперь, когда я полностью перевел свои рабочие процессы на Neovim, я не ощущаю разницы. Я уже привык к биндингу Vim, изменилась только эстетика. Но самое приятное заключается в том, что я понимаю, как работают все его составные части.
Я знаю, как работают сообщения об ошибке в строке, откуда берутся все эти автозаполнения, как форматируется каждая строка и многое другое. Теперь, когда я вижу что-то, я размышляю о том, как это сделать, а не о том, как это использовать.
В конце концов, я инженер, и моя личность вращается вокруг двух основных вещей: насколько хорошо я разбираюсь в программном обеспечении и что я могу создать/создаю
Скриншоты моего кодерского сетапа
К сожалению, я не могу подробно описать все экраны и утилиты, но если вам понравится эта конфигурация, я могу написать статью о том, как все настроить с нуля. Своего рода подробное руководство по основам применения терминала и наладке Vim.
Хотите попробовать мой сетап? Скачайте его отсюда: https://github.com/sameer1612/.dotfiles
Ответы на вопросы
Сделает ли меня более компетентным разработчиком использование Vim?
— Да, я могу это гарантироватьСложно было перейти на него?
— Не слишком-то. Дело ограничилось изучением пары сотен новых горячих клавиш, lol. Но у меня есть собственное «кунг-фу» для их быстрого изучения.Почему ты так на этом зациклен? Это всего лишь редактор! Работа – это то, что ты в нем пишешь, а не он сам.
— Вы хотите стать инженером или кодописателем? Подумайте и скажите прямо сейчас. Хорошо, что вы выбрали инженера. А теперь подумайте снова: как много вы упускаете за слоем абстракций, которые создает для вас привычное рабочее окружение. Вы же не хотите быть инженером со слабыми фундаментальными знаниями, ведь так?Выглядит очень сложно. А я вывезу?
— На это ушло два года, несколько раз я бросал это дело, и все получилось лишь когда я начал с нуля и постепенно наращивал функциональность. Теперь это мое детище. Я не могу отозваться о нем плохо. Интерес — это не когда ты выбираешь что-то, чем будешь заниматься. Настоящий интерес приходит, когда ты вкладываешь во что-то много усилий.
Комментарии (324)
gatoazul
26.10.2023 20:53+22All you need is FAR...
gev
26.10.2023 20:53+5mc
gatoazul
26.10.2023 20:53+1За неимением Фара в Линуксе и mc сойдет. Но придется привыкать ко всяким странностям и мелким глюкам.
mayorovp
26.10.2023 20:53+3igorts
26.10.2023 20:53а кто работал с фар под линукс?
какие впечатления? есть смысл вместо mc использовать?
dephonica
26.10.2023 20:53+2Впечатления: наконец-то скорость работы в Linux приблизилась к скорости работы в Windows. И оказывается, что консоль в Linux может быть супер-отзывчивой, а не как в mc.
v1z
26.10.2023 20:53Ну хз, для быстрой навигации удобнее использовать fasd / autojump или аналоги. Просто пишешь j название директории, и сразу в неё попадаешь.
BoldDwarf
26.10.2023 20:53+2Весьма точное замечание.
Для меня появление far2l стало решением многих проблем в Linux.
В том числе и редактирования текстовых файлов.
ImagineTables
26.10.2023 20:53+3All you need is FAR...
…MORE powerful IDE named Visual Studio Professional.
MadMaxLab
26.10.2023 20:53+10Теперь автору осталось убрать все эти фреймворки и сторонние библиотеки из самого кода, чтобы понять "как много вы упускаете за слоем абстракций".
После этого можно будет точно написать "Теперь это мое детище." :)Tony-Sol
26.10.2023 20:53Натыкался на мнения что это приемлемый способ «вкатиться в vim» - использовать готовые сборки, например Lazy/Astro/Cosmic/SpaceVim - так можно сразу увидеть возможности глубоко закастомизированного vim, без того чтобы потратить год (а скорее всего забросив спустя непродолжительное время) на попытки сделать все самому
Ivanii
26.10.2023 20:53+1Что всегда бесило в линух подобном софте - ты не можешь его сразу использовать, даже эти сборки, почему нельзя сделать как notepad++ - скачал, распаковал, запустил и работаешь? Даже Ардуино 1.х версий так работает и с минимальным вмешательством становится полностью портабл.
Arenoros
26.10.2023 20:53+67Каждый раз от прочтения подобных статей про "как я перешёл на vim и теперь всем его советую", возникает столько вопросов, но ни когда на них нет ответа. А тут прям целая гора спорных утверждений которые я не мог не прокомментировать.
Ради чего все эти приседания с настройкой и запоминание сотен хоткеев текстового редактора который вообще не для этих задач был создан?
Почему vim, а не emacs?
Как использование какого то текстового редактора делает разработчика компетентнее и в чем?
При чем тут вообще фундаментальные знания и как примитивный текстовый редактор даст знание о том как работают кэши процессора, дисковая подсистема, сетевые интерфейсы, криптография, компиляторы и прочие реальные фундаментальные знания?
Какие ещё "абстракции" текстовый редактор скрывает? я мб чего то не знаю из-за того что пользуюсь VS и большую часть времени пишу на C/C++.
PuerteMuerte
26.10.2023 20:53+15Ради чего все эти приседания с настройкой и запоминание сотен хоткеев текстового редактора который вообще не для этих задач был создан?
С этим-то как раз понятно - есть масса людей, которым нравится тратить кучу времени, настраивая свою рабочую среду "под себя". Это примерно как делать перестановку мебели в квартире. Кому-то хочется новенького, кто-то удивляется, зачем ломать то, что хорошо работало.
pathofpw
26.10.2023 20:53-12Ради чего все эти приседания с настройкой и запоминание сотен хоткеев текстового редактора который вообще не для этих задач был создан?
В первых это красиво.
Во вторых это кайфово.
Создан был как раз для управления компьютеров и редактирования текстов - что и есть программирование.
Как использование какого то текстового редактора делает разработчика компетентнее и в чем?
Кайфующий от своей работы всегда будет компетентнее того, кто не кайфует.
Стремящийся к минимализму и эффективности разработчик компетентнее не стремящегося.
Ищущий и пробующий новые инструменты будет компетентнее не ищущего.
warhamster
26.10.2023 20:53+18Создан был как раз для управления компьютеров и редактирования текстов
Ага, для управления терминалом 1970х годов с коннектом в 300 бод и клавиатурой без стрелок. У модального режима, который адепты вима считают образцом эргономики, ноги растут именно оттуда.
Цитата Bill Joy, автора оригинального vi:
It was really hard to do because you've got to remember that I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem. It was just barely fast enough. A 1200 baud modem was an upgrade. 1200 baud now is pretty slow.
Sau
26.10.2023 20:53-1Так или иначе вы хотите передавать компьютеру информацию о том, каким хотите видеть текст. Чем короче частоиспользуемые команды, тем лучше (а точнее чем меньше сумма произведений частоты использования команды n на её частотность), но тем выше порог входа.
И вот тут лимит в 300 бод в момент разработки был очень кстати.
warhamster
26.10.2023 20:53+15Чем короче частоиспользуемые команды, тем лучше
Это для машины так. Для человека есть куча дополнительных факторов: время генерации последовательности команд, вероятность ошибки, физическая сложность выполнения команд, и прочее.
Например, мне надо переместиться на 3 строки вниз и 6 символов вправо и что-то там набрать. Теоретически что-то типа "3 j 6 l" - самый короткий способ, 4 нажатия. Практически - высчитать строки и символы дольше, чем просто передвинуть курсор. Для 2 строк и 2 символов вим так и вовсе в проигрыше в любом случае, потому что надо еще "esc" и "i". К слову о режимах - было бы интересно посчитать потери времени на ошибки "не тот режим". В общем, много моментов.
Было бы неплохо поставить эксперимент, но нормально его спроектировать может только очень опытный пользователь вима, это не я..
gatoazul
26.10.2023 20:53+1было бы интересно посчитать потери времени на ошибки "не тот режим"
Это довольно легко оценить и без Вима. Прикиньте, сколько раз за день вы чертыхаетесь, потому что на клавиатуре стояла неправильная раскладка - английская вместо русской или наоборот.
snaiper04ek
26.10.2023 20:53+1Пример с раскладкой не вполне корректен, по причине того, что после ввода текста, вы не возвращаете раскладку в исходное положение. То есть нет главной раскладки, они равнозначны, и переключаются по требованию.
А у вима как раз есть самый главный режим - коммандный. Как только вы закончили вводить буковы, вы должны нажать esc. Вся навигация, все действия - именно в нём. Вставка буквально только для того чтобы вставить буквы, и вернуться к основному режиму. Не нравится формулировка "главный режим" - окей. Тогда "режим по-умолчанию". Суть одна.
Так что, если вы перепутали режим, то это, так называемое, "skill issue". Ну, либо вас отвлекли слишком внезапно. В этом случае, просто на всякий случай, когда возвращаетесь к работе, контрольный esc в консоль, даст возможность начать работу с режима по-умолчанию.
Aldrog
26.10.2023 20:53Кстати, именно поэтому я настраиваю отдельную раскладку для каждого окна и чтобы для новых окон всегда была латиница. Конечно, всё равно в каком-нибудь долго открытом браузере периодически будешь забывать какая раскладка стоит, но массу других случаев заметно облегчает.
santjagocorkez
26.10.2023 20:53Постоянно чертыхаюсь, когда вместо | на клавиатуре располагается левый край бэкспейса, увеличенного до 2U, а вместо энтера оказывается бэкслэш.
atshaman
26.10.2023 20:53+1Там еще и хоткеи забиты исходя из весьма специфической клавиатуры, ага. А что происходит с эргономикой при смене раскладки на какой-нибудь dvorak...
domix32
26.10.2023 20:53Да в общем-то решается все той же настройкой и фактически не привязано к конкретному редактору - как хоткеи VS Code чуствуют себя на Двораке, например?
atshaman
26.10.2023 20:53JB'шные нормально - но я за "анатомическую эффективность" и не топлю ) - а вот когда hjkl у тебя по всей клаве разбегаются да еще по всем трем рядам под две руки - тут бИда.
domix32
26.10.2023 20:53JB'шные нормально - но я за "анатомическую эффективность" и не топлю
Я не очень шарю за клавиатуры и не очень понимаю что этом могло бы значить.
Тут скорее вопрос за софтварные лейауты/маппинги. Кнопки-то всё равно по идее qwerty прилетают. CTRL+C/CTRL+V по тому же принципу должны работать на Двораке, если это конечно не какаие-то особенные клавы.
WhiteBarsik
26.10.2023 20:53+5Кайфующий от своей работы всегда будет компетентнее того, кто не кайфует.
Стремящийся к минимализму и эффективности разработчик компетентнее не стремящегося.У вас неправильно поставленная априори. То есть по вашему кайфует только тот, кто использует vim и никак иначе.
Смею предположить, что компетентнее не тот, кто стремиться к минимализму, а кто стремиться к результативной эффективности. Этак можно было бы сказать, что пользователь ведра возле колодца компетентнее владельца насоса.pathofpw
26.10.2023 20:53-1кайфует только тот, кто использует vim и никак иначе.
Нет, кайфует тот, кому интересно пробовать разные инструменты и их комбинации, а не зацикливается на vscode/idea.
Этак можно было бы сказать, что пользователь ведра возле колодца компетентнее владельца насоса.
Нельзя так сказать. Минимализм не подразумевает луддитство. В примере с ведром и насосом в первом случае набор инструментов и действий (ведро, веревка/цепь, коромысло) больше, чем во втором (насос и шланг), как и количество необходимых действий.
gatoazul
26.10.2023 20:53+1Знаете анекдот про ноту? Вот тут второй сверху:
https://queenguitar.by/content/yumor-anekdoty-i-veselye-istorii
pathofpw
26.10.2023 20:53За сайт спасибо, полезный. И за анекдот тоже, хороший, мудрый.
Как ни крути, что бы свою ноту найти, нужно пройтись по всем октавам и полутонам.
holodoz
26.10.2023 20:53+7Ищущий и пробующий новые инструменты будет компетентнее не ищущего.
Я бы не стал называть vim новым инструментом, не фанаты ли vim цепляются за прошлое и пытаются своим карго-культом компенсировать реальные скилы? Против vim ничего не имею, иногда надо, инструмент полезный. Но делать его единственным инструментом? нет, спасибо
pathofpw
26.10.2023 20:53фанаты ли vim цепляются за прошлое и пытаются своим карго-культом компенсировать реальные скилы
Большинство пользователей vim умеют пользоваться современными ide, только если это не редко кодящие ссадины (как нынче модно называть - devops).
Мало кто из пользователей современных ide сможет эффективно программировать в vim. Однако накидываются на мнение о редакторе, выраженное в виде статьи именно последние.
Так кто выходит фанат, за что-то цепляющийся и пытающийся компенсировать отсутствие определенных скилов? :)
iig
26.10.2023 20:53В vim очень хорошо с автоматизацией. Поэтому для конфигов это очень хороший инструмент. А для программирования - можно, конечно, если обмазать как следует плугинами. Подсветка синтаксиса и скобок - вот и все что он умеет из коробки. И стартует быстро ;)
atshaman
26.10.2023 20:53Вот кмк как раз для конфигов оно оч не оч в плане автоматизации. В смысле, если ты кодишь на js - тебе ничего кроме синтаксиса этого самого js и не надо, а вот конфиг апача, nginx'а, netplan'а (мм-ммм, пробельчики!), кондовый ini, новомодный toml, а рядом аппликушники нажысонили автоматизировать - 2Ъ
ris58h
26.10.2023 20:53если ты кодишь на js - тебе ничего кроме синтаксиса этого самого js и не надо
Сильное заявление. Подсветка ошибок, навигация, автодополнение, рефакторинг и дебагер - весьма полезные вещи, на мой взгляд.
atshaman
26.10.2023 20:53Об этом ниже уже говорил - есть IDE, есть "редактор кода", есть "текстовый редактор" - где-то они пересекаются, где-то одно можно приблизить к другому - но в общем-то это разные вещи. Тут я именно о функциональности "редактора (кода)" говорил
strvv
26.10.2023 20:53ещё помню, в конце 90-начале 2000х, напрямую, без м4 редактировать sendmail, в лоб, все эти ; и весьма через дупу описываемые транспорты.
интересно, как там синтаксис подсветить - там всё очень неоднозначно.
Einherjar
26.10.2023 20:53+12Мало кто из пользователей современных ide сможет эффективно программировать в vim
Ну так даже пользователи vim не смогут это делать эффективно, потому что ide это несколько больше чем текстовый редактор, а программирование это не только набор текста. И скорость его набора это вообще последнее от чего зависит эффективность.
pathofpw
26.10.2023 20:53-7пользователи vim не смогут это делать эффективно
Весьма опрометчивое заявление.
скорость его набора это вообще последнее от чего зависит эффективность
Скорость набора возможно, скорость редактирования и отладки далеко не последнее.
Чего такого умеет современная ide, чего нельзя сделать из vim?
Einherjar
26.10.2023 20:53+3скорость редактирования и отладки далеко не последнее
Ну так в любой большой IDE средства для этого куда мощнее
Brogahnl
26.10.2023 20:53+4Показать всю иерархию классов для текущего класса одной кнопкой.
Показать SQL запрос при отладки SQLAlchemy.
Локальная история изменения файла.
saidelman
26.10.2023 20:53Извините, но локальная история изменений в виме отличная. Вот плагин для визуализации дерева undo/redo: https://github.com/simnalamburt/vim-mundo.
Про остальное не знаю, не требовалось. Иерархия классов скорее всего решается с помощью языкового сервера.
Brogahnl
26.10.2023 20:53Вот так нынче выглядит отличная история изменений.
Просто тыкаешь стрелочку и тебе актуальный файл правит.
А еще там прокрутка есть. Удобная.
Видите как там удобно слайдеры ползут справа?
Зачем мне глаза об дифф файлы ломать?
+ К тому я бегло глянул и не увидел "External Change" как в продуктах Jetbrains
saidelman
26.10.2023 20:53+1У нас с вами разные задачи, возможно. Мне от истории локальных изменений нужно, в основном, именно дерево, чтобы видеть случаи, когда я что-то писал, потом отменил и написал новое, а очень хочется увидеть состояние до первой отмены. И в дереве это достаточно несложно ищется. Плюс когда я пользуюсь этой фичей, то мне нужно посмотреть на маленькие изменения (буквально пара строк), а не на несколько экранов, так что дифф вообще не напрягает.
Насколько я понимаю механику работы этих плагинов вима, они просто визуализируют то, как вим отслеживает историю изменений файла. Вим из коробки учитывает изменения снаружи (
echo >> foo.sh
), так что плагины это тоже отображают.А вот количество слайдеров на скриншоте немножко пугает :)
atshaman
26.10.2023 20:53+4Ох. Что умеет делать мерседес, чего нельзя сделать в жигулях? "Но есть нюанс"
bear11
26.10.2023 20:53+2vim не умеет примитивнейшей вещи: найти и заменить в файле
строку с произвольным содержимым, заранее на нее не смотря и не анализируя, на другую!
Нужно экранировать всякое попадающееся внутри cтроки.
Если скажете, что я не прав - покажите, как именно в vim это делать. Условие - произвольная строка из печатных символов ASCII.
Arenoros
26.10.2023 20:53не, ну такие банальные вещи офк он умеет и относительно просто там обычный sed синтаксис, на сколько это удобно и интутивно вопрос конечно спорный.
но вот делать реально полезные вещи которые должна уметь ide такие как поменять сигнатуру функции, переименовать хедер в плюсовом проекте, отобразить все имплементации или найти специализации шаблонов. Я даже представить себе не могу какими плагинами нужно обмазаться что б иметь хотя бы пародию на это. Это не говоря уж про стек трейсы, профилирование и прочее.
includedlibrary
26.10.2023 20:53+1coc.nvim + language server вполне справляются с переименованием метода/функции, нахождением мест, где этот метод/функция используется. Плюсом идёт автодополнение и возможность посмотреть справку на функцию или метод или только её сигнатуру. Но я хз, со всеми ли языками это нормально работает, я только с хаскелем и сями пробовал.
karon
26.10.2023 20:53Можете пожалуйста, отрисовать стурутуру бд со связями
Посмотреть как сгенерируется uml код в картинку
А потом отправить все это в кубернетис, подключиться к поду и посмотреть логи?
gatoazul
26.10.2023 20:53Более того, во время набора ведь еще думать приходится, а не с листа готовое набирать.
net_racoon
26.10.2023 20:53+7Создан был как раз для управления компьютеров и редактирования текстов - что и есть программирование.
А я думал там думать надо, а редактирование текста- это побочный эффект А тут вот как..
atshaman
26.10.2023 20:53+3Это, пардону прошу - "заклинания" какие-то. "Кайфующий от работы" неофит априори компетентней специалиста, которого давно-и-все-задолбало, ага. Неофитам понравится.
Удовольствие от работы очень условно коррелирует со способностью качественно её выполнять, увы.
ZillahGiovanni
26.10.2023 20:53+1Ради чего все эти приседания с настройкой и запоминание сотен хоткеев...
Вот тут вы про какой редактор? VS Code? 8))
В Vim если "выучить" пару комбинаций, легко догадаться как использовать все остальные и их не нужно учить, потому что они изначально придуманы очевидными и эргономичными.
Для примера:
1) как удалить строку: dd (в VS емнип: Crtl+Shift+K)
2) как удалить слово: dw
3) как удалить часть строки от курсора и до конца строки: d$
4) как удалить часть строки от курсора и до начала строки: d^
5) как удалить несколько строк: а вот не скажу, сами догадайтесь 8))
... для несведующего человека это конечно похоже на магию, но постичь ее достаточно легко.Почему vim, а не emacs?
Почему бы и нет? 8)
iig
26.10.2023 20:53+6как удалить слово: dw
Не слово, а символы от курсора и до ближайшего разделителя. Если хочется удалить несколько слов.. лучше не пытаться, не угадаете ;)
легко догадаться как использовать все остальные
Не так легко как кажется ;)
dp - что удаляет, как вы думаете?
ZillahGiovanni
26.10.2023 20:53+1Не слово, а символы от курсора и до ближайшего разделителя
Тут да, маху дал... 8)
PS кстати очевидное 3dw вполне себе работаетdp - что удаляет, как вы думаете?
Погуглил, а оно точно к Vim относится, а не к Vimdiff? ;o)
В целом я имел ввиду частоупотребимые операции, они достаточно очевиды.iig
26.10.2023 20:53Погуглил, а оно точно к Vim относится, а не к Vimdiff? ;o)
realpath $(which vimdiff) /usr/bin/vim.gtk3
Выглядит как утка, и крякает внутри себя тоже как утка ;)
Alexey2005
26.10.2023 20:53+2Эти комбинации в значительной мере обесцениваются тем, что в разных мета-режимах они дают разный результат, при этом зачастую не очевидно, в каком мета-режиме вы сейчас находитесь. Это вполне обычная ситуация, когда вимер машинально прожимает какую-то комбинацию клавиш - и получает совершенно не тот результат, на который рассчитывал.
Например, жмёт Ctrl+U, рассчитывая проскроллить текст, а вместо этого теряет целый абзац набранного, причём без возможности откатить это командой Undo. Или жмёт zz, а vim просто берёт и молча закрывается.
И на такие грабли здесь наступают регулярно, потому что эффект большинства хоткеев здесь зависит от контекста, метарежима и кучи других факторов.
Arenoros
26.10.2023 20:53+5Нет, я про нормальную IDE
Мне не нужно рассказывать про базовые команды vim, я им больше 10 лет пользуюсь. Но за кой ляд из буханки хлеба делать троллейбус мне совершенно не понятно.
"Очевидны и эргономичны"
dd почему не ds?
И когда это удаление строк вообще было проблемой хоть в каком то редакторе? Нафига мне знать эти команды? Я сейчас пишу комментарий и удаляю часть текста, мне для этого нужно считать сколько слов мне нужно удалить? Что если мне нужно удалить не символы и "слова", а функцию, if или цикл, мне считать разницу между началом и концом? а если оно не влазит в 1 экран задолбливать клавишу `d`? И ещё не забыть переключится в правильный режим.
Ни чего более убогого и отвратительного чем удаление текста в vim я вообще не встречал нужно быть отбитым на всю тыковку чтоб защищать это уродство.
Почему ни один другой редактор текста ни кому в голову не придёт защищать словами: "а у нас тут очень удобные и эргономичные команды для удаления строк"? это же абсурд полнейший, в абсолютно любом редакторе я их просто беру и удаляю не задумываясь ни о количестве символов ни о количестве строк которые мне нужно удалить, ни тем более о командах для того чтоб это сделать.
| Почему бы и нет? 8)
Если это все аргументы за, то получается это очередная хипстерская дурь которая не лучше и не удобнее, а все приседания только для того чтоб "выделится" и прокричать о своей "нетаковости", вместо того чтоб просто делать качественно свою работу
iig
26.10.2023 20:53И когда это удаление строк вообще было проблемой хоть в каком то редакторе?
Может в далеких 80-х это было проблемой ;) Вместе с тупым терминалом и 300 бод каналом ;)
Ни чего более убогого и отвратительного чем удаление текста в vim я
вообще не встречал нужно быть отбитым на всю тыковку чтоб защищать это
уродство.Зря, там много способов удаления.
Что если мне нужно удалить не символы и "слова", а функцию
В начало функции
на открывающуюся скобку
V (или v, смотря как хочется выделить) - начать выделение
% - найти парную скобку
d:)
artemisia_borealis
26.10.2023 20:53сложно как-то. Не надо ничего выделять
d% --- удалить от текущей скобки до парной (т.е. можно и на закрывающейся скобке стоять и на открывающейся)
randomsimplenumber
26.10.2023 20:53А если python с отступами? ;)
Nagdiel
26.10.2023 20:53Прыгнуть в начало функции -
[m
и удалить текст до начала следующей функции -d]m
.iig
26.10.2023 20:53Прикольно. И очевидно ;) Дай думаю загуглю,
vim [ command
. Агащаз. Это как таблица неправильных глаголов. Только выучить.Nagdiel
26.10.2023 20:53Я думаю, если посмотреть, какие сочетания клавиш используются в других распространенных редакторах/IDE/программах, и отбросить самые "очевидные" типа CTRL-C/CTRL-V - то там мы тоже найдем много не самого очевидного или даже совсем не очевидного. Более того, полагаю, мы встретимся с тем, что 1) не найдем никакой системы в подборе клавиатурных комбинаций; 2) не обнаружим возможности сочетать команды для выполнения действий с командами перемещения, как это позволяет делать vim. И, наконец, мы обнаружим, что для одних и тех же действий в разных программах сочетания клавиш могут быть совершенно различными.
iig
26.10.2023 20:53Во всех программах хоткеи продублированы в менюшках. Даже в nano. Можно не учить специально, а просто находить в меню. С vim так нельзя.Только выучить.
Nagdiel
26.10.2023 20:53Давайте все же уточним, что находить в менюшках можно команды, которые требуется выполнить, и заодно уж посмотреть какие горячие клавиши с ними сопоставлены. Если Вы захотите пользоваться этими горячими клавишами, все равно придется их выучить. В этом смысле разницы мало между такими программами и vim - только в том, каким путем Вы отыскиваете сочетания клавиш для запоминания. Если же Вы хотите пользоваться программой ничего не запоминая, а пользуясь средствами GUI и мышью, тогда зачем вообще обсуждать vim в этом ключе? Ясно, что он не для этого задумывался.
iig
26.10.2023 20:53+1Если же Вы хотите пользоваться программой ничего не запоминая
Ну, например, некоторыми функциями я пользуюсь часто (скопировать-вырезать-вставить) - я их запомнил, некоторыми редко (рефакторинг) - нахожу в меню и пользуюсь.
Если это vim - то, чего не помню - воспользоваться не смогу. Нет, конечно можно погуглить, можно полистать vimtutor и таки найти, но в любой IDE это делается в 3 щелчка мыши.
falconandy
26.10.2023 20:53+2Например, есть Vim Cheat Sheet.
Есть плагин https://github.com/folke/which-key.nvim - после нажатия клавиши показывает доступные варианты. Например, нажалиd
или
[
Nagdiel
26.10.2023 20:53Я в целом с Вами согласен, что, имея GUI, проще найти команду, если не знаешь нужного сочетания клавиш. Но этот вопрос не лежит в плоскости обсуждения "очевидности-неочевидности" сочетаний в vim или в других программах.
Кстати, если уж говорить о поиске команд, то мне по сравнению с классическими GUI-решениями, основанными на кнопках, панелях и менюшках, больше нравится подход с использованием палитры команд и нечеткого поиска. Искать команды путем набор фрагментов ключевых слов, как по мне, гораздо проще, чем искать их в лабиринтах вложенных меню или пытаясь найти и попасть в нужную кнопку на панели инструментов.
Нечеткий поиск может применяться в том числе и в vim (плагин fzf.vim). Я, в свою очередь, использую VS Code в сочетании с расширением VSCodeVim. Кроме того, с удовольствием отмечаю, что концепция палитры команд проникает в традиционные GUI приложения. В частности, в приложения KDE (Dolphin, Konsole и др.).
atshaman
26.10.2023 20:53As for me - основной вопрос - что именно в процессе "индустриального программирования" занимает больше всего времени? Точно не "набор текста" - с современным intelli sence у JB'шников почти 2\3 букАвок автодополнением получены. И, скорее всего - даже не навигация по тексту - с учетом современных требований к разбивке кода, размеру функций и т.п. стайл гайдам.
У меня - скорее навигация _по проекту_ с укладыванием разновсяческих взаимосвязей в голове, плюс пожалуй отладка - но это скорее я "кривой" и в нормальную "кодопись" не умею - и вот тут vi(m) предполагаю, поможет "никак" - ну и вот нахрена оно?
iig
26.10.2023 20:53+1ну и вот нахрена оно?
Дебаг на проде
Arenoros
26.10.2023 20:53даже для этого есть gdb-server и без необходимости втаскивать отладочные символы и исходники на прод
atshaman
26.10.2023 20:53Эм. Кода? Вот ни разу не было. Конфигов надевопёсил в свое время преизрядно - особенно, когда всякий энсибль или еще какой ЦыДы пайплайн нафиговертил - тут да, тут VIM норм так выручал - особенно если ничего окромя него и нету ). А вот именно при работе с кодом... Не, ни разу.
SpiderEkb
26.10.2023 20:53Ну вообще да... Кроме подсветки синтаксиса, когда с большим количеством исходников работаешь еще полезно поиск по всем файлам в папке. Причем, чтобы сразу тут же и все совпадения в список и чтобы ткнул и сразу перешел в нужное место.
Еще чтобы outline был и много чего еще...
gev
26.10.2023 20:53+21) как удалить строку...
Выделить тачем (на маках, просто, восхитительный тач) и удалить!
jaguard
26.10.2023 20:53+2Можно еще shift->стрелочкавправо-стрелочкавправо-стрелочкавправо-стрелочкавправо...стрелочкавправо-delete, но зачем?
Как бы "восхитителен" ни был тач на маке (ну такое себе - огрызок клавиатуры все-равно никуда не годится, а значит тащим внешнюю с нормальными кнопками, без тача), ничего эффективнее мыши все-равно не придумали.
Сферический макбук в ваккуме, кстати, тоже своего рода vim. Например, там нет кнопки home, а значит способа одной кнопкой попасть в конец строки просто не существует. Почему-то маковод должен страдать и использовать 2-3 кнопочные комбинации там, где виндоуз-юзер использует однокнопочные - никогда этого не понимал, но наверное это так же элитарно как писать esc-3dd вместо shift-down-down-down-del.Ndochp
26.10.2023 20:53Home - Shift+down - BS по мне удобнее мыши. Та вечно пытается что-то не то зацепить. Если только пол документа грохнуть надо.
jaguard
26.10.2023 20:53Хозяйке за заметку: чтобы выделить одну строчку в IDE, нужно просто нажать слева от текста, на "поле" (том месте, где пишется номер строки, если зачем-то включен). Home-shift-down тоже годный способ, конечно, выбирается по удобству в конкретный момент. (Там есть еще нюанс, что home нужно жать два раза, чтобы попасть именно в начало строки).
gev
26.10.2023 20:53А еще двойной, тройной клик!
По началу тоже страдал без этих кнопок, но с макбуковским тачем, когда руки не переносишь с клавы на мышь, даже стрелки не нужны =) собствено ими и не пользуюсь почти.
mdevaev
26.10.2023 20:53+2Если опираться на мой опыт, то самое главное преимущество вима (или емакса) - его универсальность. Он легковесный и есть практически везде, либо его можно поставить относительно малой кровью. Он работает в терминале, а значит его можно использовать не только через SSH, но и на встраиваемых системах, к которым ты подключаешься через UART. Он кушает настолько мало ресурсов, что если мне понадобится что-то поредактировать на каких-нибудь странных раритетных железках - он будет там работать.
Я сейчас восстанавливаю Tadpole SPARCbook - это один из самых редких ноутов в мире, как следует из названия - работающий на спарке. Частота процессора 120MHz, объем памяти - 32Mb. Я запустил на нем современную NetBSD, смог прямо на нем же исправить драйвер иксов с помощью вима, и собрать. Надо ли говорить, что VS Code не запустился бы там примерно никогда?
gatoazul
26.10.2023 20:53+1Любой обычный текстовый редактор занимает немного места и легко ставится.
mdevaev
26.10.2023 20:53Разговор-то был за VS Code.
Разница в том, что если ты привык к vim/emacs, то у тебя для всего один инструмент - и для конфигов, и для кода. Не надо вырабатывать разные привычки для разных редакторов. Унификация.
gatoazul
26.10.2023 20:53Ставите любой редактор со стандартными клавиатурными сокращениями (т.е. любой кроме vim/emacs) и правите конфиги комфортным образом.
MountainGoat
26.10.2023 20:53+1есть практически везде
В этом и проблема. Он есть везде, но везде разный. Если какой-нибудь :q! поддерживается без вопросов, то более экзотические комбинации то есть, то нет. Потому что где то есть только vi, где-то полноценный vim, где-то vim который из busybox, где-то одна из
говносборок, и все они имеют различия.Поэтому на чужих машинах только nano - он искаропки всегда один и тот же, разве что цвета подкручивают в фирменные.
mdevaev
26.10.2023 20:53+1Базовый вим (если именно вим) везде одинаковый. Все основные команды для работы с текстом одинаковые. А там, где обычно есть только vi, нано уже нет.
Tamerlan666
26.10.2023 20:53+4Только если пытаться запустить Vim на удаленном терминале, то сразу лишаешься всей своей привычной обвязки в виде плагинов с кастомизацией и прочими свистоперделками. VS Code запускать на удаленной машине не нужно вообще. Достаточно из VS Code удаленно открыть через ssh любой файл с удаленной машины, и получишь его в своей родной среде разработки со всеми родными настройками.
garwall
26.10.2023 20:53вим точно так же может работать.
Tamerlan666
26.10.2023 20:53Локально открывать удаленный файл? Коробочный Vim? Покажите.
iig
26.10.2023 20:53+1Tamerlan666
26.10.2023 20:53Ну, ок, можно обвешаться дополнительными командами и заставить Vim открывать на удаленном сервере один конкретный файл, указав к нему полный путь. Захочешь найти и отредактировать другой файл по заранее неизвестному пути - нужно отдельно идти на сервер, искать там этот файл и передавать полный путь в новый вызов Vim. А из VS Code можно просто открыть подключение с полноценной навигацией к удаленной машине и перемещаться по дереву каталогов с файлами , как на локальной системе. Можно, например, просто открыть директорию с проектом и открывать оттуда любые файлы простым переключением одним кликом, не вводя никакие пути.
Tony-Sol
26.10.2023 20:53+1А из VS Code можно просто открыть подключение и
…закрыть потому что нет прав на запись ~/.vscode-server или недостаточно места на диске
Не к тому что vscode не работает, а к тому, что за удобство платим ограничениями, которые лично у меня уже не один раз стреляли
mdevaev
26.10.2023 20:53Я для себя решил эту проблему крайне просто: использую только функции изкоробочного вима + конфиг. Закинуть конфиг дело одной минуты, да и то не всегда нужно. А вот VS Code перед UARTом спасует, как мне кажется. Поправьте, если не прав.
Tamerlan666
26.10.2023 20:53
Desprit
26.10.2023 20:53По большей части, конечно, справедливо, но можно много всяких примеров привести этих самых "абстракций", которые скрывают современные IDE, взять хотя бы взаимодействие с LSP, конфиги для разных языков, линтеры и форматирование кода. Все это работает почти из коробки в vscode, при этом "как оно работает" большинству непонятно. Тут можно возразить, мол, кому вообще нужны это знать? Ну, мне вот, например, интересно.
Arenoros
26.10.2023 20:53И как же vim в этом изучении "абстракций" помогает и уж тем более как впринципе это помогает в работе? В чем его принципиальное отличие от любых других текстовых редакторов? Ни кто из этих свидетелей vim не идёт писать очередной клиент lsp и парсер конфигов под "себя", ровно так же как во всех других редакторах берут и ставят готовые плагины только с большим гемороем. А то и просто берут готовые сборки.
Для того чтоб узнать как ползать не обязательно стрелять себе в ноги.
includedlibrary
26.10.2023 20:53+1У меня в neovim настроена работа с lsp, однако я всё равно не в курсе, как это всё работает. Для настройки этого знать не нужно от слова совсем. Отличие от ide в том, что нужно десяток строк на lua написать, чтобы оно заработало.
jaguard
26.10.2023 20:53Хорошо понимаю людей, у которых vim/emacs был первым редактором, привычка и память рук - страшная штука, поэтому например у меня стоит Dos Navigator (естественно, не тот самый, что под Дос, а "современный" порт 2002 года). Мне тупо удобно и привычно, я делаю всякие удобные вещи не приходя в создание (Как тебе такое, Илон Маск, я могу "удалить" файл(ы) из панели, нажав ctrl-del, при этом он просто пропадет из панели, а не удалится на самом деле. И еще 100 подобных трюков, чтобы быстро и эффективно работать с файлами в панели)
"Нет пути", чтобы кому-то было удобнее пользоваться Vim, если он освоил его не первым. Зато вкус элитарности, понты-дороже-денег и вот это все - бесценно.
dimao79
26.10.2023 20:53Ради чего
Ради просмотров. Одна из хайповых тем, вим против всех, линух против всех, все против всех. Каменты постятся, просмотры крутятся, бабосы мутятся. Такова реальность, или корпораты, или переводы, или капитаны очевидность.
Viacheslav01
26.10.2023 20:53+172010: маленький интернет? Серьезно? Да в нем было мало видосиков, но в этом была его прелесть.
ogost
26.10.2023 20:53+3Личное мнение: я считаю macOS также дистрибутивом Linux
Ну и дуракВы не правы, сударь! Впрочем, спорить не буду.По теме статьи - познакомьтесь с qutebrowser (или chromium с аналогами) и с i3wm/sway (ну или возьмите другой тайлинговый WM с vim-binding из коробки). zsh тоже умеет в vim-mode, но я уверен, что вы и так это знали.
micronull
26.10.2023 20:53+2Тоже люблю NewVim и иногда пользуюсь им для фана.
Однако основная мощь раскрывается после освоения метода слепой печати.
hVostt
26.10.2023 20:53+50Осталось, по классике, добавить: жизнь наладилась, коллеги стали уважать, здоровье улучшилось, женщины стали обращать на меня внимание :)
Хоть убейте, не нахожу никакой связи между двухлетним задрачиванием хоткеев редактора и "тонкой настройкой под себя", с компетенциями в области разработки. Скорее, я бы сказал, что два года было потрачено не туда. А если редактор надо учить годы, это тотальный фейл для любого инструмента.
В хорошем IDE полезно знать совсем немножко хоткеев, а остальное должно очень быстро находиться, да и лучше если IDE сама будет делать всю рутину, подсказывать, подсвечивать, хинты всякие. Если человек начинает обслуживать инструмент, это маразм, однозначно свернули не туда.
Ничего против Vim не имею, но религиозности не понимаю. Думал, эти времена уже прошли. При чём давно.
Fedorkov
26.10.2023 20:53если редактор надо учить годы, это тотальный фейл для любого инструмента.
Ну, я Visual Studio (не Code) изучал годами, и всё было на пользу.
А так да, я вимом тоже пользовался, и плагины ставил, и продвинутые хоткеи изучал. Но я не верю, что вим в принципе может обеспечить всю функциональность VS или Rider, которую я реально использую в работе.
hVostt
26.10.2023 20:53+1От IDE в первую очередь ждёшь максимальной помощи в разработке ПО, а не способности не трогая мышку генерировать 100500 строк кода в секунду. Пусть их генерирует IDE, кодогенерация, и помогает поддерживать в консистентном состоянии. Нужно, чтобы не только выполнялись куча проверок и задалбывало программиста исправлять ошибки -- пусть IDE сам их исправляет.
И при этом IDE не должна требовать от программиста изучения тонны талмудов и заучивания огромного количества возможностей и хоткеев. Это всё очень плохо, так как программист должен думать о результате, о программе, никакой промежуточный инструмент не должен засирать программисту голову, отнимать драгоценное время и силы.
И такие IDE есть. Я использую JetBrains, он это всё делает, и никто не сможет меня склонить ни к какому емаксу или виму, потому что мне совершенно не нужен редактор. Мне нужен инструмент для разработки. Кто хочет быть code monkey? Я не хочу.
net_racoon
26.10.2023 20:53Ничего против Vim не имею, но религиозности не понимаю. Думал, эти времена уже прошли. При чём давно.
Вы видимо давно на опеннете не были :)
WondeRu
26.10.2023 20:53+14Первым делом на новых серверах делаю:
apt update && apt install nano -y
И хер с ним, что это не true way, зато удобно.
ShtihKot
26.10.2023 20:53-5Проходили. :-) А потом случайная запятая, точка, не тот символ впопыхах, CTRL-x - y, systemctl restart ... и что-то оно упало.. Ищем до утра)) Вместо режимов редактирования и view в vi, vim, neovim. Особенно в продакшене. Был очень больной опыт не только у меня)
iig
26.10.2023 20:53+8В vim нельзя случайно ошибиться и сделать не то что хотелось?
atshaman
26.10.2023 20:53+1Вероятность нафакапить правда несколько меньше ибо по дефолту открывается в режиме чтения. С nano я на эти грабли налетал
gev
26.10.2023 20:53использую cat чтоб не нафакапить в nano =)
ris58h
26.10.2023 20:53Пейджеры же есть. Тот же
less
, например.atshaman
26.10.2023 20:53Ну да. Есть. Но вы уверены, что сейчас редактор и просмотрщик все еще должны быть разными инструментами? Вроде как "посмотрели - при необходимости поправили" вполне понятный workflow для инструмента.
ris58h
26.10.2023 20:53+1Человек cat использует. О каком редактировании речь? Из less можно вызвать редактор по нажатию v.
atshaman
26.10.2023 20:53Нивапрос. Вы готовы сказать, что это удобней? Вымучили кошку - посмотрели - о! Ошибко. Открыли редактор, поправили. Или о! Нет ошибко. Пошли смотреть следующий файл.
Вместо того, чтобы "открыли файл - ошибко - поправили, нет ошибко - в том же редакторе открыли другой файл".
atshaman
26.10.2023 20:53-2Первый вопрос - а что и зачем вы делаете "на новых серверах"? Ну вот буквально?
А что делаете, если этот новый сервер чуть-чуть, самую капельку, малость - вот не ваш? Особенно весело, если проделывать это надо в процессе устранения факапа...
GospodinKolhoznik
26.10.2023 20:53+15Вы на правильном пути. Пройдёт ещё лет 5 и вы, уже просвятлённый и познавший Vi, а возможно также и Emacs, и тогда вы вернётесь в VS Code, осознав что он просто удобнее.
hssergey
26.10.2023 20:53+8Сделает ли меня более компетентным разработчиком использование Vim?
— Да, я могу это гарантироватьКаким образом? За счет того, что Вы потратили месяцы и годы на вылизывание текстового редактора, вместо того чтобы изучать и совершенствоваться в своей предметной области?
Earthsea
26.10.2023 20:53+2На многих коммутаторах, маршрутизаторах операторского класса и прочих сопутствующих железяках вендоры не разрешают устанавливать сторонние утилиты. Такой коммутатор способен без перезагрузок непрерывно работать 10 лет, всякая самодеятельность может нарушить эту стабильную работу. Тем более к интернету они не подключены, даже если бы и надо было что-то туда установить, то это не одна команда в терминале. Операционная система на них - реального времени, не обязательно Linux, где-то это VXWorks, где-то какой-то другой сертифицированный Unix. В любом случае работа в терминале не отличается от Linux, команды (утилиты) те же самые, но набор их ограничен. Если где-то есть nano - шикарно. Но где-то нет даже cat, приходится просматривать файлы командой more. Из редакторов только Vi или Vim есть везде без исключений, так что иногда проще поправить конфиг, запустив Vi или Vim. У меня был блокнотик, в котором основные команды Vi были записаны, в голове я их никогда не держал и сейчас помню только что hjkl это курсор. FTP есть на всех железках, можно скачать файл себе, поправить и залить обратно, но бывало быстрее и проще зайти по telnet или ssh и открыть vi или vim.
net_racoon
26.10.2023 20:53+2На многих коммутаторах, маршрутизаторах операторского класса и прочих сопутствующих железяках вендоры не разрешают устанавливать сторонние утилиты.
Ну потому что там обычно все есть что надо. Да и в каком месте там вим?
atshaman
26.10.2023 20:53Увы, увы - раньше можно было говорить что "vi есть везде!" - сейчас это уже не так. ЕМНИП, в дефолтных минималках на debian\ubuntu уже только nano. Впрочем, может и путаю - но уже натыкался на то, что nano - есть, vi(m) нет. Эпоха таки меняется :(
GospodinKolhoznik
26.10.2023 20:53В последнем debian bookworm в минимальной конфигурации есть vi. Про убунту не знаю. А вот недавно пробовал новую версию nixos, в ней по дефолту vi нету, а nano есть. При этом в конфигурационном файле vim есть, но закоментирован, как пример того, что надо написать написать в конфиге, чтобы пакет появился в системе. (Nixos так работает, там не вызывается команда apt-get install, а редактируется конфигурационный файл, после чего система сама все устанавливает)
strvv
26.10.2023 20:53даже в одном из лидеров 90-х, среде разработки watcom, был редактор в формате vim.
Tamerlan666
26.10.2023 20:53Если вы не в курсе, VS Code спокойно умеет работать через ssh. Никуда ничего на удаленную машину ставить не нужно.
mpa4b
26.10.2023 20:53Да, потому что он сам чо-то там ставит, пропихивая куда-то в ~/.чегототам/... . И если у него не получается (например удалённая машина это какой-нить древний центос и в ней нет нужных тулов или они работают не так как хочется вскоду), то доставайте бубен.
Tamerlan666
26.10.2023 20:53Ну да. И смартфон с тачскрином - фигня, ибо не позволяет человеку вслепую, в темноте, с завязанными руками, отрезанными ушами и вырванным языком отвечать на sms...
Inine
26.10.2023 20:53+1Когда я попытался в среде, где нет выхода в инет, зайти из VSC по ssh на линукс-машину, то внезапно оказалось, что он не может соединиться. Расследование показало, что он пытается ставить на хост собственный ssh, штатный его почему-то не устраивал. А скачать без интернета не может. Пришлось подсовывать вручную.
ASD2003ru
26.10.2023 20:53Да. Ей нужна прослойка code-server. Но можно было бы обойтись через плагин для ssh (не помню как называется). Но про удалённый дебаг можно забыть (ну или как то извратиться).
Kuch
26.10.2023 20:53+3А ведь за два года можно было столько реально полезных знаний приобрести, чтобы стать компетентным инженером, а не компетентным в инженером vim.
Был у меня знакомый на прошлой работе, он увлекался сборкой линукса, писал "как настоящий программист" в vim, всех остальных считал быдлокодерами...но почему-то он занимался на работе фронтендом. В общем через какое-то время ему пришлось уйти из компании, потому что свои непосредственные задачи он делал медленно, да и по софтам был тяжёлый человек.
Arenoros
26.10.2023 20:53+2И ведь эти персонажи убеждены что вим это лучший редактор кода и с ним они работают супер эффективно не то что все эти "быдло кодеры" со своими "тормозными" ide. А то что у "нормального" разработчика уходит пару минут на то что б баг пофиксить просто открыв дамп и посмотрев где произошёл дедлок условный, эти будут устанавливать очередной плагин пол века, потом настраивать его чтоб по итогу удалить одну строку которые они в своём "навороченном" редкторе пол дня искали, попутно рассказывая всем как "удобно и быстро" они это сделали нажав dd. А благодаря подобным статьям их же ещё и фиг переубедишь в этой глупости.
paldraken
26.10.2023 20:53+2Обожаю vim это просто какое то волшебство, когда текст словно по мановению мысли трансформируется а каретка просто летает по строчкам. Но к сожалению мой инструментарий кроме редактора кода состоит из гугла, stackoferflow, хабра итп. Работая с веб, периодически хочется запустить и посмотреть в браузере результат своего труда. Все это заставляет постоянно хвататься за мышку и вся магия рассеивается. cry
red75prim
26.10.2023 20:53+2когда текст словно по мановению мысли трансформируется а каретка просто летает по строчкам
Смотрел скринкасты пользователей vim'а, что-то никакой особой магии не видно. Всякие jjjjjjjjjjjjjjj и kkkkkkkkkkk сплошь и рядом. Постоянные EscEscEsc, наверно чтобы не запоминать режим. А курсор летает в основном между терминалом, хелпом и текстом программы.
andreishe
26.10.2023 20:53каретка просто летает по строчкам
Там это, мониторы изобрели. Отложите уже телетайп.
cprog456
26.10.2023 20:53+2А почему бы просто не поставить аддоны к vscode/idea/etc на имитацию Vim и не мучаться?
Aldrog
26.10.2023 20:53-1По своему опыту: эти плагины глючные и не отзывчивые, так как пытаются смапить команды вима в команды своего редактора и это не всегда хорошо удаётся. При этом я для себя не нашёл ни в vscode, ни в CLion каких-то крутых фич, которых мне в виме не хватает.
cprog456
26.10.2023 20:53А вот этот https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim пробовали?
В оригинальном Neovim вообще ничего нет, даже дерева файлов слева, для всего нужен плагин и прописанные настройки в конфиге.
Aldrog
26.10.2023 20:53+1Точно смотрел на него. Скорее всего тоже что-то не понравилось либо проблемы с настройкой возникли.
В оригинальном Neovim вообще ничего нет, даже дерева файлов слева, для всего нужен плагин и прописанные настройки в конфиге.
Так и VSCode без плагинов невозможно пользоваться. Если бы к (Neo)vim не было хорошей экосистемы плагинов, то я бы конечно не рассматривал его как замену IDE.
hardtop
26.10.2023 20:53А вот видео-комментарии самого ThePrimeagen - https://www.youtube.com/watch?v=-cn3MAovsN4
Mobydack
26.10.2023 20:53Прежде всего IDE | Текстовый редактор - это больше про удобство работы, кому-то нравится nano, SublimeText, Atom, VS Code, продукты Jetbrains, vim like редакторы, emacs like редакторы.
С овтетами на вопросы в статье я не согласен, что значит "быть более компетентным", компетентность в чём? Если в работе в редкторе Vim, то тогда и плавец плавая становится более компетентным в плавании.
Статья слишком сильно манипулирует выводами на основе субъективных ощущений автора, знание (когда комфортно себя чувствуешь при работе с ним, а не только знание :q :w :e комманд и режимов) Vim не сделает из вас супер инженера, как и знание VSCode, это всего лишь условные адаптеры для написания текста с дополнительными инструментарием.Я лично работаю в emacs, использую vscode для удобного исследования кодовой базы в работе (c lsp там нет роблем), helix editor (vim like) для работы с текстом через консоль и стаким зоопарком я привык работать, мне удобно так, от этого я получаю удовольствие.
atshaman
26.10.2023 20:53+2не-не-не. Прежде всего, IDE, "редактор кода" и "текстовый редактор" разные инструменты, сфокусированные на разных вещах. Местами они пересекаются (Везде можно писать текст, ага), местами одно можно достаточно близко притянуть к другому - но в целом непонимание этой разницы в подобного рода спорах достаточно сильно удручает.
LifeKILLED
26.10.2023 20:53Статья слишком сильно манипулирует выводами на основе субъективных ощущений автора
Она и начинается с дисклеймера о субъективности написанного. Но при этом в самой статье встречаются радикальные заявления о понятии "инженер", что немножко противоречит дисклеймеру.
koreychenko
26.10.2023 20:53-5Рискну схлопотать минусов, но по моему личному времени все автобиографии фанатов VIM, которые используют его как IDE надо начинать с сфразы: "Когда-то меня задушила жаба заплатить денег Jetbrains".
OKyJIucT
26.10.2023 20:53+3Я решил перейти на Vim. Не потому, что он лучше подходит для моего конкретного рабочего процесса, а потому, что хотел покончить с зависимостью от VS Code.
Напоминает историю использования героина в 20-е годы прошлого века, который применялся в качестве заместительной терапии для больных, страдающих морфиновой и кокаиновой зависимостями.
Если с VS Code перейти на любой другой редактор или IDE особого труда не составит (потому что они все плюс минус похожи), то соскочить с Vim будет гораздо сложнее
vba
26.10.2023 20:53У вас первый мем наоборот. Чел на каблуках и желтым хохолком(можно ему электросамокат добавить) должен быть слева и вопить - "как мне выйти из вима". Ну а норм чел справа должен задаваться вопросом, а зачем ему выходить из вима.
lanseg
26.10.2023 20:53+2На самом деле, единственное, что меня побудило использовать вим это удалёнка, когда я в силу разных причин мог подключиться к компьютеру для разработки только через ssh, а работать-то надо.
Тогда мне и пришлось по-полной начать использовать vim, tmux и прочие консольные ухищрения. Через какое-то время я начал вполне свободно пользоваться страшным Вимом.
В итоге, он не лучше vs-code, или полноценной IDE и без необходимости пользоваться им нет смысла, но и расстраиваться, когда есть только он, тоже не стоит.
unC0Rr
26.10.2023 20:53+1мог подключиться к компьютеру для разработки только через ssh
ssh -Y и используй gedit (но должен быть установлен на хосте). Либо sshfs, и редактируй в чём хочешь прямо у себя на компе.
lanseg
26.10.2023 20:53Корпоративный хромбук, где всё это запрещено. Из доступного был только встроенный в хром терминал
MountainGoat
26.10.2023 20:53+1Так можно докатиться и до программироввания через `ed`, но зачем об этом людям то рассказывать.
checkpoint
26.10.2023 20:53Только ed, только хардкор!
Пользуюсь vi с момента выхода 2.2.1-RELEASE и не понимаю, зачем нужны все эти украшательства, которыми насытили vim и neovim. Прелесть vi прежде всего в в том, что для его работы достаточно самого тупого терминала и знание десятка комбинаций. vi + screen - вот выбор джедаев, а не этот ваш vim!
iig
26.10.2023 20:53+1для его работы достаточно самого тупого терминала
Найти тупой терминал - отдельное достижение.
checkpoint
26.10.2023 20:53Это не проблема, а данность если вы занимаетесь разработкой "встраиваемой" электроники, где на устройствах памяти не гигабайты и в процессорах не гигагерцы.
atshaman
26.10.2023 20:53+1Эм. Я эмбеддовкой не занимался - но кто заставляет "разрабатывать" на конечной железке? Remote developement в любой IDE есть - работаешь на локальной машине, запускаешь - хучь в эмуляторе, хучь в ремотной железке, не?
iig
26.10.2023 20:53Сейчас как раз куда не ткни пальцем - гигабайты и гигагерцы. Ну, наверное, бывает и такое. Но где найти на рабочей машине тупой терминал, все равно непонятно.
checkpoint
26.10.2023 20:53-1Проблема с разными украшательствами в vim и его прозводных состоит в том, что они требуют специфических настроек терминала для нормальной работы. Когда Вам быстро нужно кодключиться, исправить код, пересобрать и протестировать с неизвестной Вам машины это создает массу проблем с отображением, так как в разных ОС поразному настроены терминалы. Вместо того, что бы быстро решить поставленную задачу Вы начинаете долго и упорно бороться с системой, судорожно гуглить настройки и всячески терять время попусту растрачивая свои нервные клетки.
Если Вы умеете пользоваться редактором vi, компилировать из командной строки с помощью команды make и отлаживать в gdb, то Вы никак не привязаны к конкреной машине и её настройкам. Вы можете разрабатывать и дебажить из любого места и из любой позиции, в любое время дня и ночи - все что вам требуется это терминал с минимальным функционалом. Именно так построена моя работа. Я могу дебажить сложную систему из нескольких устройств находясь в любом месте планеты, был бы ssh.
iig
26.10.2023 20:53+2Если Вы умеете пользоваться редактором vi, компилировать из командной строки с помощью команды make и отлаживать в gdb
То вместо решения поставленной задачи вы начинаете настраивать окружение, с которым вы умеете работать ;)
checkpoint
26.10.2023 20:53Оно настроено и поддерживается на сервере разработки централизовано. Т.ю. на одной машине, а не на десятке рабочих мест. Это кстати решает очень серьезную проблему - снимает необходимость администрировать рабочие места разработчиков. Поддерживать на нескольких рабочих машинах десяток кросс-компиляторов с массой библиотек и зависимостей это весьма утомительная задача и она создает массу припонов в самой разработке - отличие в какой нибудь системной библиотеке у двух разрабов может приводить к фиеричным глюкам и потере массы времени на поиск неисправности там где её нет.
iig
26.10.2023 20:53Оно настроено и поддерживается на сервере разработки централизовано.
Централизованно можно поддерживать любую конфигурацию. Просто админу лень, и он сказал что будет только vim ;)
checkpoint
26.10.2023 20:53На сервере есть много всего, в том числе и emacs. Но я уже описал выше, что когда Вы подключаетесь к серверу с какой нибудь машины в цехе у заказчика, то vim с украшательствами превращается в зло! Приходится делать
vim -u NONE
abagnale
26.10.2023 20:53+2At first I was like:
мне [...] совершенно начхать на постоянные поп-апы Sublime с просьбой купить его
but then:
он «провалился»
На самом деле, сложно сказать, о каком провале идёт речь. Поддержка сообщества фантастическая, разработка плагинов одно удовольствие. Я 99% всех своих повседневных задач делаю в Sublime Text, VS Code запускаю только для работы с Jupyter Notebook (и то DataSpell его почти заменил, если бы не был ещё более тормозным).
А лицензию мне работа купила (вместе с Sublime Merge). Жить нельзя без этих инструментов, стоят своих денег абсолютно.
Alexey2005
26.10.2023 20:53VSCode обладает уникальной киллер-фичей, которой нет, не было и не будет в vim и его производных: нормальным скроллингом длинных строк!
В VSCode, когда включен перенос длинных строк (например, вы работаете с Markdown-документацией) можно проскроллить экран ровно на одну экранную строчку. Вверх или вниз. И можно быстро проскроллить на целую страницу. При этом скроллится ровно так, как должно - полностью предсказуемо, без прыжка на хрен-знает-сколько линий как в vim, без прыжков курсора в произвольное место...
Любой вимер, когда он видит, как работают в VSCode, долго сидит с отвисшей челюстью - а что, так можно было?! Скроллинг и вправду может быть удобным, чтобы при каждом нажатии "вниз на строку" не надо было заново взглядом отыскивать курсор по всему экрану?!
Aldrog
26.10.2023 20:53+1А точно ли проблема в редакторе, если у вас в кодовой базе одна строчка всю площадь экрана занимает?
maxdev
26.10.2023 20:53+2Боюсь поломать ваш мир неполноценного Vim и крутого VSCode, но попробуйте комбинацию g+jk (можно забиндить куда вам удобно). Ну вот - теперь вы сможете поучать вимером и наслаждаться еще более отвисшей челюстью :)
Alexey2005
26.10.2023 20:53А в чём поломка-то? Ну да, по самому экрану теперь курсор движется чуть более предсказуемо, по 1 строчке. Но вот мы доходим до последней отображаемой строки - и при нажатии gj у нас опять всплывает случайное число строчек, и надо искать взглядом, куда оно скакнуло.
Прокрутить точно на одну экранную страницу без рандомных скачков курсора оно также не позволяет.
big_dig_dev
26.10.2023 20:53+2Никогда не требуйте от людей достигать поставленных целей сугубо с помощью вашего любимого инструмента.
Все разработчики обязаны пользоваться Linux. Никаких исключений.
Так как?
GospodinKolhoznik
26.10.2023 20:53+3Пользоваться Linux? Что за глупости. Как им можно пользоваться? Ведь Linux это просто API, которую использует emacs для взаимодействия с hardware ))
Dr9vik
26.10.2023 20:53обычно vim используют когда
А) нет ничего другого
Б) это сервер
проще поставить какой нибудь awesome и установить vscode
GBR-613
26.10.2023 20:53+1Существует масса ситуаций, когда надо делать серьёзную разработку, а доступна только текстовая консоль. Когда без дебаггера обойтись очень трудно. И что делать? Nano не поможет, в нем дебаггера нет. Вариантов два: vim и emacs. Преимуществ emacs перед vim мне не известно ни одного, а поскольку vi официально часть POSIX, то уж лучше сразу учить vi/vim.
Действительно, для некоторых vim это религия. Тут, как мне кажется, срабатывает такой фактор: когда человек слишком много времени тратит на какую-то штуку, ему потом не хочется признать себе, что это время можно было бы потратить с большей пользой. И тогда он начинает пользу от этой штуки в своих глазах и в глазах других раздувать. В этом, в частности, на мой взгляд заключается секрет феноменального успеха С/С++ в своё время.
iig
26.10.2023 20:53+1Существует масса ситуаций, когда надо делать серьёзную разработку, а доступна только текстовая консоль.
Можно пример такой ситуации? remote debug даже микроконтроллеры умеют.
GBR-613
26.10.2023 20:53Виртуальная машина на AWS или GСР, к которой доступ только через окошко консоли в браузере и ничего больше. Даже SSH сделать нельзя. А мне надо писать довольно сложный код на Питоне.
Ну и как такое дебаггировать?
В реальности я делал одно из двух: либо, в нарушение корпоративной этики и цинично пользуясь лопоухостью DevOps, временно открывал себе SSH, либо сваливал задачу на девочку - любительницу VIM.
iig
26.10.2023 20:53+2Я думаю, что это не массовая ситуация, а скорее наоборот. Дебаг на проде?
в нарушение корпоративной этики
Ну, где ssh и где корпоративная этика? Почему они вдруг противоречат друг другу? ;)
Но кмк серьезная разработка в таких условиях не делается.
GBR-613
26.10.2023 20:53Ну нельзя мне было никакие порты открывать.
Это был не прод, но РОС (демонстрация работы на среде потенциального покупателя).
atshaman
26.10.2023 20:53+1А еще бывает - что мышка сломалась и контрол на клаве залип и вообще рука-в-гипсе - как тут без vim? Никак!
Tamerlan666
26.10.2023 20:53+1Тачскрин - дерьмо, ибо не позволяет человеку вслепую, в темноте, с завязанными руками, отрезанными ушами и вырванным языком отвечать на sms... (c)
dimaaannn
26.10.2023 20:53+1Существует масса ситуаций, когда надо делать серьёзную разработку, а доступна только текстовая консоль.
Возможно, что то не так с вашим процессом разработки и искать проблему нужно в другом месте? Например изучением CICD вместо того чтобы идти в продовскую консольку и что то там менять.
GBR-613
26.10.2023 20:53В принципе, так оно и было. Там был страшный бардак, делали то одно, то другое, и на CI/CD никто не заморачивался, потому что никак не могли решить, что же собственно они хотят довести до конца. В результате сейчас фирма в процессе закрытия.
GospodinKolhoznik
26.10.2023 20:53Преимуществ emacs перед vim мне не известно
Ну например навигация и в emacs такая же, как в командной строке linux. Навигация, а также хоткеи для редактирования текста. Освоившись с хоткеями емакса можно быстро набирать и редактировать команды в конслои, не выводя руки из основной позиции, не перенося их на стрелочки и доп клавиши типа delete.
SpiderEkb
26.10.2023 20:53+3Все разработчики обязаны пользоваться Linux. Никаких исключений.
Дальше можно не читать.
Попробуйте сидя под линуксом писать что-то под винду. Желательно серьезное, что требует обширного использования WinAPI.
И вообще разработка может быть достаточно специфической. Не все пишут на джаве. Бывает и другое, где Линукс вообще не уперся.
MountainGoat
26.10.2023 20:53+1Вы описали единственный случай, когда лучше использовать винду. в общем объёме программирования это экзотическое меньшинство: программы только под винду с нативным использованием WinAPI.
Под всё остальное лучше использовать Linux: бэкенды все на линуксе, под андроид лучше писать на линуксе - эмулятор шустрее, а отладка на железе реже глючит. Под контроллеры лучше писать на линуксе - меньше проблем при заливании кода. Причём тут и WSL особо не выручает. Хотя бывают, конечно, контроллеры с проприетарным протоколом и софтом под винду. Но бывает и лысый чёрт с одним рогом.
SpiderEkb
26.10.2023 20:53+4Далеко не единственный, уж поверьте...
У меня один комп под виндой, второй под линуксом. А пишу я вообще под AS/400.
Так вот, основная работа под виндой таки. Не все что нужно для работы, есть в линуксе.
Например, мне для работы нужен клиент для CheckPointVPN с авторизацией через IndeedKey. Для линукса такого нет в природе. Для RSA токенов есть, для Indeed нет. А без него ни Jira, ни Confluence, ни Bitbucket, ни Artifactory недоступны. И нет доступа к тестовому AS/400 серверу... Кто вынужден под линкусом сидеть, извращаются как могут - винда в виртуалбоксе, в ней VPN клиент с пробросом в линукс сетевых интерфейсов... Троллейбус из буханки.
Не уверен что есть все нужные коммуникации под линукс - Cisco Jabber, RocketChat, Контур Talk (не смотрел просто, может есть что-то, но на глаза не попадалось).
LibreOffice проигрывает при работе с объемными MS документами (а вся документация по задачам в ворде). Особенно, структурированными, с навигацией, таблицами и т.п.
Так что когда нужно много всякого инструментария помимо IDE - чего-то да не найдешь. Или найдешь, но не такое удобное.
Я бы и не против под линукс перейти, но... Пока нет. Так что второй комп исключительно как выделенный VDI терминал работает (благо для VDI есть нативный клиент).
LifeKILLED
26.10.2023 20:53+1В том-то и дело, что существует не только вэб-программирование. Можно связать жизнь с чем-то другим и с линуксом вообще никогда не сталкиваться. Если уж на то пошло, то для клиентских приложений лучше подходит Макось, потому что на чем-то другом разрабатывать под Айос нельзя, а клиентские программы очень хотят существовать и там тоже. Нельзя именно из-за хитрой лицензии Эппл, запрещающей разработку на чем-то другом.
hVostt
26.10.2023 20:53+1Я работаю на Windows и без каких-либо ограничений пишу программы и утилиты, работающие под Linux. Сможете наоборот? нет. Выбор очевиден %) На самом деле, если выбор ОС ни на что не влияет кроме личного удобства, то спорить тут не о чем. Я предпочту старый раздолбаный Acer на Windows или Linux, самому последнему маку, ибо для меня мак -- просто неудобно.
Starl1ght
26.10.2023 20:53Автор просто не повзрослевший студентик, у которого есть один true way, а все остальные "ламеры"
Spaceoddity
26.10.2023 20:53Ну а я вот, перепробовав всё из списка, решил остановиться на универсальных, проверенных временем, кроссплатформенных(!) решениях - Sublime и TotalCommander.
Sublime действительно очень похож на VSCode (вплоть до того, что можно шаманить файлами настроек между ними). Но у Саблайма и дизайн поприятнее, и "юзабилити" попродуманнее. И стартует он ощутимо быстрее...
GospodinKolhoznik
26.10.2023 20:53TotalCommander кроссплатформенный!? Я что то пропустил?
AlexanderS
26.10.2023 20:53Может имелся ввиду Double Commander? Total-то точно исключительно под винду.
Spaceoddity
26.10.2023 20:53Ну под Android точно есть. Но тут да, разговор именно о целом семействе "нормальных" двухпанельных файловых менеджеров как противопоставление часто поминаемому "вырвиглазному" FAR-у.
Я не ретроград, но и обновляться только ради того, чтобы обновиться, не бегу.
SpiderEkb
26.10.2023 20:53Он только под винду и андроид и есть.
Но много клонов. Я перепробовал несколько (тоталь под винду таки платный немножко), остановился на DoubleCommander. Бесплатный, есть по винду и линукс, достаточно гибок в настройках и удобен в использовании.
vtb_k
26.10.2023 20:53+1Я как 8 летний пользователь Емакса очень хорошо понимаю автора. Для меня Емакс уже незаменим, вскод пробовал сотню раз и постоянно плевался. Хотя Емакс в этом плане ещё хуже вима, тут на каждый чих можно функцию на лиспе написать, неовим пользователи только начинают пробовать это с Луа. Преимущество в использовании этих редакторов можно оценить только при слепом наборе и желании избавиться от мыши. Тогда они незаменимы и действительно ускоряют и разработку и просмотр кода.
Arenoros
26.10.2023 20:53+2как, вот как ускоряет разработку слепая печать и отказ от мышки? я мб какой то неправильный программист но у меня печать на клавиатуре из всего рабочего процесса занимает процентов 20 от силы и то половина зачастую это документация в жире и общение в рабочих чатах которые сюрприз все гуишные как жира и все прочие системы управления проектами. А остальное время это созвоны с командой, изучение бизнес задачи, продумывание архитектуры разбор очередных дампов, гугление и ожидание очередного ребилда. Да потраченное время на обучение этой слепой печати и настройка всех этих свистоперделок для печатанья двумя руками ни когда в жизни не отобьют потраченное на это время. Ноль разговоров если человек работает "машинисткой" и его работа напрямую связана со скоростью набора текста но у разработчиков мерить эффективность скоростью набора и редактирования файликов это что за гранью разумного...
vtb_k
26.10.2023 20:53Я вас все одно не смогу переубедить, вы не поверите, пока сами не попробуете. Созвоны и ожидание компиляции никуда не уберешь, с этим полностью согласен. Никто не говорит, что цель стать "машинисткой". Цель повысить эфективность там, где это возможно. Я гуглю прям в Емаксе, пишу тикеты в жире, даже с чатомГПТ там же общаюсь. Можно писать имейлы, читать rss, даже телегу можно прикрутить. В браузере использую tridactyl и вообще не скучаю по мышке. Каждая мелкая интеграция улучшает мою продуктивность в целом
unC0Rr
26.10.2023 20:53Но если это всё прикрутить к емаксу, то чем переключение между жирой и чатгпт внутри емакса станет отличаться от переключения между емаксом и браузером, как это поможет эргономике?
vtb_k
26.10.2023 20:53Ну хотя бы тем, что браузер ты никак не настроишь так гибко под себя, как Емакс
atshaman
26.10.2023 20:53Не, ну лет 20 назад работа с SQL-запросами например вполне себе "упиралась" в скорость печати - язык достаточно "многословный", с автодополнением в те времена дело не то, чтобы замечательно обстояло - да и сейчас, по чесноку, подтормаживает ;).
Документирование работы, переписка в чатах и почте + 0,5% повышения эффективности работы с текстом... кмк неплохая инвестиция в свое время была, вполне себе окупилась Эн раз к настоящему моменту. Так даже и не скажу, что было бы эффективней учить вместо - так чтоб потратил месяц времени и _всю жизнь_ пользуешься.
Большинство используемых мной технологий за 20+ лет конкретно так поубавили в значимости - разве что bash какой-нибудь... ну так слава б-гу вопрос "или - или" тут не стоял.
vtb_k
26.10.2023 20:53Большинство используемых мной технологий за 20+ лет конкретно так поубавили в значимости
Кстати, это очень хороший аргумент, слепая печать останеться с тобой, даже когда твоя иде канет в Лету)
Tony-Sol
26.10.2023 20:53Большинство используемых мной технологий за 20+ лет конкретно так поубавили в значимости - разве что bash какой-нибудь... ну так слава б-гу вопрос "или - или" тут не стоял.
Может я конечно не понял, но вопросы «или - или» стоят, как и холивары вида bash vs zsh vs ash vs fish
santjagocorkez
26.10.2023 20:53О, кстати, а потом приходишь на собес, а там "у тебя 15 минут, за которые надо прочесть сторик, обдумать архитектуру решения, написать реализацию, оттестировать, задеплоить в прод, расписать документацию, получить фидбек от PO/PM". Каждая почти первая техничка по software engineer такая. Прям так и вижу, как собеседующие, рассказав, какой у них скрам эджайл, бегут после собеседования на планирование спринта и закрывают бэклог во время этой самой планерки.
Spaceoddity
26.10.2023 20:53Мы тут вроде речь про полноценные "идешки" ведём. С нормально настроенным автокомплитом. Действительно, что там слепая печать может ускорять?.. Даже имена переменных есть нужда полностью набирать всего один раз. Ну и мышкой я в редакторах редко пользуюсь - клавиш навигации вполне хватает.
vtb_k
26.10.2023 20:53+3У меня в Емаксе тот же самый полноценный автокомплит, с поиском имплементаций и джампом к декларации. Все тоже самое, что и в вскод. Вот только это все настроено с таким удобством, что ни одна "полноценная" иде не позволяет настроить. У меня целый список функций, которые делают какие-то маленкие действия, специфические для меня, моего окружения. Например есть мод на парсинг systemd логов. Или мод для управления kubernetes, для чтения rss и тд. Все в привычном окружении. Не зря говорят, что Емакс операционная система. Для самого редактирования я использую как раз вим биндинги)
atshaman
26.10.2023 20:53Так оно ж примерно везде есть - причем "из коробки". И что проще - привыкнуть к тому, что сделано и не иметь проблем при переходе с компа на комп или сделать самому - для меня лично большой вопрос. И да, vimrc с конфигой тайлового VM я за собой потаскал - и повторять сий экспириенс не планирую.
Единственный неприятный момент - риск, что "чужое" владелец решит радикально УЛУЧШИТЬ и вот тут тоби звИзда... Но если честно - привыкнуть к какому-нибудь "new UI" оказалось не то, чтобы трудно.
vtb_k
26.10.2023 20:53не иметь проблем при переходе с компа на комп
Я совершенно не понимаю этого аргумента. Ещё ни разу в жизни я не работал за чужим компом. Если же вы про покупку нового компа/ноута, так с этим отлично справляются дотфайл менеджеры. Лично я использую chezmoi и тут снова преимущество в Вим/Емакс, потому что все сохраняется в текстовом файле, не надо настраивать все мышкой заново. Я недавно купил ноут и полноценно работал за ним уже через полчаса, после установки арч линукса
atshaman
26.10.2023 20:53Эмм... ну, повезло. А у меня были прецеденты со сменой ОС при смене работы - на вот тебе macbook и не жужжи. А у нас корпоративный стандарт - windows 10, вот типовой АРМ - и куды хочешь, туды свой тайловый VM и присовывай :).
И закрытые окружения у клиентов - тоже в количестве. И работа на оборудовании заказчика... да много чего было.
Правда я не кодер - именно программисты могут с подобным и не столкнуться, да.
SpiderEkb
26.10.2023 20:53Да точно также сталкиваются. Тоже пришел - у нас все под виндой. Все схемы рисуем в Visio. Все ориентировано на винду. Виртуальное рабочее место - винда.
vtb_k
26.10.2023 20:53Вот поэтому перед каждым собеседованием я постоянно уточняю, можно ли мне линуксом пользоваться. И конечно же это подходит не для всех
atshaman
26.10.2023 20:53Ну, наверное "да" - но у меня за всю жизнь было очень немного задач, решать которые из linux-only окружения принципиально эффективней чем из windows\гибридного. Вот наоборот - дофига, да.
Можно ограничить область деятельности linux4linux напилингом - и даже получать за это хорошие деньги - но зачем?
vtb_k
26.10.2023 20:53у меня за всю жизнь было очень немного задач, решать которые из linux-only окружения принципиально эффективней чем из windows\гибридного
Ну у меня строго наоборот, нету ни одного сценария, где от виндовс есть хоть какая польза а не геморой. Вообще кроме десктоп прог на виндовс мне сложно представить где винда лучше. Разве что в проприетарном мире, но я слава богу от него далек. Вот и выяснили причину недоумения большинства коментаторов. Мы просто работаем в разных вселенных, которые пересекаются разве что в браузере.
atshaman
26.10.2023 20:53Ну это религия уже. Я "администрированием ActiveDirectory" с linux в свое время переболел - Хвала Аллаху, в легкой форме ).
IRL - доля linux ну процента 2, может 3. А то, что есть - такой себе "linux" - пачки контейнеров, легковесные виртуалки, которые примерно все равно октуда кувыркать. Т.е. и в 2% есть жизнь - никто не спорит - но как бы отрицать оставшиеся 98% странно.
vtb_k
26.10.2023 20:53Вы сейчас о чём? 98% у винды и на десктопе сейчас нету. Весь веб, модные нынче ИИ на линуксе работают
atshaman
26.10.2023 20:53Вы этот "linux" видели? Ну раскатан каким-нибудь terraform'ом на 100500 нод talos у которого даже SSH нет - а унутре у него - и вовсе distroless контейнеры с софтом. И?
vtb_k
26.10.2023 20:53Я на нём работаю каждый день, конечно я его видел. Более того, эти контейнеры не серебрянная пуля и не всем подходят. Я вот предпочитаю локально бэк запускать, зачем мне лишняя абстракция для этого?
atshaman
26.10.2023 20:53Ну, т.е. современную контейнеризованную архитектуру - "нет", так? "Предпочитать"-то можно все что угодно, а вот работать... windows - нет, macos - нет, современный околооблачный "linux" судя по всему - тоже "нет" - кто остался на трубе?
Зато с emacs'ом, да.
vtb_k
26.10.2023 20:53С чего вы это взяли? У меня 300 клиентов на всех континентах, 5 кластеров кубика, у каждого клиента свой деплоймент в своем неймспейсе. Более того всем этим я с Емакса и управляю.
atshaman
26.10.2023 20:53Ну вот я и спрашиваю - "зачем"? "Чтобы что?!"
В каком-нибудь 2007 году понятно - вот на десктопе у тебя centos 6, вот на сервере RHEL, на десктопе ты какую скриптоту напилил - 1-в-1 на сервер перенес, ой, поломалось? Там же на сервере тем же vim'ом и поправил, profit! Навыки десктопного "linux'a" практически идеально маппятся на навыки управления сервером, все логично - тут и там одна и та же ОС.
А сейчас? Что общего у talos'а и твоей убунты-федоры-дебояна-генты? Ядро? И то условно. А между "distroless-контейнером"? И того нет. Как умение башпортянить и системдить помогает скейлить serverless аппликуху в firecracker'е AWS? Ну вот "никак". И даже доступа к апи куба у тебя нет - "програмировай давай!" а деплоем специально обученные люди занимаются.
Никуда ты со своим "любовно вылизанным" emacs'ом окромя своего десктопа не вылезешь по большому счету и нигде больше он не нужен. Ну и вот зачем?
SpiderEkb
26.10.2023 20:53У нас вам скажут - пользуйтесь на здоровье. А потом начнете запускать VPN под виндой в виртуалбоксе чтобы получить доступ.
Вообще непонятны вот эти заморочки по поводу инструментария и среды.
vtb_k
26.10.2023 20:53Я поэтому заранее спрашиваю, есть ли заморочки с виндой и нестандартными впн-ами на новой работе. За последних 7-8 лет никаких проблем не было, openvpn работал на всех 5 работах, где я работал за это время
SpiderEkb
26.10.2023 20:53Ну тогда надо еще интересоваться - "а что там у вас с коммуникациями? а под линуксом оно будет работать?" а то вот некоторые линуксоиды жалуются что постоянно то камера, то микрофон отваливаются... Под виндой все работает, а с линуксом постоянные проблемы то тут то там...
Мне вот в целом все равно под чем. Вот на столе комп с виндой, вот рядом комп с линуксом. Что удобнее для данной конкретной задачи, то и пользую в данный момент.
vtb_k
26.10.2023 20:53вот некоторые линуксоиды жалуются что постоянно то камера, то микрофон отваливаются..
На винду жалоб в сотни раз больше))) Просто потому, что она везде. Лично я не испытываю проблем ни с микрофоном, ни с камерой.
atshaman
26.10.2023 20:53Да осспыдя. Банально совещание запланировать сплошь-и-рядом без OWA не выйдет - а OWA есть тащем-та не всегда.
vtb_k
26.10.2023 20:53OWA
Без понятия что это, но у меня гугл календарь без проблем работает в Емаксе
iig
26.10.2023 20:53гугл календарь без проблем работает в Емаксе
Рад за обоих, но если команда работает на Outlook, то гуглокалендарь не поможет.
vtb_k
26.10.2023 20:53+1Слава богу, есть компании, где нормально работается на гугл сьют и мне можно не париться с вендорлоком
SpiderEkb
26.10.2023 20:53Общее ощущение. Сидят себе люди, за 5-10-15-... лет работы выстроили себе среду удобную. Каждый свое, под свои задачи. И тут приходит "Маша", которая "открыла для себя AllWay's" и начинает всем рассказывать как это круто. Ну да, ну да...
vtb_k
26.10.2023 20:53А что в этом плохого, рассказывать как ты настраиваешь свое рабочее окружение?
SpiderEkb
26.10.2023 20:53+2В целом ничего плохого. Есть не бросаться радикальными заявлениями типа "все разработчики должны сидеть под Линукс и пользовать вим". Кому должны? А если предлагают работу с хорошей оплатой и интересными задачами, но условием что вся экосистема выстроена под винду и линукс в нее никак не вписывается? Будем строить из себя гордую грузинку и откажемся?
Ну и настройка рабочего окружения дело очень индивидуальное. Ну расскажу я как себе выстроил и что? Вам это точно не поможет - у вас другие задачи, другая целевая платформа, другой стек и вообще все другое.
vtb_k
26.10.2023 20:53А если предлагают работу с хорошей оплатой и интересными задачами, но условием что вся экосистема выстроена под винду и линукс в нее никак не вписывается?
Я в таких случаях отказываюсь. Мне такая работа не интересна.
Ну расскажу я как себе выстроил и что? Вам это точно не поможет
Вот тут вы сильно ошибаетесь. 90% моих конфигов взяты с подобных статей. У вас другие задачи - пускай, вас никто насильно не заставляет комментировать. Я как раз из-за одной такой статьи и попробовал Вим, а потом и Емакс и очень рад, что я её в свое время прочитал.
SpiderEkb
26.10.2023 20:53Я в таких случаях отказываюсь. Мне такая работа не интересна.
Что именно неинтересно? Сама работа, или то, что туда линукс не вписывается?
Я вот 30+ лет "в разработке". И под разные платформы на разных языках разные задачи решал. В целом - все равно на чем и под чем. Это вообще не вопрос [с опытом становится]. Больше смотрю на характер работы - если шлепать типовые формочки на готовых фреймворках - это сразу лесом. Если что-то нестандартное (нестандартное железо, интересные с алгоритмической точки зрения задачи, что-то сильно системное с повышенными требованиями к устойчивости и эффективности) - это может заинтересовать.
Когда 6 лет назад позвали в банк, особого интереса это не вызвало. Но сходил просто поговорить. Разговор получился хорошим - стало интересно когда немного рассказали что вся работа будет под платформу IBM i, которая вообще ни на что не похожа принципиально (все принципы построения системы радикально отличаются от винды и линукса). В результат согласился и ничуть не жалею, хотя первые 2-3 месяца были очень тяжелыми. Но это реально интерсно.
90% моих конфигов взяты с подобных статей.
Ну значит у вас все типовое, "как у всех".
vtb_k
26.10.2023 20:53Что именно неинтересно?
В целом - все равно на чем и под чем.
Вот вы и ответили на свой вопрос. Все задачи одинаковы +-, поэтому я предпочитаю работать в привычном окружении, а не изучать каждый раз новые/старые подходы. Винда для меня вообще не вариант, там без мыши не выживешь, с каждой версией интерфейсы меняются. Я когда меняю свой конфиг, я знаю для чего я это делаю и делаю когда у меня есть для этого времени, а не хоп обновилось само и все твои годами выстроенные привычки пошли лесом
SpiderEkb
26.10.2023 20:53"Все равно" в смысле что первична задача. А под нее уже инструментарий подбирается наиболее удобный. Без ограничений "буду использовать это потому что другого не знаю и не умею".
я предпочитаю работать в привычном окружении, а не изучать каждый раз новые/старые подходы
А вот это зря. Риск выгорания выше, да и при изучении чего-то нового в мозгу образуются новые нейронные связи.
Винда для меня вообще не вариант, там без мыши не выживешь, с каждой версией интерфейсы меняются.
Порой пара кликов мышой просто быстрее чем набивать многострочные команды в линуксовом терминале.
А в IDE все развешивается по хоткеям и там вообще без мыши можно.
Да и интерфейсы в винде незначительно меняются (особенно если сравнивать с зоопарком линуксовых оконных менеджеров).
обновилось само и все твои годами выстроенные привычки пошли лесом
Это про что сейчас? Можно конкретные примеры чтобы "обновилось само до неузнаваемости"? Это какие-то городские легенды.
vtb_k
26.10.2023 20:53Это про что сейчас?
Совсем недавно была статья тут же, почему пользователи не хотят на 11 винду переходить, а остаются на 10. Но это не надолго, майкрософт заставит всех ещё раз поломать свои привычки, как это было во всех обновах до этого.
Да и интерфейсы в винде незначительно меняются (особенно если сравнивать с зоопарком линуксовых оконных менеджеров).
А вот тут уже наглая ложь. Меня никто не заставит пересесть на гном например, а всех пользователей винды заставили забыть про меню пуск в одном из обновлений.
А в IDE все развешивается по хоткеям и там вообще без мыши можно.
А потом появится новая модная иде, где свои хоткеи)
Arenoros
26.10.2023 20:53нет, не заставили, 1 программа и хелло фром пуск из windwos 7. Я переболел "linux лучше win" уже очень давно у обоих операционок есть как плюсы так и минусы они обе отвратительны и каждая по своему, и уж не линуксоидам про стабильность интерфейсов говорить.
В принципе для девопса, судя по комментариям, линукса с текстовым редактором более чем достаточно, я тут даже спорить не стану, 90% вемени это правка конфигов и написание скриптов. Ни тебе разбора дампов, ни проблем с поиском рейсекондишенов в многопоточке да и вообще всех остальных веселий при разработке на C/С++. Емакс как и вим в таком кейсе отлично решают все необходимые задачи но уж точно не для всех и не всегда о чем косвенно намекает автор оригинальной статьи.
Но удачи в виме или емаксе писать для условного Unreal Engine (возможно есть и более подходящие примеры). Но по мнению автора эти люди не инженеры да и вообще "не компетентные" раз пишут не в "божественном vim".
| А потом появится новая модная иде, где свои хоткеи)
Вообще странный аргумент, во-первых во всех ide все хоткеи настраиваются, во-вторых есть какая то принципиальная разница если вдруг с вимер решит переключится на "модный" емакс или наоборот?
vtb_k
26.10.2023 20:53В принципе для девопса, судя по комментариям, линукса с текстовым редактором более чем достаточно, я тут даже спорить не стану, 90% вемени это правка конфигов и написание скрипт
Не судите по комментам, это очень глупо) К сожалению у меня очень мало времени на написание кода, больше тратится на бесконечные созвоны и написание тасок джунам, в чём Емакс как раз очень помагает.
если вдруг с вимер решит переключится на "модный" емакс или наоборот?
Я в равной степени владею обоими
atshaman
26.10.2023 20:53+1Ну по последнему - посмотрите "NewUI" в JetBrains :) - да, пока он не форсится, но мыжпонимаем :)
Или переход с 2003 офиса на "ленточный" - да, объективно при освоении "с нуля" стало удобней. Но те, кто хорошо освоил 97-2к-2003 - страдали :).
SpiderEkb
26.10.2023 20:53А что такое JetBrains? Я VSC пользую. Нули Notepad++ когда нужно быстро один файлик поправить.
И какое отношение JetBrains имеет к винде? Даже MSOffice можете не пользовать - поставьте либру коль так приперло.
atshaman
26.10.2023 20:53+1Ох. Выбирать работу под инструмент...
vtb_k
26.10.2023 20:53Ну, этот инструмент позволяет делать любую работу в линуксе, что уже немало, согласитесь?
atshaman
26.10.2023 20:53Да фиг знает. У меня сейчас примерно все в контейнерах под оркестратором - на большинство серверов никто никогда руками и не лазил - какой пойнт "делать работу в linux'е" в этом случае?
vtb_k
26.10.2023 20:53Но я то ещё застал время папочек по фтп. Мода на контейнеры совсем недавно возникла.
atshaman
26.10.2023 20:53Оттож. И я застал - но нонеча не то, что давеча. Не, все еще попадаются какие-то около "Росатомные" товарищи таскающие свое ПО в виде архивов папочек - вот тебе весь /etc с нашей машины - мы все настроили, замени и не трогай, вот /home с десятком пользователей - сюда тоже не смотри, вот...
Но как бы эта... уже даже и не смешно.
vtb_k
26.10.2023 20:53Вы меня неправильно поняли. Я был эффективен за счёт слепого набора+ вим/емакс ещё с тех времен. Современные ИДЕ не дают никакого преимущества мне совсем. Наоборот. Раньше модным был нетбинс/эклипс, потом саблайм, потом вскод. Каждый раз приходилось ломать себя и свои привычки, что отлично показано в статье. А Вим/Емакс остался таким же. Почти любой тутор/статья из 2000-х все так же могут помочь с вопросом. Вот с любой иде без видео или тысячи скриншотов уже не разобраться даже сейчас
atshaman
26.10.2023 20:53Да я и не возражаю - г-ди б-же мой! :)
Просто с т.з. индустрии с курсами "вайтивайти" за полгода тратить 2 месяца на освоение инструмента - безумие. "Стоимость\эффективность", затраты окупятся примерно "никогда". Но если вложился и освоил - то да, на определенном сетапе скорее всего ты будешь "эффективней". Главное - "не выходи из дома, не совершай ошибку..."
vtb_k
26.10.2023 20:53Главное - "не выходи из дома, не совершай ошибку..."
Я свой конфиг постоянно улучшаю. Это кстати позволяет мне не выгореть на работе, где только и идёт перекладывание жсонов в базу данных и обратно)
SpiderEkb
26.10.2023 20:53+3Это кстати позволяет мне не выгореть на работе, где только и идёт перекладывание жсонов в базу данных и обратно)
Тогда все понятно. Может стоит работу поинтереснее и поинтеллектуальнее найти? Глядишь, и тяга к конфиготворчеству отпустит - голова будет занята более полезным и интересным.
vtb_k
26.10.2023 20:53Глядишь, и тяга к конфиготворчеству отпустит - голова будет занята более полезным и интересным.
Это мне решать, что для меня более полезно, а не вам. Не судите и судимы не будете. Я считаю, что для меня более полезно будет максимально быстро сделать мою работу и заняться любимым делом, а не безполезно тыкать мышей как улитка
Einherjar
26.10.2023 20:53Может стоит работу поинтереснее и поинтеллектуальнее найти?
Так для этого надо время тратить на изучение чего то нового и полезного, а не на повышение собственной "эффективности" путем бесконечного совокупления с конфигами и плагинами.
vtb_k
26.10.2023 20:53путем бесконечного совокупления с конфигами и плагинами.
Ну да, лучше же совокуупляться с мышкой и кнопочками)
чего то нового и полезного
Все новое - давно забытое старое, а вот про полезность я бы не заикался вообще
SpiderEkb
26.10.2023 20:53Осторожнее с "любую".
Можете в своем любимом VIM (или что у вас там) организовать подключение к AS/400 серверу (ну например PUB400) чтобы можно было с объектами работать (там ни файлов, ни папок - "библиотеки" и "объекты") прямо на сервере. Чтобы отладка работала, скуль интерактивный...
Про поддержку используемых там языков (CL, RPG...) молчу уже.
Запускать сборку, тесты, все одно на сервере придется - там отдельный эмулятор терминала IBM5250 потребуется.
Для VSC, например, есть пакет IBM i Development Pack который все это позволяет. У нас еще свой есть пакет - iTools, но это специально под наши сервера, там еще больше всяких ништяков для работы (раскрытие кописорсов и т.п.).
Основная проблема линукса для меня в том, что нет поддержки того VPN который у нас используется. А это все. Никакой работы не получится - нет доступов никуда. Только через VDI на виртуальное рабочее место, но там опять винда...
vtb_k
26.10.2023 20:53+1Я не понимаю о чём вы говорите. Я же не раз упоминал, что такой сетап не всем подходит. Это не значит, что я считаю кого-то хуже себя. Вообще ниразу. Просто тут в комментариях все отрицают подход, описанный в статье, хотя он полностью рабочий. Просто он другой и не всем подходит. Но это же не значит, что его не следует попробовать, даже чтобы узнать подходит ли он или нет.
Arenoros
26.10.2023 20:53Проблема этой статьи в том что автор разбрасывается очень спорными утверждениями, если б он просто перечислил как перешёл к вим и как всё настроил, подсветку, автокомплит и прочие свистоперделки которые во всех ide из коробки уже есть, было бы ноль претензий и вопросов, но вот его выводы и посыл абсурдны
vtb_k
26.10.2023 20:53Я тоже не со всем согласен с автором, но я то тут при чём? Я статью не писал и ни на кого не наезжал.
GBR-613
26.10.2023 20:53Я думаю, что написать такой plug-in для vim гораздо проще, чем было это сделать для VSC. Другое дело - кому это нужно? А ещё на AS/400 есть какая-то Unix-подобная оболочка (не помню, как называется), можно сделать так, что vim будет под ней работать, то-то будет людям радости!
iig
26.10.2023 20:53Если полжизни учился управляться с луком - как-то странно переучиваться на арбалетчика ;)
atshaman
26.10.2023 20:53Ну просто когда вокруг у всех аркебузы - может стать больно-и-обидно
vtb_k
26.10.2023 20:53Ну просто когда вокруг у всех аркебузы
До изобретения lsp сервера я бы с вами согласился на 100%. Теперь же мой Емакс может абсолютно всё тоже что и любая иде, только запускается меньше секунды)
Tamerlan666
26.10.2023 20:53А в чем смысл замерять время запуска IDE? Это какая-то специальная олимпиада по запуску/закрытию IDE на скорость? У меня IDE неделями не перезапускается, в основном рестарт идет когда обновления для самой IDE или плагинов прилетают.
vtb_k
26.10.2023 20:53Ну а я запускаю свой Емакс каждый раз, мне так удобнее. Почему я должен подстраиваться под ваш сценарий? И почему ваш сценарий только единственно верный и вы его навязываете всем?
Tamerlan666
26.10.2023 20:53В чем смысл постоянного перезапуска IDE, если вы и так каждый день в ней работаете? Просто потому что могу?
vtb_k
26.10.2023 20:53Потому что могу. А ещё потому что я выключаю ноут, когда заканчиваю работу. А почему я должен оставлять что-то открытым?
atshaman
26.10.2023 20:53Понимаете - если действие лишено смысла - скорость его выполнения в общем-то не является метрикой разумного выбора.
vtb_k
26.10.2023 20:53Согласен. Оставлять на ночь включенным комп/ноут из-за ИДЕ не является разумным выбором. Даже по правилам пожарной безопасности.
Einherjar
26.10.2023 20:53+1Оставлять на ночь включенным комп/ноут
С 2000 много всего нового и интересного придумали, сон/гибернацию например.
vtb_k
26.10.2023 20:53-2С 2000 много всего нового и интересного придумали, сон/гибернацию например.
Люблю минимализм. Так проще. Может, когда повзрослеете чуть, тогда поймёте)
Einherjar
26.10.2023 20:53+3Может, когда повзрослеете чуть, тогда поймёте)
И познаю все тонкости перекладывания жсонов в базу и обратно?
iig
26.10.2023 20:53Есь байка, что нововылупленный из яйца утенок считает мамой первый увиденный передмет подходящих размеров. У айтишников этот синдром тоже очень распространен ;) Иначе откуда эти holywar'ы linux/windows, C/python, vim/not_a_vim?
vtb_k
26.10.2023 20:53Согласен. Иначе б мне тут не задвигали невыключение компа из-за долгой загрузки ИДЕ)
atshaman
26.10.2023 20:53+1Так и скажите, что в linux'е гибернация примерно "не работает" рандомным образом )))
vtb_k
26.10.2023 20:53Гибернация - это просто костыль, я именно с винды её не люблю. И не вижу ни одной причыны её использовать. У меня комп за секунду стартует и Емакс тоже. Смысла в костылях не вижу
atshaman
26.10.2023 20:53Муа-ха-ха! Вы часом на "Сибуре" не работали? Там безопасники в конце квартала очень это дело любили - надо найти Эн нарушителей корпоративного стандарта - кто там компьютер на ночь не выключил?
С учетом того, что инцидентов связанных с самовозгоранием ПК за время моей работы было ровно 0 - "ноль" - стоимость потерянного работниками компании за этот период времени представляет собой минимум семизначную цифру.
Но да "Бэ" - "беэзопасность"! Не терпит компромиссов!
vtb_k
26.10.2023 20:53Нет, я работаю из дома и мне не нужно даже теоретически возможного возгорания.
С учетом того, что инцидентов связанных с самовозгоранием ПК за время моей работы было ровно 0 - "ноль
типичная ошибка выжившего
DirectoriX
26.10.2023 20:53Из личного опыта: VS Code открывает средних размеров проект на Rust порядка 3-5 секунд, затем секунд 40 "думает" rust-analyzer. Пока проект анализируется, VS Code продолжает загружать другие плагины, но всё равно rust-analyzer фактически основной, пока он не закончит анализ, я редактировать исходники не буду.
Если бы VS Code запускалась мгновенно (или если бы это был vim/emacs/whatever, запускающееся "меньше секунды"), rust-analyzer всё равно бы думал те же 40 секунд, потому что это время зависит только от самого rust-analyzer и размера проекта, а не от того, какой клиент сидит на другой стороне LSP.
Разница между 40.x секунд и 45 уже не столь существенна, как между 0.x и 5, не правда ли?
vtb_k
26.10.2023 20:53Хорошо, что я не пишу на раст, у меня таких проблем нету
atshaman
26.10.2023 20:53Ну да, если старательно выбирать задачи под возможности инструмента - проблем адекватности "инструмента" "задаче" не возникнет примерно "никогда". Правда есть риск возникновения проблемы неадекватности связки "инструмент->решаемая задача" потребностям клиента - но тут кому как повезет. Кто-то и на 1с 7.7 вполне себе масло на хлеб мажет, кто-то delphi 7 все еще не списал, кто-то вот нинужное-нинужна-под-нинужна для рогов-и-копыт ковыряет...
vtb_k
26.10.2023 20:53Я смотрю на это так. Кто-то выбирает работу под себя, а кто-то жрет, что дают. Каждый сам себе выбирает приоритеты.
SpiderEkb
26.10.2023 20:53Почему странно? Это может стать просто интересно, не допускаете?
Или полагаете что так всю жизнь и просидите на одном инструменте?
PeterZha
Вы на верном пути! Осталось только изучить
ed
! :)domix32
Перевод же