Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.
Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.
Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!
Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.
Заблуждение №1: модальное редактирование
Впервые столкнувшись с vi или vim, вы испытываете шок и отвращение от того что должны нажать "i" для того, чтобы начать вводить текст. Вы не можете вспомнить, какая из кнопок "hjkjl" за какое направление отвечает. И надо нажимать "a", чтобы печатать в самом конце строки. Так как вы, вероятно, уже использовали другие редакторы, а в режиме ввода работает навигация стрелочками, вы используете только его, переходя в командный режим только в случае крайней необходимости. Возможно, вы потратите на это минут двадцать, постоянно жалуясь "как, во имя всего святого, я должен запомнить в каком режиме сейчас редактор!" — и никогда не захотите воспользоваться vi снова.
Но это просто абсолютно неправильные способ использования vi. Правильное использование — не модальное. Вы всегда находитесь в командном режиме и входите в режим ввода только для короткого, "взрывного" набора текста, после чего сразу возвращаетесь обратно в командный режим. Вот почему проблемы я-не-помню-в-каком-режиме не существует: вы не отвечаете на телефонный звонок, находясь в режиме ввода, а по возвращении пытаетесь вспомнить, где находились. Вы пишете код, звонит телефон, вы возвращаетесь в командный режим, а затем отвечаете на звонок. Или возвращаетесь в него, когда договорите, но вы никогда не думаете о режиме ввода как о режиме, в котором вы обычно работаете.
Позвольте мне объяснить философию, лежащую за этим.
Команды в vi задуманы комбинируемыми: 'd' значит "удалить", 'e' значит "переместить курсор в конец слова", поэтому 'de' завершенная команда, означающая "удалить все от текущего положения курсора до следующего конца слова" (что-то вроде Ctrl-Shift-Right, Left, Del в большинстве обычных редакторов).
Первым положительным следствием из этого является то, что команда '.' повторяет последнюю законченную комбинированную команду редактирования (но не команду перемещения). После нажатия 'dw', '.' ведет себя как команда "удалить от текущего положения курсора до следующего начала слова". Вы можете перемещаться по файлу со всей мощью команд навигации и нажимать '.' везде, где нужно удалить все до начала следующего слова, очень быстро. Эта возможность является невероятно мощной.
А теперь мы добрались до команд ввода. Эти команды после выполнения специфичных для каждого действия переводят редактор в режим ввода, позволяя вам набирать текст. Так вот, для этих команд полный текст команды содержит весь текст, введенный вами между 'i' (или какую там команду ввода вы использовали) и выходом в командный режим.
Это значит, что если вы напечатали "iHello[ESC]", что вводит "Hello" в текущей позиции курсора, то теперь '.' — это команда, которая вводит "Hello" в текущей позиции курсора. И все на этом. Вы можете себе представить, на сколько это мощная возможность. "A" переводит курсор в конец строки и активирует режим ввода. После завершения набора нажатием [ESC] вы можете нажать '.' где угодно, чтобы повторить ввод в конце строки.
Еще один даже более впечатляющий пример: команда 'ce', являющая комбинацией команд 'c' и 'e'. Команда 'c'hange удаляет диапазон, обозначенный следующей за ней командой перемещения и активирует режим ввода. Как команда 'd', но с выходом из командного режима. Плюс в том, что текст, набранный в течении следующей (короткой) сессии ввода, тоже является частью команды. Так что если вы наберете 'ceHello[ESC]', вы замените часть слова от текущего положения курсора до конца слова на "Hello", а после этого команда '.' позволит вам повторить этот ввод столько раз, сколько понадобится.
Команды перемещения тоже могу быть гораздо более сложными и дополняться разнообразными командами-редактирования-переводящими-в-режим-ввода ('o' — 'создать новую строку под текущей', 'O' — 'создать строку над текущей', 'S' — 'удалить все до конца строки' и т.д. все они переводят в режим ввода ). Только представьте, какие паттерны редактирования вы можете создавать и повторять с помощью простого нажатия '.'!
Пример №1: потрясающая команда "точка"
Давайте рассмотрим на примере. Представим, вы объявили три новые функции в вашем заголовочном файле и теперь вам надо реализовать их в модуле. Вы копируете следующий текст и вставляете его в файл модуля.
Весь код начинается с этого, не так ли? Теперь было бы неплохо удалить символы точки с запятой и добавить пустые тела функций. С курсором находящимся в положении как на картинке выше вы можете нажать "A" чтобы перейти прямо к вводу в конце строки:
Обратите внимание на курсор режима ввода в конце строки. Теперь вам надо удалить ";" с помощью [BACKSPACE] и набрать "[ENTER] { [ENTER] } [ENTER]", чтобы создать пустое тело функции, как в любом другом текстовом редакторе.
Теперь жмём эскейп, чтобы выйти в командный режим:
А теперь надо все это повторить с оставшимися двумя. Как это сделать? Легко: нажимаем 'j' чтобы переместить курсор на строку вниз и затем '.', чтобы повторить редактирование (от нажатия "А" до [ESC]). Если вы нажмете 'j.j.', то получите следующее:
Просто 'j.j.'! Ключом здесь является архитектура команд vi вместе с тем, что [BACKSPACE] является частью редактирования как обычный набор текста и тем, что операции редактирования обладают высокой повторяемостью. Подумайте, сколько ваших ежедневных правок являются повторяемыми? Ага, я так и думал.
Заблуждение №2: дело не в регулярных выражениях
Vi/Vim прекрасно справляются с обработкой регулярных выражений. Все более-менее серьезные текстовые редакторы поддерживают регулярные выражения — поиск, замену и так далее, но только vi (из тех что я знаю) может использовать их сложные комбинации вроде "поиска и замены второго включения "begin" после строки содержащей "proc", или что там еще может придти вам в голову.
Так что я не хочу принизить значение регулярных выражений или способность vi/vim их обрабатывать. Но настоящая сила vi, сила, без которой вы не сможете жить после того, как научитесь ее использовать — это сила базовой модели редактирования текста:
- Одно- или двухкнопочные команды для перемещения именно туда куда вам надо в строке или на экране.
- Команды вроде 'd' или 'c' которые будучи скомбинированы с командами перемещения позволяют напрямую изменять интересующий вас кусок кода с возможностью повторения редактирования простым нажатием '.'
- Руки всегда в удобном положении на клавиатуре. Редактирование одинаково комфортно и на ПК и на ноутбуке.
Пример №2: умные диапазоны
Давайте рассмотрим следующий типичный пример. Это просто вызов функции встроенный в некое сложное выражение:
Как вы можете видеть, курсор находится в начале вызова функции. А теперь представьте, что мы хотим убрать его оттуда и назначить некоторой локальной переменной. Для начала нам надо выделить вызов функции, скопировать и удалить его, напечатать имя переменной, переместиться на строку вверх для объявления этой переменной. Следуя обычной модели редактирования вы бы начали играться с Ctrl-Right и left/right пока не сделали бы все как надо. Но не с vi/vim. Команда перемещения '%' позволяет перемещаться от открывающей скобки (или другого группирующего символа) до соответствующей закрывающей скобки — но если курсор не находится на одном из этих специальных символов, vim идет вправо до первого такого символа, а затем перемещает курсор на соответствующий ему закрывающий. То есть, в нашем случае, курсор переместиться прямо на закрывающую скобку вызова функции!
Зная, что команда 'c' удаляет текст на всей протяженности следующего за ней перемещения (а так же копирует его в буфер обмена), мы можем просто набрать 'c%' и получить следующее:
Наш вызов функции скопирован в буфер обмена и мы готовы ввести имя переменой. Неплохо для двух кнопок! После ввода имени переменной и нажатия [ESC]:
Теперь в командном режиме мы можем нажать 'O' для создания строки над текущей и перехода в режим ввода, а затем объявить переменную:
Теперь нам надо вставить вызов функции, а так как он уже в буфере обмена мы можем вставить его нажав Ctrl-R, а затем " (немного не интуитивно, но это комбинация для вставки из стандартного буфера обмена ), дальше ";" и [ESC]:
Заблуждение №3: надо быть психом и/или гением чтобы использовать это
Ну что же, я надеюсь, что благодаря объяснениям и примерам выше у вас появилось понимание потенциала возможностей, предоставляемых vi/vim. Тяжело в учении (см. ниже), но если вы собираетесь кодить восемь часов или больше в день годами, то это вторая наилучшая инвестиция после "слепой печати" (которую вы уже освоили, не так ли? Если нет, начните с нее). Потратив несколько недель сейчас, вы будете получать дивиденды всю свою жизнь.
Смысл в том, что с vi ваша клавиатура превращается в специализированный геймпад для редактирования текста с практически сотней кнопок, каждая из которых имеет как минимум две функции — с шифтом и без шифта; таким образом, у вас уже под две сотни функций доступных по нажатию одной кнопки (не считая шифта) (прим. пер.: что-то много автор насчитал, можно смело на два делить). Мощные сами по себе команды можно комбинировать друг с другом для получения наилучшего результата. Во время ввода это стандартная клавиатура, но при возврате в командный режим это идеальная машина для редактирования текста
Пример №3: манипуляции с разграниченными блоками
Еще один простой пример. Работает только в vim, так как использует одну из специфичных для него команд перемещения. Скажем, вы находитесь внутри блока ограниченного угловыми скобками, что не редкость в наши дни XML:
Как выделить текст внутри чтобы копировать/изменить/удалить его? В обычных текстовых редакторах вы вынуждены убрать руки из текущего комфортабельного положения и воспользоваться стрелками, или того хуже мышью. Любой из этих вариантов не удобен, особенно на ноутбуке. Как сделать это в vim? Вы просто используете одну из команд перемещения по объектам текста, каждая из которых начинается с 'i' или 'a' (эти символы так же используются как команды редактирования и поэтому могут следовать только после 'd' или 'c' команд) 'i>' означает текущий блок ограниченный угловыми скобками, где 'i"' от 'inner'. Так что вы можете набрать 'di>' чтобы удалить весь текст внутри угловых скобок:
Вы можете использовать '(' или ')' чтобы выделить текущих блок ограниченный скобками (или даже 'b' от 'block'), '{' или '}', '[' или ']', 'w' для пунктуационно выделенного слова, или 'W' для слова выделенного пробелами, предшествующее 'i' c любым из них для внутреннего содержания, или 'a' чтобы выделить разделители тоже.
Заблуждение №4: "hjkl" для перемещения по тексту?
Многие люди считают странным использование hjkl вместо стрелок. Реальной причиной такой реализации кажется то, что терминалы вроде этого не имели стрелок и клавиши hjkl несли дополнительную нагрузку. Но побочным эффектом такого расположение является отсутствие необходимости убирать руки из комфортного положения, что великолепно.
В любом случае, хотя по началу вы будете использовать hjkl для перемещения по тексту, освоив vi/vim вы, вероятнее всего, откажетесь от использования клавиш 'h' и 'l'. Почему? Потому что есть гораздо более мощные команды, которые могут переместить курсор в нужное место текста намного быстрее. Я обнаружил, что при редактировании строки всегда есть команда перемещения, которая перенесет меня прямо к нужному символу, я использую эти: 'f' дополняемая любым символом следующее вхождение которого я хочу найти, '%' для перемещения по скобкам и т.д. При навигации по файлу вы можете использовать команды чтобы перейти вверх/середину/низ экрана напрямую, '/' для быстрого поиска, ']]' и родственные ей для навигации по функциям, и т.д.
Пример №4: приятные команды
Некоторые команды настолько удобные, что вы можете забыть о том, что используете их. 'H', 'M' и "L" перемещают курсор на верхнюю, среднюю и нижнюю линии экрана соответственно. 'zt', 'zz', 'zb' не перемещают курсор, но скролят текст так, чтобы курсор оказался вверху, в середине, либо в низу экрана. '*' ищет следующее появление слова, на котором находится курсор вперед по тексту, '#' делает тоже самое назад. И таких команд еще много...
Заблуждение №5: так как мы думаем над проблемой 90% времени, а программируем решение всего 10%, прокачивать скорость редактирования практически бесполезно.
Что ж, это преувеличение, но этот контраргумент часто используется против любых способов повышения эффективности редактирования кода. Держу пари, что он надуман.
Во-первых, если мне надо обдумать проблему без необходимости смотреть в код, я беру свой байк и отправляюсь часик покататься, или два. Если погода хороша, это гораздо приятнее, чем торчать перед компьютером.
Так же, когда мне надо проанализировать какую-то сложную проблему и придумать её решение, я беру блокнот, ручку и пытаюсь прочистить мысли с их помощью.
Но, за редким исключением невозможно продуктивно работать без компьютера. Ведь в большинстве случаев вам нужно видеть код. И тут без текстового редактора вам не обойтись. И конечно, очень часто вы набираете текст или редактируете его непрерывно. Подумав одну минуту, следующую вы тратите на внесение изменений, о которых размышляли. И, конечно, вы хотите использовать лучший инструмент для этой работы.
Комфортность редактирования позволяет вам оставаться "в потоке" — состоянии максимальной концентрации и продуктивности. Мастерски овладев редактором текста, вы переместите редактирование на бессознательный уровень, освободив вычислительные мощности мозга для других задач. Общепринятый стиль отвлекает вас, вы используете Ctrl-Right, Ctrl-Right, Ctrl-Right, Ctrl-Right, Ctrl-Right, чтобы добраться до нужного места в коде, берете в руки мышь, чтобы выбрать опцию меню, нажимаете "принять" в диалоге подтверждения. Vi/vim же позволяет обойтись удивительно малым количеством клавиш, чтобы сделать именно то, что вы хотите.
Другие пользователи vi говорят то же самое, так что я не одинок в своих чувствах: как только вы достигаете мастерства в использовании vi, бывают такие моменты, когда после 30 секундного "взрывного" редактирования вы как-будто "просыпаетесь" и осознаете, что слышали клацанье клавиш где-то в затылочной части черепа, пока нарезали, изменяли и перемещали блоки текста. И такие моменты дают потрясающее ощущение силы.
Пример №5: выравнивание блоков
Vi и vim знают, что у вашего кода есть какая-то структура. Многие команды отражают это. Возьмем, к примеру, 'aB', которая была описана выше — она выделяет текущий ограниченый фигурными скобками блок вместе со скобками ('a}' делает то же самое) и объединим с командой '>', которая выравнивает область обозначенную следующей за ней командой перемещения. Представьте себе такой код:
Как часто вам встречается такая задача? Да, вы конечно можете вставлять с авто-выравниванием (']p' в vim), но вдруг вы забыли, или получили такой код не копипастом, а потому что удалили кусок кода выше. В общем, вам просто надо его выровнять. В других редакторах вы перемещаете курсор, нажимаете [Tab] или сочетание клавиш для авто-выравнивания. Но не в vim, просто три клавиши '>aB' "выровнять блок" и вы получаете это:
Круто, не так ли? Никаких метаний с курсором и выделением текста, просто говорите, что именно вам нужно и vim все делает. Я считаю, что это тот тип редактирования, который дает вам настоящую власть над кодом и позволяет оставаться "в потоке".
Заблуждение №6: это просто привязанность к исчезающему прошлому
Vi уже тридцать лет, а он до сих пор популярен. Vim — полный клон vi, в котором больше улучшений, чем в vi возможностей, жив и здравствует уже в течении 15 лет и распространяется бесплатно почти под любую существующую платформу. Люди, которым нравится vi, находят способы использовать его везде: существуют плагины, позволяющие использовать возможности vi в Eclipse, разных приложениях для Mac, в IntelliJ IDEA, даже в emacs не один, а целых несколько встроенных эмуляторов vi (когда я кодил на лиспе в емакс, я начинал с попыток использовать его сочетания клавиш, но всегда в конечном счете заканчивал на "M-x viper-mode"), я разрабатываю и продаю ViEmu семейство плагинов для внедрения эмуляции vi/vim в Visual Studio, SQL Server, Word and Outlook, Пол Грэм ( здесь о нём на Хабре) по прежнему использует vi для разработки lisp и arc, Tim O'Reilly открытый vi-мер, SlickEdit и Crisp могут эмулировать vi...
Конечно сообщество vi не очень большое: большинство пользователей компьютера даже не освоили слепую печать, а vi добавляет еще крутизны кривой обучения. Тем не менее, те из нас, кто видел свет, никогда не вернутся к другим, менее функциональным системам редактирования так что vi/vim гарантировано еще много лет благоденствия. На самом деле, использование модели редактирования vi/vim обеспечивает вас уверенностью, что вы сможете пользоваться привычными командами независимо от того, в какой среде находитесь, от старых Unix-систем до новейших популярных IDE.
Пример №6: визуальная природа
И как последний пример, чтобы вам не казалось, что vi — это только загадочные нечитаемые команды, рассмотрим некоторые более наглядные возможности (вообще это возможности уже vim, а не vi) Одна из них: при включенной подсветке поиска (выключена по умолчанию, но обычно всегда включается командой ":set hlsearch") когда вы ищите подстроку, все ее включения подсвечиваются. К примеру у вас есть такой html код:
Если вы нажмете '*', будет произведен поиск по слову, на котором находится курсор ('div'), и в результате мы получим:
Как вы видите, курсор переместился и все включения подсвечены.
Давайте рассмотрим кое что еще. Мы уже видели команды вроде 'd', или 'c', которые действуют на область в соответствии со следующей командой. Но если мы хотим сделать процесс более наглядным, мы можем использовать визуальный режим: нажмите 'v', передвиньте курсор и вы увидите, что его начальное положение подсвечено, затем наберите команду, чтобы увидеть результат. Команды поиска работают здесь точно так же. Если вы нажмете 'V' вместо 'v', то выделяться будут целые строки. Нажмите 'V', а затем 'k'(вверх) после этого:
Как вы видите, две строки подсвечены как выделенные. Скажем, вы хотите продолжить выделение до открывающего 'div' (он подсвечен желтым). Нажмите 'N' (предыдущее совпадение) и получите это:
Теперь мы можем сделать все, что придет в голову, например, набрать 'gU', чтобы перевести весь текст в верхний регистр (и вернуться в командный режим):
Ну а теперь давайте поговорим о правильной "обобщенной концепции" vi/vim.
**Правильная концепция №1: крутая кривая обучения
Это факт, что научиться эффективно использовать vi/vim непросто. Придется потратить от нескольких недель до нескольких месяцев и первый опыт не будет приятным. Мне кажется, это главная причина, почему модель редактирования vi непопулярна и никогда не станет популярной. Вам надо перевести, выучить и отработать около 30 команд, прежде чем вы начнете выигрывать в скорости у пользователей других редакторов. Хотя в большинстве случаев это однокнопочные команды (почти все имеют простые мнемоники, облегчающие запоминание), это все равно непростая задача. Очень легко сдаться и вернуться в привычный редактор. Но я не знаю никого, кто выполнив эти условия, вернулся бы к старым привычкам.
Заключение
Делайте, что хотите. Не учитесь пользоваться vi/vim, если считаете, что это требует слишком много усилий и не окупится. Изучите emacs вместо vi. Или продолжайте использовать никудышный редактор кода своей IDE. Но, в любом случае, никогда больше не заявляйте, что пользователи vi придурки. Я надеюсь, что преуспел в объяснении, почему он им (нам) так нравится и вы должны были, по крайней мере, оценить его мощь, даже если и не хотите его использовать.
Если вы захотите поближе познакомится с vi, вот несколько полезных ссылок:
- Learn why I got started
- Use my graphical cheat sheet and tutorial to learn vi/vim editing
- The awesome "vi lovers" home page
И, конечно:
P.S.
Спасибо за информацию об опечатках и неточностях пользователям alan008, xaizek, kvaps, Vizrok, kipelovets, tlv (в порядке поступления сообщений)
Комментарии (749)
VioletGiraffe
04.08.2016 08:59+44Во вселенной, где не изобрели мышь, vi, конечно, рулит.
Tihon_V
04.08.2016 09:20+10А вы часто используете мышь в текстовом редакторе? Для чего?
(нет, не сарказм — я использую лишь изредка трекбол, поэтому мне очень интересно)NeoCode
04.08.2016 09:27+58Для моментального позиционирования текстового курсора в нужное место.
WingedFlame
04.08.2016 09:42+10Я бы не назвал необходимость переносить руки из привычного для слепой печати положения на мышку и потом возвращать назад «моментальным позиционированием». Лично мне это всегда доставляет жуткий дискомфорт и очень сильно выбивает из потока.
DarkOrion
04.08.2016 10:11+1А если у меня привычное положение — одна рука на клаве, вторая на мышке?
Delphinum
04.08.2016 10:38+8Тогда вы либо не используете «слепой десятипальцевый», либо занимаетесь не написанием текстов, а чем то еще.
merlin-vrn
04.08.2016 12:39+20ну так программирование, администрирование, веб-браузинг != написание текстов
Delphinum
04.08.2016 12:40-8Что есть по вашему «программирование»?
merlin-vrn
04.08.2016 12:44+2для начала, изучение предметной области и того, как сейчас решается задача, которую нужно автоматизировать
затем рисование схем, всё более детальных, как это работает и как должно рабоать
потом автоматическая кодогенерация по этим схемам, а также разработка UI
и потом наконец ручные правки, отладкаDelphinum
04.08.2016 12:48-3Ручные правки должны выполняться одной рукой?
merlin-vrn
04.08.2016 12:54+7Могут выполняться одной рукой. Часто они эффективно выполняются мышкой (например, в IDE прокрутить колёсиком среди методов и выбрать другой).
А почему вы игнорируете комментарий об исследованиях Apple на тему «клавиатура или мышка быстрее»?Delphinum
04.08.2016 13:03+4например, в IDE прокрутить колёсиком среди методов и выбрать другой
Не скачите с темы на тему.
Я задал конкретный вопрос: ручные правки должны выполняться одной рукой? Вы мне отвечаете что это возможно. Вы правите текст одной рукой?
А почему вы игнорируете комментарий об исследованиях Apple на тему
Потому что много лет назад я работал с исходным кодом аналогично, с помощью мыши и клавиатуры. Как только я отказался от этого подхода в пользу одной лишь клавиатуры, ощутил две важные вещи:
1. Я перестал отвлекаться на аппаратную модальность
2. Я подобрал для набор часто используемых команд, которые ранее выполнял с помощью мыши
We’ve done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
* Test subjects consistently report that keyboarding is faster than mousing.
* The stopwatch consistently proves mousing is faster than keyboarding.
This contradiction between user-experience and reality apparently forms the basis for many user/developers’ belief that the keyboard is faster.
Это по вашему называется исследованием? Вынужден вас огорчить, исследование, это когда приводятся предусловия, описывается процесс тестирования, озвучивается статистика, делается вывод. Здесь я вижу только: «мы там у себя протестировали и вот что решили...» — слишком уж похоже на старый добрый подход маркетологов. Не убедительно.merlin-vrn
04.08.2016 13:09+6Ваши «а я попробовал и у меня получилось так» ещё менее убедительны. Тут хоть какие-то исследования, претендующие на объективность, которые кстати покрывают и ваш случай — сами субъекты уверены, что стали быстрее, хотя сторонний наблюдатель регистрирует, что это не так.
С чего вы взяли, что вы реально стали быстрее? Аппл утверждает, что вам это только кажется.
Поэтому я и прошу реальных исследований, а не самоощущений. А их что-то нет. А просто так я не согласен несколько месяцев мучиться с этой сейчас для меня совершенно неудобной программой, только для неясной цели, что вдруг она мне понравится или я стану эффективнее. А если не стану, что же получается, несколько месяцев мучений просто зазря, повёлся на слабо?
Ну и сколько я за вимерами не наблюдал, все они в реальности выполняют комплексную зачачу не быстрее меня. Было несколько бывших коллег, которые упорно пытались cd/ls/vim, а я в то же время бегал по директориям в mc и нажимал F4 для редактирования — и был впереди. Все они, как и вы, утверждали, что я ничего не понимаю, и должен, чтобы стать эффективнее, меньше отрывать руки от десятипальцевой клавиатуры и изучить vim.Delphinum
04.08.2016 13:13-1Ваши «а я попробовал и у меня получилось так» ещё менее убедительны
Поэтому я и не привожу статистики, вы меня вынуждаете своими маркетинговыми статьями.
Тут хоть какие-то исследования, претендующие на объективность
Нету там никаких исследований, претендующих на объективность. Я могу выплюнуть в интернет аналогичное «исследование», это не сделает его объективным.
сами субъекты уверены, что стали быстрее, хотя сторонний наблюдатель регистрирует, что это не так
А кто эти субъекты? Программисты, дизайнеры, бухгалтера? Кого исследовали?
Аппл утверждает, что вам это только кажется
Аппл много чего утверждает, но я стараюсь быть объективным.
С чего вы взяли, что вы реально стали быстрее
Я и не говорил, что стал работать быстрее.
Было несколько бывших коллег, которые упорно пытались cd/ls/vim
Предложите им воспользоваться mc или nerdtree, а не заниматься ерундой.Labunsky
04.08.2016 13:19-3>Я могу выплюнуть в интернет аналогичное «исследование», это не сделает его объективным.
А вы точно многомиллиардная корпорация с высоким уровнем доверия людей?Delphinum
04.08.2016 13:20+3А вы точно многомиллиардная корпорация с высоким уровнем доверия людей?
По вашему мнению любое слово многомиллиардной корпорации с высоким (спорное утверждение) уровнем доверия людей должно восприниматься догматически? Бедный хабр… (merlin-vrn
04.08.2016 13:27-1Да к этом огрызку нет доверия, как него его и к апплу в целом. Было бы это статьёй в реферируемом журнале — я бы даже слушать никого не стал. Но к личным ощущениям анонима, пишущему писюльки на хабр, доверия ещё меньше.
Labunsky
04.08.2016 13:30Если нет особых альтернатив, то почему бы и нет?
Даже если бы были — доверие мнению, отличному от вашего, пороком не является. Так что не такой уж хабр и бедныйDelphinum
04.08.2016 13:33Если нет особых альтернатив, то почему бы и нет?
Потому что это далеко от истинны. Вы либо верьте, либо знайте, но не смешивайте одно с другим.
доверие мнению, отличному от вашего, пороком не является
Не является, как и не является сколько нибудь объективным. Верить вам никто не запрещает, но не нужно выдавать свою веру за истину.Labunsky
04.08.2016 14:04Я ничего не выдаю, больше скажу, мое мнение по вопросу не высказывалось тут нигде в принципе
Поэтому упреки про смешивание и объективность тут не совсем к местуDelphinum
04.08.2016 14:06Я ничего не выдаю, больше скажу, мое мнение по вопросу не высказывалось
Если нет особых альтернатив, то почему бы и нет?
Видимо высказывалось.
Temmokan
05.08.2016 07:23+2Поясните, кстати, как может быть объективным любое утверждение, опирающееся на субъективное восприятие людей.
Объективные показатели — это что-нибудь вроде человеко-строк кода в час. Хотя это само по себе вообще не критерий чего бы то ни было (ну разве что программистам платят за количество выданных на-гора строк)Delphinum
05.08.2016 10:41Поясните, кстати, как может быть объективным любое утверждение, опирающееся на субъективное восприятие людей
Никак. Я разве утверждал обратное?Temmokan
05.08.2016 11:57Ваши слова?-
> Тут хоть какие-то исследования, претендующие на объективность, которые кстати покрывают и ваш случай…
Тут сплошь вопросы вкуса, так что у каждого своя правда, и объективности как бы нет и не нужно.Delphinum
05.08.2016 12:04Ваши слова?
Похоже на мой комментарий?
Тут сплошь вопросы вкуса, так что у каждого своя правда, и объективности как бы нет и не нужно
Так я никому не навязываю свою правду.
merlin-vrn
05.08.2016 12:06Это мои слова.
Нет, это не вопросы вкуса. Мне предлагают другой инструмент, да ещё и говорят, что я дурак, что не соглашаюсь, а я не соглашусь пока не будет убедительных доказательств, что мне это могло бы принести пользу и хотя бы кому-то вообще это приносит пользу. Тратить время и учиться я не хочу, я хочу сначала убедиться в том, что есть, ради чего тратить время.
merlin-vrn
04.08.2016 13:19+2Поэтому я и не привожу статистики, вы меня вынуждаете своими маркетинговыми статьями.
Конкретно моя с вами дискуссия начачась вот с этого вашего комментария. Вы первый предложили мне потратить время на изучение чего-то. И ни вы, ни кто-либо иной не смогли преложить никакого обоснования, что это мне может принести пользу или что оно кому-то принесло эту пользу, хотя я постоянно прошу таких обоснований.
А теперь вы утверждаете, что я вас вынуждаю. Да не вынуждаю, просто если не готовы реально аргументировать свои утверждения про медленность мышки, быстроту десятипальцевой работы без отрыва от клавиатуры и так далее — не вступайте пожалуйста в дискуссию.
И вообще я теперь очень хочу запретить вимерам писать про то, какой вим хороший и как они стали быстро работать, пока в каком-нибудь университете не проведут такое исследование.
А кто эти субъекты? Программисты, дизайнеры, бухгалтера? Кого исследовали?
По умолчанию, в таких случаях — все люди. Все, кто работает с компьютером и у кого есть возможность не использовать мышку. Среднее по больнице. В среднем, мышка всё-таки быстрее.Delphinum
04.08.2016 13:23не смогли преложить никакого обоснования, что это мне может принести пользу
Я и не пытался. Если вы выбрали для себя удобный инструмент, я только рад за вас. Пользуйтесь им и даже не думайте смотреть в сторону других инструментов (я серьезно).
А теперь вы утверждаете, что я вас вынуждаю
Совершенно так, вы вынуждаете меня приводя какие то пустые сообщения из интернета.
готовы реально аргументировать
Думаю под «реальной аргументацией» вы имеете ввиду статистическое исследование? У меня такового нет, и ни у кого нет. Если вы такое найдете, обязательно дайте мне знать, буду благодарен.
И вообще я теперь очень хочу запретить вимерам писать про то, какой вим хороший и как они стали быстро работать, пока в каком-нибудь университете не проведут такое исследование
Нужно не столько запрещать, сколько требовать от заявителя доказательств. Этого достичь проще, нежели пытаться что то запрещать.merlin-vrn
04.08.2016 13:25+1Нужно не столько запрещать, сколько требовать от заявителя доказательств. Этого достичь проще, нежели пытаться что то запрещать.
Да! А он отвечает:
Я и не пытался. Если вы выбрали для себя удобный инструмент, я только рад за вас. Пользуйтесь им и даже не думайте смотреть в сторону других инструментов (я серьезно).
Но меня тут назвали дураком и мои инструменты дурацкими, мне обидно.
MacIn
04.08.2016 23:02С чего вы взяли, что вы реально стали быстрее? Аппл утверждает, что вам это только кажется.
Интереснее другое: насколько это важно не машинистке, а программисту.merlin-vrn
05.08.2016 08:28-1Да они видимо, кроме всего прочего, пытаются намекать, что не только печатать без мышки быстрее, а и инет в браузере серфить, и видимо фоточки править в фотошопе, и дизайн рисовать в кореле или что там используют, и так далее.
MacIn
04.08.2016 23:02Вы правите текст одной рукой?
Бывает и такое. Например, когда надо удалить по одному символу в произвольных местах, удобно курсор перемещать мышью, второй рукой нажимать Del. Но это частности, конечно. Само высказывание о трудоемкости переброски руки — сомнительно.Delphinum
04.08.2016 23:03-1Само высказывание о трудоемкости переброски руки — сомнительно
Ну то что элементарная частица может быть в двух местах одновременно, тоже довольно сомнительное высказывание, но что поделать, не все упирается в наши предпочтения и веру.merlin-vrn
05.08.2016 08:29Это не вопрос предпочтений и веры, а математическая модель. Никакого сходства, аналогия совершенно неуместная.
Итак, высказывание о переброске руки реально очень сомнительно. Я вчера весь день за собой следил, это не медленнее, чем дотянуться до ctrl+c или esc или смены раскладки (у меня это caps lock)
Delphinum
05.08.2016 10:45Итак, высказывание о переброске руки реально очень сомнительно
Повторю еще раз, для особо сомневающихся — ваши сомнения не имеют никакого отношения к объективной реальности. Засеките время переброса руки и тыке по иконке в быстром меню и время нажатия клавиш, на пример, 'gc.
У меня получилось (только на переброс руки с клавиатуры на мышь и обратно) ~ 1.1 секунды
Против ~ 0.5 секундыMacIn
05.08.2016 17:44Повторю еще раз, для особо сомневающихся — ваши сомнения не имеют никакого отношения к объективной реальности.
Я тоже могу повторить раз 10 для непонятливых: ваше субъективное понятие быстроты или трудоемкости не имеет отношения к реальности. Просто потому что это чисто субъективные понятия. Ваши.
Выше вы некрасиво передернули:
Ну то что элементарная частица может быть в двух местах одновременно, тоже довольно сомнительное высказывание, но что поделать, не все упирается в наши предпочтения и веру.
В то время, как я говорил лишь о том, что высказывание о трудоемкости — сомнительно.
Речь идет об исчезающей значимости разницы во времени, а не о якобы отсутствии разницы, на что упираете вы.
Засеките время переброса руки и тыке по иконке в быстром меню и время нажатия клавиш, на пример, 'gc.
При чем тут это? Макросы обычных редакторов никто не отменял. Весь сыр-бор разгорелся из-за позиционирования курсора, а не тыканья мышкой по иконкам вместо клавиатурных комбинаций.Delphinum
05.08.2016 17:57Просто потому что это чисто субъективные понятия. Ваши
Ну так берите секундомер и меряйте, если сомневаетесь. Я померил, вон мой результат.
В то время, как я говорил лишь о том, что высказывание о трудоемкости — сомнительно.
Речь идет об исчезающей значимости разницы во времени, а не о якобы отсутствии разницы, на что упираете вы
О чем бы не шла там речь, такие вещи нужно оценивать объективно с секундомером в руках, иначе это пустые слова, не более того.
Весь сыр-бор разгорелся из-за позиционирования курсора, а не тыканья мышкой по иконкам вместо клавиатурных комбинаций
А если у меня привычное положение — одна рука на клаве, вторая на мышке?
О чем говорит такое привычное положение? О том что человек чаще пользуется мышью, нежели комбинациями клавиш. Не согласны?
alaska332
04.08.2016 16:16Т.е. вы сначала пишете случайные имена методов, а потом колесиком мышки выбираете из списка другие, более подходящие?
Что это за стиль такой?
Можно еще мышкой по экранной клаве тыкать.MacIn
04.08.2016 23:08+1Это может быть автоподсказка при вводе, которая работает по префиксу. Но тут преимущество мыши неочевидно.
NeoCode
04.08.2016 13:20+1А я бы так ответил
1. изучение предметной области
2. поиск библиотек или проектов, реализующих отдельные аспекты задачи (может быть даже почти всю задачу), и их изучение, включая чтение документции сборку, запуск, небольшую модификацию и отладку примеров
3. соединение этих библиотек вместе и написание необходимого соединительного кода
4. отладка, отладка и еще раз отладка того что получилсь :)Delphinum
04.08.2016 13:24Прекрасно. Из всего вышеперечисленного для чего вы используете редактор или IDE?
NeoCode
04.08.2016 13:562,3,4
Delphinum
04.08.2016 14:02Как с помощью редактора/IDE вы ищите проекты и библиотеки?
По 3 и 4 пунктам — вы пишите текст одной рукой?NeoCode
04.08.2016 14:40+3По пункту 2 — компилирую, провожу эксперименты и отлаживаю в IDE.
Текст набираю двумя руками — но программирование это не та сфера, где нужно набирать много текста. Большая часть времени — это медитация над исходниками, документацией и результатами работы программ.
Пожалуй 50% рабочего времени я руками вообще ничего не делаю. Правая рука просто лежит рядом с мышкой и клавиатурой на столе, левая на левом краю клавиатуры. Где-то 35% кручу колесо и щелкаю мышью и только 15% набираю и исправляю текст.Delphinum
04.08.2016 14:45Ну так я веду речь о написании текста. К чему эти аргументы вида — а программирование это не только написание текста — я все никак не могу понять (
rkfg
05.08.2016 08:47Так вот интересно, какой текст в больших объёмах набирают поклонники Vim. Романы пишут, что ли? Мне правда интересно.
daihatsu
05.08.2016 08:57+1Поставьте себе счетик нажатия на клавиши клавиатуры и мыши. Очень удивитесь — какую огромную долю занимают цифро-буквенные нажатия, то есть как много пишет/исправляет средний программист.
rkfg
05.08.2016 09:02Это надо считать только при наборе кода. Между набором непосредственно кода программы много времени уходит на браузер и прокрастинацию, к сожалению.
Delphinum
05.08.2016 10:47Серфинг не считается? Или вы программу простыней набираете?
rkfg
05.08.2016 11:22А как сёрфинг связан с Vim?
Delphinum
05.08.2016 11:31Напрямую. Эхх… Очередной хейтер, который знаком с Vim на уровне «двоюродный коллега один раз запускал и ему не понравилось» (
rkfg
05.08.2016 11:36Я уже писал здесь, что использую Vim постоянно для задач, которые в нём выполняются лучше всего. Линуксом пользуюсь чуть более восьми лет, Vim'ом примерно столько же. Зачем вы переходите на личности? Мне по-прежнему неочевидна связь сёрфинга и редактора текста. В Emacs есть встроенный браузер, но он, очевидно, не подходит для современных сайтов, ориентированных под Webkit/ES5/Мышь/Тач. Для Vim я ничего такого не видел. Если вы намекаете на Vimperator и Vimium (для Chrome), то они тоже являются лишь дополнениями, но никак не связаны с редактированием текста.
Delphinum
05.08.2016 11:40При чем тут серфинг и браузеры? Я разве говорю об интернет-серфинге? Серфить можно и исходные коды проекта, и документацию, и тесты, и еще много чего.
rkfg
05.08.2016 11:49+1Впервые встречаю это слово в таком значении. В эклипсе для навигации эффективнее использовать и мышь, и клавиатуру. Чаще всего мне требуется найти вызов метода по проекту и перейти к определению. Как опять же писалось тут, сомнительно, что Vim сможет определить правильную перегрузку функции или выбрать правильный метод для объекта, если есть несколько одинаково названных методов в разных классах (например, run() или start()). Когда происходит вызов такого метода, нужно учитывать тип объекта, для которого он вызывается, чтобы найти определение. Для определения типа нужно как минимум распарсить код и найти определение переменной, иногда вывести её тип (как в случае с ключевым словом auto в C++), иногда отрезолвить цепочку typedef'ов. Eclipse справляется с этим без проблем, а что делать в Vim? И это я ещё не трогаю рефакторинг, без которого в большом проекте будет нелегко.
Вопрос в том, так ли важен быстрый набор текста, если отсутствуют средства удобного и надёжного контроля кода? Я понимаю, что вряд ли смогу вам что-то доказать, но может, хоть заставлю задуматься.Delphinum
05.08.2016 11:57Впервые встречаю это слово в таком значении
Но ведь оно для описания действий прекрасно подходить, разве нет?
а что делать в Vim?
Vim не умеет семантику, потому серфинг в Vim больше сводится к другой области управления (более мелкой или более специфичной). Было бы прекрасно, если бы кто нибудь таки включил Vim в качестве основного редактора в какой нибудь Eclips (на пример).
Вопрос в том, так ли важен быстрый набор текста
Набор текста это не только печатание (как многие тут считают), это и микросерфинг и макросерфинг по проекту. Vim с этим прекрасно справляется.
средства удобного и надёжного контроля кода?
О каких средствах идет речь?rkfg
05.08.2016 12:15>Но ведь оно для описания действий прекрасно подходить, разве нет?
Возможно, я лишь сказал, что не встречал его в таком значении.
>серфинг в Vim больше сводится к другой области управления (более мелкой или более специфичной)
>микросерфинг и макросерфинг по проекту
Непонятно, что же это такое. Открытие разных файлов и переход между ними? По-моему, это не так полезно, как семантическая навигация.
>О каких средствах идет речь?
Рефакторинг и Quick Fix (автоматическая генерация кода и исправление типичных ошибок), в основном, иногда анализ ресурсов на предмет соответствия коду, как в Android Studio проверка соответствия типа view из XML типу в коде и в Eclipse проверка наличия определения контрола в ui.xml, если он определён в аннотации @UiField (это для UiBinder из GWT). Автоматический рефакторинг позволяет не беспокоиться, что где-то что-то не исправилось как ожидалось, либо изменилось что-то, что не должно было. Возможно, он не идеален и тоже может накосячить, но я с таким пока не сталкивался.Delphinum
05.08.2016 12:23Непонятно, что же это такое.
Микросерфинг это, к примеру, замена блока кода, переход к аргументам функции, переход к началу слова и т.д. Этих действий в процессе набора исходных кодов выполняется уйма.
Открытие разных файлов и переход между ними? По-моему, это не так полезно, как семантическая навигация
Смотря для каких целей. Я раньше обожал семантическую навигацию, потом полюбил хорошо структурированные проекты и необходимость в ней как то отпала. За последний год я использую ее реже, чем операцию коммита изменений.
Рефакторинг
Я об этом уже много раз писал, потому отвечу коротко — я рефакторю что то настолько редко (если раз в день переименую один метот, то это будет событием), что мне достаточно грепнуть по проекту и за 5 минут все закончить.
Quick Fix
Аналогично с рефакторингом. У меня для генерации кода свои механизмы, и они только облегчают набор шаблонов, а шаблоны рефакторить нет необходимости, да и типичных ошибок в них нет.
Автоматический рефакторинг позволяет не беспокоиться, что где-то что-то не исправилось как ожидалось, либо изменилось что-то, что не должно было
Для этого предпочитаю тесты и онлайн сервисы проверки исходных кодов.
Delphinum
05.08.2016 10:46Программы пишут. Не одну функцию в день, а реальный функционал.
rkfg
05.08.2016 11:28+2Вот хотелось бы посмотреть на процесс. Не исключено, что я просто тугодум и не умею писать простынями, а вместо этого больше думаю, чем печатаю. Поэтому и скорость набора не является для меня критичной, и поэтому интересно увидеть, как работают другие. Видел стрим на twitch, где разработчик Crea исправлял баг, там собственно ввода было минимум, больше навигации по коду.
Delphinum
05.08.2016 11:32а вместо этого больше думаю, чем печатаю
А это взаимоисключающая деятельность?
Вот хотелось бы посмотреть на процесс
Где то на хабре я выкладывал ссылку на видео. Можете поискать если интересно.Alexeyslav
05.08.2016 14:03Для этого нужно иметь как минимум двухядерный мозг. Есть такое интересное явление как «Эффект дверного проёма» гуглится на гиктаймс первой же строчкой.
Delphinum
05.08.2016 14:04Для этого нужно иметь как минимум двухядерный мозг
Нет, достаточно использовать такой инструмент, который не потребует от мозга вмешиваться в процесс печатания. Это называется «печатать на скорости мысли».
RomeoGolf
07.08.2016 12:25+2Вообще-то статья именно о преимуществах vi/vim при редактировании а не наборе текста. В больших объемах набирать plain text вообще безразлично в чем, да хоть в notepad.
Мощь vim проявляется именно при редактировании (изменении, исправлении, форматировании, небольшом дополнении) в командном режиме.
HeaTTheatR
04.08.2016 21:51не используете «слепой десятипальцевый»
Можно подумать, вы программируете код в редакторе со скоростью 500 символов в секунду! Никогда не знал, что в программировании важна скорость ввода текста!
Delphinum
04.08.2016 22:44-2А при чем тут скорость ввода текста? Вы вообще мой комментарий прочитали?
daihatsu
05.08.2016 11:32+1Программист регулярно серфит по исходному тексту, заменяет, ищет и пр.
Так что да — каждое нажатие клавиши имеет значение и оптимизация работы по работе с исходником (не важно vim это или Ctrl+Shift+Right) освобождает больше времени для «чисто подумать» над кодом или почитать Хабр.
Довольно странно вообще видеть человека, позицирующего себя как профессионального программиста, который выделяет куски текста чисто мышью и копирует/вырезает их правой клавишей мыши.
Исключение разве что текстовый редактор acme, который специально заточен на мышетекстовое управление.
https://habrahabr.ru/post/208482/
FreeNickname
05.08.2016 13:38+2Дело не в скорости как таковой. Просто после овладевания слепым десятипальцевым методом на приличном уровне меньшая часть мозга задействована на то, чтобы что-то напечатать. Напечатать что-то – это вообще не задача. Вам не нужно переводить взгляд. Не нужно задумываться, где какие кнопки. Не нужно позиционировать руки над клавиатурой. Это куча мелочей, которые выбивают из потока. Вы вообще не отвлекаетесь. Вы просто смотрите в экран, а там сам собой появляется текст, о котором вы думаете. И вот это как раз важно. Полагаю, мастерское владение vi/vim может дать схожий эффект. Не знаю. Не владею :)
Valery4
04.08.2016 10:40+10Если одна рука на asdw, а вторая на мышке — тогда удобно. Для печати, на мой взгляд, не очень.
NeoCode
04.08.2016 10:57+35Ну если вы писатель, то да. А если программист?
Я вот обычно сижу, думаю над кодом, неспешно прокручиваю его колесом мыши… иногда делаю переходы по дереву классов, или контекстные переходы типа «go to definition» — тоже мышью… время от времени переключаюсь на чтение документации опять-таки ничего не пишу, а только читаю и кручу мышью… иногда переключаюсь на браузер, там да — нужно набить фразу в поисковике, хотя часто можно сделать копи-паст мышью (например имя функции или сообщение об ошибке), а нередко прямо в программе в контекстном меню встроена команда «найти в гугле» (и думаю вскорости эта команда будет во всех ридерах и IDE).
И только иногда, когда вдруг в голове складывается полное понимание того, что нужно написать — откладываю мышь в сторону и пишу какой-нибудь кусок кода. Уже сразу обеими руками на клавиатуре.
gaki
04.08.2016 11:26+4А как вы позиционируете текстовый курсор в нужное место? Вопрос без сарказма, мне правда интересно. Вот я вижу точку на экране, в которую ткнул бы мышью — что вместо этого я должен сделать в виме/емаксе? Самый быстрый способ, до кторого я пока додумался — вызвать поиск и набрать сочетание символов из этого места, уповая, что оно уникально. Но даже если оно таки уникально, выходит, по-моему, не быстрее тычка мышкой, а если их таких оказалось несколько — так и тем более.
Delphinum
04.08.2016 11:34-1А как вы позиционируете текстовый курсор в нужное место?
В Vim для этого есть normal mode.
Вот я вижу точку на экране, в которую ткнул бы мышью
При работе с текстом, автор оперирует синтаксическими конструкциями, а не точками на экране. Для них в Vim есть множество команд перевода курсора.MacIn
04.08.2016 23:11+1Ну ок, и какая команда для «спозиционируй мне курсор на начало четвертого формального параметра пятью строками ниже»?
Delphinum
04.08.2016 23:13+1У меня это ss который дергает easymotion.
MacIn
05.08.2016 17:49-1Как ни крути — это будут разные комбинации. А позицинирование мышью — универсально.
Delphinum
05.08.2016 17:58Позиционирование мышью тоже требует различных сокращений мускулатуры, что с того?
MacIn
05.08.2016 18:05Когда ходите — вообще караул. Это автоматизированное, рефлекторное действие. Одинаковое, универсальное. В отличие от. Есть баланс этих инструментов.
Delphinum
05.08.2016 18:06+2В отличие от
Очередное безосновательное заявление. Вот он я, и у меня работа с easymotion так же рефлекторно.
Danov
04.08.2016 11:42Клавиши перемещения курсора прямо на буквах — руки не нужно переносить. Можно возразить, что курсором медленно позиционировать. Но учитывая время перемещения рук до мышки, позиционирование курсора и обратно на клавиатуру, перемещение сразу с клавиатуры может быть более быстрым. Ведь если нужно переместить на пять строчек вверх и 30 символов влево достаточно нажать клавиши вверх и влево по одному разу. А можно еще и через слова прыгать! А время нажатия определяет перемещение. Кажется удивительным, но после тренировки точность перемещения за одиночное нажатие клавиши управления курсором достаточно высока.
gaki
04.08.2016 14:05+5> Ведь если нужно переместить на пять строчек вверх и 30 символов влево достаточно нажать клавиши вверх и влево по одному разу.
Это как?
Насколько я помню, в Виме можно собрать команду в командном режиме, которая уведёт курсор на пять строчек вверх и на 30 символов влево. Но это точно будет не «вверх и влево по разу». Это будет само по себе уже медленнее, чем дотянуться до мышки и обратно. Плюс к тому еще понадобится время на обдумывание, на сколько именно строк ты хочешь вверх и на сколько именно символов влево. Выше в комментариях товарищи пишут, как их «выкидывает из потока» необходимость тянуться за мышкой — а меня вот, например, начисто вышибает из потока как раз необходимость переключаться с раздумий о коде, который я пишу, на очередную заковыристую команду вима, а потом обратно. Возможно, к этому привыкаешь и, привыкнув, выполняешь на автомате — не знаю, я не смог.
И в этом вообще была моя главная проблема с Вимом, да и с Емаксом, до некоторой степени. Как редакторы-то они мощные и легко уделают любое IDE, без дураков. Более того, ниже товарищ пишет, что-де вот то да сё в Эклипсе удобнее чем в Виме — да, вполне может быть, что конкретное «то» и «се» действительно удобнее в IDE, но это только для каких-то совершенно определенных вещей, которые предусмотрели разработчики данного IDE, а в Виме из стандартного набора можно что хочешь собрать, о чем разработчики, возможно, и в страшном сне не помышляли. Но проблема в том, что эти преимущества Вима проявятся в полной мере только на какой-то нетривиальной задаче редактирования, возникающей раз в месяц, а то и реже. Допустим, я подумал, загуглил, еще подумал и нашёл способ, как сделать это в Виме супер-пупер-эффективно. С учётом времени на раздумья и гугление, я бы давно уже сделал то же самое в IDE, потыкав куда надо мышкой, конечно. Но теперь-то я уже умею в Виме и в следующий раз сразу быстро и эффективно сделаю, да? Нет. Ибо задача нетривиальна и понадобится её решать опять через месяц, за который я благополучно забуду своё нынешнее решение начисто. В результате опять думать, опять гуглить, и опять быстрее было бы потыкать мышкой в иде. Та же картина, кстати, и для ещё одной иконы опенсорса, написанной много лет назад, но до сих пор превосходящей и затмевающей — системы TeX. Всякий знает — ну или хотя бы слышал — что набирать формулы в TeX гораздо быстрее, чем в Word, и это факт. Вот только мало кто сидит и день за днём, час за часом долбит одни и те же формулы — прежде надо эксперименты поставить, расчёты провести, тексты написать, синтаксис формул опять успеешь забыть, опять гугль, опять дотянулся проклятый Кнут… (TeX крут, тем не менее, просто его истинная крутизна в другом.)staticlab
04.08.2016 16:07в TeX хотя бы можно накопипастить из ранее созданных документов или из интернета.
gaki
04.08.2016 16:16Ага, мне тоже кажется, что в основном этим он и хорош. Или когда твою статью не принимают в один журнал — пошёл на сайт другого журнала, скачал их стилевой файл, пересобрал документ с ним, послал туда. Теоретически как бы и в Ворде как-то так тоже можно, но на практике потом затрахаешься вручную править форматирование практически везде.
Alexey2005
04.08.2016 18:40+2С TeX проблема в том, что не существует вменяемого конвертера из TeX в Word. Именно поэтому я так и не смог перейти ни на TeX, ни на LyX — ведь всюду требуется исключительно Word. Куда я потом этот TeX-документ дену? Да даже среди научных издательств крайне мало таких, которые ещё принимают TeX-документы, и даже они пишут, что предпочтительнее всё же Word.
В этом плане Markdown гораздо юзабельнее — там нет проблем с конвертированием, у него глаже кривая обучения, а благодаря расширениям он крайне богат возможностями.gaki
04.08.2016 18:46Не знаю, у меня Word ни разу не требовали, всегда хотели либо PDF, либо PDF + исходник в TeX.
synedra
05.08.2016 05:37Зависит от предметной области. Я, например, сталкивался с чисто биологическими журналами и журналами по биоинформатике. Первые требуют почти исключительно doc/docx, изредка принимают PDF или odt. Вторые обычно принимают doc/docx и TeX.
saboteur_kiev
05.08.2016 03:23+1Клавиши перемещения курсора прямо на буквах появились потому, что давным давно в старых терминалах передавались в основном печатаемые символы, и стрелки не передавались. Так появилось перемещение курсора буквами. Просто исторически сложилось.
lexa0
04.08.2016 11:46+1Вот я вижу точку на экране, в которую ткнул бы мышью — что вместо этого я должен сделать в виме/емаксе?
В vim можно использовать easymotion
А в emacs или avy или ace-jump-mode.
Все они работают на похожем принципе:
- нажимаете хоткей, затем вводите первую букву слова на которое надо перепрыгнуть
- редактор подсвечивает все слова начинающиеся с выбранной буквы
- выбираете на какое именно слово прыгнуть
Так можно за 3-4 нажатия клавиш переместиться в любое место на экране.
Разумеется можно переходить не только к началу слова, но и в произвольное место.MacIn
04.08.2016 23:13+1нажимаете хоткей, затем вводите первую букву слова на которое надо перепрыгнуть
Круто. У нас CodeGuide предполагает все формальные параметры начинать с буквы «A», как раз подойдет — скажем, ф.п. штук пять и нужен последний.
Так можно за 3-4 нажатия клавиш переместиться в любое место на экране.
Оно того стоит, если тронуть мышь — пол-секунды?SkidanovAlex
04.08.2016 23:43+1Ну во-первых можно прыгнуть на вторую букву, во-вторых пока количество формальных параметров на экране меньше чем 26, вы все равно в три keystroke попадете на букву А.
Я не знаю, удобнее ли это чем мышка для тех, кто хорошо владеет мышкой, я мышкой владею плохо, мне EasyMotion намного удобнее.
gaki
05.08.2016 09:51> все формальные параметры начинать с буквы «A»
Вроде, как раз с этим проблем быть не должно — посмотрите по ссылкам выше avy, у него, по-моему, на картинках понятнее всего объяснено, как это работает. Очень интересный принцип, доберусь до емакса — обязательно попробую.
lexa0
06.08.2016 18:35+1Оно того стоит, если тронуть мышь — пол-секунды?
А это каждый решает сам для себя. Редактор предоставляет возможность перемещаться с помощью мыши и клавиатуры, что больше нравится — то и используйте.
jsirex
04.08.2016 12:40UPD: УПС: опередили выше про avy
В emacs есть https://github.com/abo-abo/avy
Очень удобно. Работает, даже если открыто несколько виртуальных окон
andreysmind
04.08.2016 14:01Вим\Емакс это не какие-то суровые редакторы для перфокарт. Там тоже есть гуй и поддержка мышки. И даже в консоли типа iterm2 есть поддержка мышки.
delaguardo
04.08.2016 14:59Для vim есть замечательный плагин vim-easymotion (на самом деле его аналоги есть почти в любом редакторе). Единственный минус — начинает работать только если хорошо развит навык слепой печати.
extempl
07.08.2016 09:15Ниже уже где-то писали про AceJump (видео демо), добавлю, что есть в IDEA плагинчик. Всё-таки, даже рефлекторное и отработанное движение мышью не моментальное по той только причине, что вы не можете точно сказать где окажется курсор перед движением. Само движение строится на обратной связи текущего положения курсора (то есть вы смотрите как он движется и по ходу корректируете скорость/направление). Что, как бы, очевидно, менее эффективно, чем клавиатурное (даже если не AceJump, то можно просчитать наперёд при ручном перемещении).
И да, я до сих пор позиционирую курсор мышью (трекпадом, если точнее).
nickolaym
04.08.2016 18:00+1Мышь, может, и не моментально, — а вот тачпад (или айбиэмовский прыщик) — очень даже моментально.
MacIn
04.08.2016 22:57-1Всяко пошустрее, чем комбинации вида «прыгни-ка к первому вхождению символа „f“», если их там много. Да и позиционирование мышью — непосредственное. Это просто удобнее.
gaki
05.08.2016 07:36+2Где-то год назад я программировал одну исследовательскую хрень с использованием gaze tracker (прибора, определяющего точку на мониторе, куда смотрит юзер). Была мысль попробовать запилить установку текстового курсора по хоткею прямо в точку взгляда. Напрямую водить указатель мыши взглядом было уныло — точность позиционирования так себе, и из-за шумов в измерениях он еще дрожит, как рука алкоголика. Но поставить где-то в пределах трёх нажатий на стрелки от нужной позиции, возможно, удалось бы. К сожалению, девайс у меня отняли раньше, чем руки дошли попытаться чего-то сделать в данном направлении…
stargazr
05.08.2016 13:38-1Это вы ThinkPad'ом никогда не пользовались.
Его трекпоинт позволяет делать это, вообще не отрывая руки от клавиатуры.
Я уж молчу о том, что в моем понимании «моментальная навигация» — это прыгнуть к нужному классу/файлу/функции в проекте или исходниках библиотеки (и потом обратно, а лучше — и вовсе в отдельном окне показать), а не в пределах экрана-двух на регулярках ерзать.
aTwice
04.08.2016 11:50моментального? рука перемещается на мышь — рука с мышью перемещается в нужное место — рука с мыши возвращается на клавиатуру.
Noahzgard
04.08.2016 17:13+1Да. Это моментально. А самое главное это происходит абсолютно бездумно. Потому что у любого кто работает за компьютером больше пары часов удивительно тонко развит навык нахождения мышки и позиционирования курсора без подключения сознания.
Delphinum
04.08.2016 17:16-6Вы понимаете значение слова «моментально»? Одна-две секунды это не моментально.
MacIn
04.08.2016 23:14-11/125 секунды — тоже. И?
Delphinum
04.08.2016 23:17-4И зачем тогда говорить, что это моментально? Для красивого словца?
MacIn
05.08.2016 17:51Зачем тогда саркастически спрашивать «вы понимаете значение млова „моментально“» и сравнивать с 1-2 секундами, если это значение не определено в числах?
Delphinum
05.08.2016 17:59-2Затем, чтобы люди таки научились пользоваться своим лексиконом, а не занимались демагогией, выплевывая в комментарии терминологию, не имеющую никакого отношения к реальности.
MacIn
05.08.2016 18:08+2Демагогией здесь занимаетесь вы, с претензией на объективность.
Слово «моментально» в контексте разговора, очевидно, означает, что продолжительность промежутка в абсолютных значениях не имеет роли, т.к. пренебрежительно мала по сравнению с другими действиями. Ваши попытки переходить к абсолютным числам выглядят нелепо.Delphinum
05.08.2016 18:12что продолжительность промежутка в абсолютных значениях не имеет роли
Когда человек привык отвлекаться от основной деятельности на 1-2 секунды, для него это не имеет роли. Мы говорим о Vim, редакторе, который позволяет пользователю писать программы «со скоростью мысли», а в его контексте термин «моментально» играет огромную роль.
Перенос руки с клавиатуры на мишь и обратно — это не моментально.MacIn
05.08.2016 18:16-1Когда человек привык отвлекаться от основной деятельности на 1-2 секунды, для него это не имеет роли. Мы говорим о Vim, редакторе, который позволяет пользователю писать программы «со скоростью мысли», а в его контексте термин «моментально» играет огромную роль.
Мы говорим о том, имеет ли значение скорость ввода как таковая.
Перенос руки с клавиатуры на мишь и обратно — это не моментально.
Слово «моментально» в контексте разговора, очевидно, означает, что продолжительность промежутка в абсолютных значениях не имеет роли, т.к. пренебрежительно мала по сравнению с другими действиями. Ваши попытки переходить к абсолютным числам выглядят нелепо.
Delphinum
05.08.2016 18:21-1Мы говорим о том, имеет ли значение скорость ввода как таковая
Не только скорость ввода, но и отвлечение. Естественно, эти микросекунды в результате складываются в секунды и десятки секунд, но что еще более противное, так это то, что эти мелкие действия не дают мозгу полноценно сосредоточиться на задаче. Вместо размышления над задачей, нужно искать переферийным зрением мышь, затем курсор, затем целевую позицию, заниматься перекладыванием ладоней и т.д. Это отвлекает.
Повторюсь, если бы это делалось моментально, то это не имело бы значение, но это не так.
paratrooper5730
05.08.2016 17:31+1за компом сижу много, но, чтобы найти глазами курсор, зачастую надо пошерудить мышкой. Плюс, позиционирование ее у меня выглядит как затухающее колебание на 1-2 периода. Это я вот сейчас специально попробовал. В виме либо перескоки на несколько строк автоматом руки делают, либо быстрее поиском, он тоже начинает автоматически набираться
Delphinum
05.08.2016 17:40+1Народ говорит, что работа с мышкой должна быть моментальной. Вы что то не то делаете!
potan
04.08.2016 12:02В gvim это, к сожалению, есть. Очень хочу научиться эту возможность отключать — бесит, когда переключаешь мышью окно и курсор оказывается в непредсказуемом месте.
saboteur_kiev
04.08.2016 13:06А что вы делаете, если нужно что-то сделать с текстом с планшета, где мышь отсутствует, ткнуть пальцем можно примерно в 3-5 соседних символов, а клавиатура тачпадовская?
gaki
04.08.2016 15:07Если приходится редактировать много текста в описанном окружении, то сделать, на самом деле, можно только одно: достать чернил и плакать.
saboteur_kiev
04.08.2016 15:21А если нужно поправить совсем немного текста, вы запускаете IDE или блокнот?
vi — это notepad++ в среде *nix
SkidanovAlex
04.08.2016 23:39В Vim для этого есть EasyMotion, который позволяет прыгать в любое место без того, чтобы убирать руки на мышку.
dmalkr
09.08.2016 09:08В Vim для этого есть плагин easymotion. В нём перемещение к тексту состоит из двух-трёх нажатий на клавиши: 's' (перейти в режим поиска), далее символ, к которому нужно переместиться. Эти символы на экране подсвечиваются. После этого надо нажать последнюю клавишу, чтобы переместиться к этому символу. Например, перемещение к первому на экране определению C++-функции: 's{a'. Это быстрее, чем нашарить мышь, спозиционировать курсор и щёлкнуть, вернуть руки на место.
serf
04.08.2016 11:25+15Разработка и набивка текста это разные вещи, продуктивность набивки текста обычно не влияет на скорость разработки, а на качество может повлиять только отрицательно. Посыл изначально не верный, текстовый редактор это не правильный инструмент для программиста, это просто редактор текста.
VioletGiraffe
04.08.2016 12:05+5Вот хотел сказать примерно то же, но не рискнул. Я редко больше 1000 строк редактирую за весь день, а чаще — пару сотен. Моя продуктивность явно не упирается в набор текста.
merlin-vrn
04.08.2016 12:09+9Это ключевой аргумент, именно поэтому vimеры его старательно игнорируют.
poxu
04.08.2016 15:59Скорость набора текста вообще не является аргументом. Но вот удобство набора — таки является. Вимом это делать удобнее. Вот как-то так.
merlin-vrn
05.08.2016 08:31-4Вимом не только не удобнее, им вообще ничего делать невозможно. Как-то вот так.
poxu
05.08.2016 15:09+3Как можно сделать столько ошибок в простой фразе «Я ничего не умею делать вимом»? ;)
symbix
04.08.2016 17:46+3Во-первых, это не ключевой аргумент. Ключевой аргумент — комфортность работы. Когда пальцы привыкли делать достаточно сложные действия нажатием 2-3 клавиш, пользоваться другими способами мучительно.
Во-вторых, это смотря у кого какая производительность. Если я пишу новый код, я запросто могу написать этак 1500 строк в день.
Delphinum
04.08.2016 12:15-1продуктивность набивки текста обычно не влияет на скорость разработки
Более того, набивка текста вообще не влияет на скорость разработки, так как разработка — это в первую очередь построение абстрактных моделей и схем (для их представления другим разработчикам). Процесс разработки не связан ни с одним редактором или IDE. Не следует путать терминологию
myxo
04.08.2016 10:02-1Работать с мышкой ооочень доооооолго, вы попробуйте обходиться без неё. В свое время почти полностью отказался от неё (sublim + vi mod в браузере + awesome wm). Сейчас крайне бесит, что в некоторых программах без мышки никак.
gaki
04.08.2016 10:24+17We’ve done a cool $50 million of R & D on the Apple Human Interface. We discovered, among other things, two pertinent facts:
Test subjects consistently report that keyboarding is faster than mousing.
The stopwatch consistently proves mousing is faster than keyboarding.merlin-vrn
04.08.2016 11:47+1Дайте линк, а?
Evengard
04.08.2016 12:28+3Нашёл тут продолжение: http://www.asktog.com/TOI/toi06KeyboardVMouse1.html
ПродолжениеThis contradiction between user-experience and reality apparently forms the basis for many user/developers’ belief that the keyboard is faster.
People new to the mouse find the process of acquiring it every time they want to do anything other than type to be incredibly time-wasting. And therein lies the very advantage of the mouse: it is boring to find it because the two-second search does not require high-level cognitive engagement.
It takes two seconds to decide upon which special-function key to press. Deciding among abstract symbols is a high-level cognitive function. Not only is this decision not boring, the user actually experiences amnesia! Real amnesia! The time-slice spent making the decision simply ceases to exist.
While the keyboard users in this case feels as though they have gained two seconds over the mouse users, the opposite is really the case. Because while the keyboard users have been engaged in a process so fascinating that they have experienced amnesia, the mouse users have been so disengaged that they have been able to continue thinking about the task they are trying to accomplish. They have not had to set their task aside to think about or remember abstract symbols.myxo
04.08.2016 15:00+5Вот мне тоже хотелось бы линк на исследование. То, что кинул Evengard, извините не исследование, а такое же ИМХО автора, нет ни метода исследования, ни характеристики групп, не количества испытуемых, ничего (насколько я понял их контекста, они набирали рандомных людей, так я и так вам скажу, что по-началу мышка интуитивнее и быстрее).
Я вот ни разу вам не поверю, что, например, вам мышкой будет быстрее выделить строчку, нажать пр. кнопку мыши, нажать скопировать, передвинуть на новое место, нажать вставить, чем мне нажать 3 клавиши в виме.
ps. Я не утверждаю, что все должны пользоваться вимом, пользуйтесь чем вам удобнее. Но говорить, что мышка быстрее клавиатуры, это, извините, нонсенс.neomedved
04.08.2016 15:18+3В статье как раз говорится о том, что клавиатура интуитивнее.
Только меня смущает, что статья из тех времён, когда у большинства людей вообще не было мышек?
Alexey2005
04.08.2016 19:19Ну если искать на sciencedirect'е или подобном ресурсе, то исследования вполне находятся. К сожалению, доступ к ним платный (а потом удивляются, почему все только на жёлтую прессу ссылаются).
Вот пример неплохого исследования:
Richard Coll, Khalid Zia, Joan H Coll. A comparison of three computer cursor control devices: pen on horizontal tablet, mouse and keyboard, Information & Management, Volume 27, Issue 6, December 1994, Pages 329-339
Из Abstract'а:
The ATT Frame Creation System (FCS) Series 500 was used because it is a graphics system which, conveniently, accommodates the three devices we wished to compare. It consists of a color graphics monitor, an alphanumeric keyboard, a pen, a mouse, and a horizontal tablet used in conjunction with the pen and the mouse.
В статье приводятся все необходимые подробности: и количество испытуемых (63 человека), и наборы экспериментов, и используемое оборудование, и выполняемые задачи. Даже определялся прогресс — как сильно люди могут улучшить результаты в ходе тренировок скорости работы с данными девайсами.
In the context of these experiments pen use was never significantly faster than mouse, while both pen and mouse use were always significantly faster than the keyboard.myxo
04.08.2016 19:45я прошу прощения, но вы прочитали эту статью? В ней проводятся 4 эксперимента, суть каждого из них — позиционирование на экране. В 1 эксперименте, например, нужно было двинуть курсор в рандомно появляющийся белый квадрат. Это здорово, но немного не по теме, которая обсуждается здесь.
gaki
04.08.2016 19:56+1Конечно не исследование, так, хрень на постном масле. Всем гораздо интереснее было бы узнать, во что вы ни разу не поверите, а во что — поверите :)
И раз уж взялись меряться писькой с мышкой, приведите, пожалуйста, эти три волшебные клавиши, которыми вы в виме скопируете и вставите в произвольное место файла произвольную строку текста. Вот давайте, для определённости, пусть ваш текстовый курсор стоит в позиции 0, 0, скопируйте нажатием трёх клавиш 37-ю строку и вставьте в 12-ю строку между 27-м и 28-м символами. Напоминаю, у вас есть три нажатия по одной клавише, время пошло :)Delphinum
04.08.2016 20:00Конечно не исследование, так, хрень на постном масле
Совершенно верно.
эти три волшебные клавиши, которыми вы в виме скопируете
Могу в одну клавишу. Какую вам хочется? Давайте на m. Все, сделал.
myxo
04.08.2016 20:57+3вы правы, тремя кнопками (с настройками по-умолчанию) не обойтись. Вот последовательность
:37 enter
v$hy
:12 enter
27lp
Если вы новичок в виме, то да, над каждой командой нужно думать, уйдет много времени. Если все в пальцах, то получается быстрее (тем более, если визуально 28 символ не сильно отделен). Опять же, я не призываю пользоваться вимом, пользуйтесь чем угодно. Но клавиатура в подобных задачах быстрее. Другой вопрос нужны ли эти выигрыши в скорости (вопрос почти как про преждевременную оптимизацию). За себя я могу сказать, что мне просто нравится работать таким образом.gaki
05.08.2016 03:48Вот уже больше похоже на правду. Итого 19 нажатий (это включая три шифта, который тоже кнопка). При этом еще зачастую спецсимволы и знаки препинания, которые на традиционной клавиатуре расположены по-идиотски, из-за чего их не каждый раз удается с первой попытки набрать вслепую. На самом деле, тремя кнопками тут не обойтись с любыми настройками, даже если у нас заранее заготовлен макрос для копирования и вставки строки — его, как минимум, надо вызвать (пусть будет одно нажатие), скормить ему три двузначных числа с разделителями (8 нажатий) и нажать ентер, итого 10. Мышью быстрее будет, другой вопрос, нужен ли этот выигрыш в скорости :) А если еще объединить мышь с хоткеями (к примеру, сделать, что когда ничего не выделено, пусть Ctrl-C копирует целиком текущую строку), операцию можно произвести в четыре нажатия и два тычка. Потратим время на движение мыши, да, но и его можно частично сэкономить, двигая мышь в точку назначения, пока нажимаем Ctrl-C.
Исследование у меня тоже вызывает вопросы. Какие операции они замеряли, какие у них в системе хоткеи, как организован гуй? Я вот думаю, хорошо бы ввести новую дисциплину специальной олимпиады по программированию, типа «бег по тексту с препятствиями». Команда задро… спортсменов может использовать любой редактор/IDE, обмазать его какими угодно модами и расширениями, тренироваться сколько хочет по затаскиванию мыши или запоминанию клавиатурных комбинаций. Потом всем командам раздают набор типовых заданий (заранее им неизвестный, чтобы не могли специально под него хоткеи заточить) и вперёд. Тогда рано или поздно станет понятен выбор чемпионов. А пока получается один субъективизм, кого-то сильнее бесит за мышку тягать, кого-то — клавиатуру топтать.
daihatsu
05.08.2016 12:07А миллионы мух знаете что выбирают?
Здесь в исследовании дело в другом — насколько людям легко приспособится к интерфейсу.
Разумеется, пока ты не освоишь клавиатуру на хорошем уровне — нельзя ожидать увеличения производительности.
Вопреки исследованию — Apple не собирается горячие клавиши вырезать из своих продуктов. Их там — огромное количество. Горячие клавиши очень активно применяются в MacOS уже много десятилетий.
bentall
04.08.2016 10:37+1Ну, во-первых, набирать мышью текст
очень удобно, надо только приделать к ней пять-шесть кнопок, написать простенький спецдрайвер, и вводить двоичные кода символа.
А тут писали что vim как раз позволяет не уподобляясь пианисту-виртуозу выполнять навигацию по тексту, не смещая рук с базовой десятипальцевой посадки. А вы тут про то, чтобы тянуться за мышью длямоментальногопозиционирования текстового курсора в нужное место.
Во-вторых, если взять устройство где нет ни мыши, ни клавиатуры, в смысле дешёвый android-планшет, выяснится, что Vim Touch — самый удобный редактор для работы с исходными текстами для такого устройства, не требует установки Hacker?s Keyboard, как текстовые редакторы c «традиционным» управлением с клавиатуры, позволяет нормально перемещатся по тексту не занимаясь спортивным попаданием в нужное слово, ну и вообще.bentall
04.08.2016 11:14upd. Я не забыл об экранных клавиатурах, но для ввода мышью это, подозреваю, наиболее неудобный способ, поэтому я описал более-менее реалистично реализуемый способ быстрого ввода текста с многокнопочной мыши. Насколько я знаю эксперименты по вводу текста с пятикнопочного устройства были, и показали неплохой результат, хотя конечно, кодировку символов для такого придётся заучить. Вспомнил старую новость о проводившихся в Штатах (или Британии) соревновании по скорости ввода между старичками радистами с морзянкой и тинейджерами с телефонами и T9. Выиграло, предсказуемо, отнюдь не подрастающее поеоление.
synedra
04.08.2016 12:45+1Насчёт пяти-шести кнопок это у вас тэг «Сарказм» отвалился или серьёзно опыт использования подобных штук имеете? Я подозреваю, что это была бы удобная приблуда к мобильнику/планшету, но что-то не видать их пока на рынке.
bentall
04.08.2016 12:56Изначально выше у меня тег сарказм (я бы не сказал, что он отвалился, как по мне он явно между слов и зачёркиваний проглядывает), хотя про реальный опыт использования подобных устройств (правда не совмещённых с мышью) я читал. А насчёт написать подобную «клавиатуру» для android — это идея. Надо будет попробовать.
bentall
04.08.2016 13:03Хотя нет, не подумал, возможностей мультитача для аккордной клавиатуры явно не хватит, и пяти настоящих кнопок ни на одном моём устройстве нет. Так что только в реальном железе, моего энтузиазма для воплощения такой идеи не хватит.
synedra
04.08.2016 14:52Да, это очевидно требует физического железа, вероятно, на задней стороне или отдельным гаджетом под вторую руку. Надеялся, что уже сделал кто.
skssxf
05.08.2016 13:40Железная реализация будет убыточной, если только эффект от использования не будет настолько разительным, что подтянутся основные массы смс-писателей. Октодон, например, что-то подобное (хоть и не совсем) в железе сделать пытался, но на кикстартере набрали только 1/15 необходимой суммы. Видимо, мало кто не хочет переучиваться, носить с собой и цеплять к телефону ощутимого размера (и цены) девайс. Да что там девайс — даже сложные клавиатуры вроде основанных на Т9 или Hacker's Keyboard, или MessagEasy особым спросом не пользуются. Для большинства они без надобности, а для остальных они не предоставляют достаточных преимуществ, чтобы на них переходить, и начинать рассматривать мобильный девайс как средство создания контента, а не потребления.
На мой взгляд, ситуация не изменится, пока и если не появится способ вводить и редактировать произвольный (не словарный) текст с приемлемой скоростью вслепую с экранной клавиатуры. Из тех клавиатур, что я видел, слепой ввод и редактирование не обеспечивается ни одной. Попытки делаются обычно в направлении увеличения размера кнопок и применения техник вроде Т9 или жестов (в т.ч. для команд редактирования). У MessagEase есть даже возможность убрать все надписи с кнопок для работы в «слепом» режиме. Но по-настоящему вслепую печатать не получается из-за необходимости отрывать палец от экрана, прицеливаться и попадать даже в эти крупные кнопки: промахи — не редкость. А вот клавиатур, где не было бы необходимости отрывать палец от экрана совсем я ещё не видел. Хотя кажется, что двигаться надо бы в этом направлении.
daihatsu
04.08.2016 11:52+1Мышь — это интуитивный инструмент, в этом его плюс. Но он не быстрый. В любом редакторе нормальные профи (не только в vi/vim) используют «горячие клавишы» и минимизируют использование мыши.
lookid
04.08.2016 17:13+1vim очень помогает в случаях когда нужно кодировать, деплоить и тестировать быстрее скорости мысли. А еще там поиск по регуляркам из каробки. И зразу есть консоль. И если у вас linux-server, то там 100% есть vim. И плагинов много. И свои можно писать. Да, использование vim это обычно легаси, но он того стоит. И файлы в 100500 строк сразу открывает.
yul
04.08.2016 18:01vim очень помогает в случаях когда нужно кодировать, деплоить и тестировать быстрее скорости мысли.
Задеплоить, а потом думать «а что же это я такое задеплоил?!»?
И если у вас linux-server, то там 100% есть vim.
ну, не знаю, в десктопной ubuntu я его каждый раз ставлю, может в серверной иначе. По-моему, nano уже потихоньку его вытесняет в качестве дефолтного редактора.lookid
04.08.2016 18:19Люди еще и в Far Manager пишут код. Когда проект на столько хорошо знаком, что дальше некуда.
nuald
05.08.2016 02:43Основной nano проект ушел из GNU (remove the GNU marker from nano's name), и это вносит некоторую неопределенность в его будущее — мейнтейнеры либо будут использовать форкнутый GNU nano, либо новую версию. Более подробная дискуссия: Nano is no longer a GNU project
vi (не vim) есть всегда — он входит в список утилит POSIX: Utilities. Есть очень редкие случаи, когда vi не установлен, но я такое встречал только на специализированных Linux-based firmware (впрочем, там не было и nano тоже).
Serdonda
04.08.2016 10:02+46Я ничего против не имею любителей vi — прекрасные люди и зачастую специалисты.
Вот только не понимаю зачем вы постоянно оправдываетесь в том какой редактор вы используете (а часто еще и заходя дальше на тему — это же не просто редактор это нечто большее)…
Я искренне не понимаю зачем набирать ceHello[ESC] чтобы потом нажать '.' и превратить это просто в Hello — почему сразу не набрать это гребанное хелло?
Вот и в этой статье в очередной раз описывается как вы сами себе создаете проблемы чтобы потом решить их с помощью VI и в очередной раз что то доказать… ну а остальным сказать что их редактор никудышний, как это сделано в выводах статьиrageorg
04.08.2016 10:28+1>Я искренне не понимаю зачем набирать ceHello[ESC] чтобы потом нажать '.' и превратить это просто в Hello — почему сразу не набрать это гребанное хелло?
Это работает не так. ce значит замена от текущей позиции курсора до конца слова (если курсор в слове. Если курсор на пробеле, то заменится пробел. Если курсор на первом символе слова, то заменится все слово) сразу после ce vim переходит в режим ввода. [ESC] выводит из режима ввода. Т.е. после ceHello[ESC] в тексте слово под курсором будет заменено на Hello. Точка повторяет эти махинации.Serdonda
04.08.2016 11:05+5Вопрос ведь не в этом. Я даже не буду углубляться — но с помощью ctrl+c ctrl+v и двойного клика мышкой по слову для выделения — это делается не намного дольше (если не быстрее). А если к примеру нужно в большом тексте сделать 100 замен то перемещение с помощью hjkl будет вероятно даже дольше нежели выделение мышкой. А многие сейчас даже приведут примеры как в их редакторе это вообще можно сделать одним кликом по какой нибудь кнопке — «заменить все».
Вопрос ведь был не в этом — а в том что не нужно смотреть свысока только потому что вы используете vi/vim — на результаты работы это влияет мало и те кто используют другие редакторы код часто пишут лучше.rageorg
04.08.2016 12:00+1А если к примеру нужно в большом тексте сделать 100 замен то перемещение с помощью hjkl будет вероятно даже дольше нежели выделение мышкой.
Тут уже появляются варианты. Либо "заменить все". Либо мы меняем пять слов на новые пять слов из этой сотни. Тогда вместо hjkl будут использоваться другие кнопки, зависит от ситуации, но по принципу "поиск и замена".
те кто используют другие редакторы код часто пишут лучше.
Где посмотреть статистику?
Если коротко и без всякой мишуры, то суть вима в следующем: вам не надо тянуться к мыши. Вам не надо использовать стрелочки. Даже BS не нужен(зависит от ситуации, конечно), проще допечатать до конца, нажать ESC0fArB, где A,B это неправильный и правильный символы. Даже блок delete, insert, home не нужен. Вам не надо держать руки где-то еще кроме их положения asdf jkl; на клавиатуре и куда-то их двигать.
А с плагинами обычное радактирование текста перерастает в ide'шность (я не знаю чем определяется ide, но все функции, которые я видел в ide я вижу и в вим) и можно переходить от вызова функции к её определению, из файла в файл, сплиты, скомпилить и запустить, вызвать внешнюю программу и вставить её вывод в редактируемый файл или сохранить в буфере обмена и использовать позже.
И все это не двигая руками по клавиатуре. Надо только до ESC дотянуться, но ленивые биндят, например на jj ESC и все, двойное нажатие j заменяет клавишу ESC.BelBES
04.08.2016 12:17+2и можно переходить от вызова функции к её определению
Используя ctags? Ну оно ведь не особо удобно, в сравнении с теми же монстрами аля VS/IDEA.
Я хоть и предпочитаю маргинальный редактор вместо студии, но стоит признать, что автокомплиты, переходы к объявлению/определению и т.п. в IDE обычно реализованы удобней, чем в таких редакторах…
Собственно эти IDE'шные фичи — это как раз тот случай, когда не "в этом редакторе все можно настроить", а "в этом редакторе можно смириться с отстутствием этих фич и использовать другие".SkidanovAlex
04.08.2016 23:47Это правда не для всех языков. На С++ не под Windows хорошей среды нет, и в Vim есть плагины, которые делают автокомплит и навигацию через clang, поэтому конкретно для С++ Vim не намного хуже чем альтернативы не на Windows. Эклипсу и QtCreator все равно проигрывает немного по функциональности (например я не нашел хороших плагинов для кодогенерации), но не так значительно, как, например, с Java.
rkfg
04.08.2016 12:29можно переходить от вызова функции к её определению
А вы на каком языке пишете? Я ниже привёл пример с перегрузкой оператора в C++, да и любая перегруженная функция (т.е. группа функций с одним названием, но разными сигнатурами) тоже подойдёт. Как Vim выберет правильную в этой ситуации?
BelBES
04.08.2016 12:39Если переходы на ctags реализованы, то скорей всего поведение будет как в emacs: выплюнет длинный список определений, откуда уже ручками придется находить нужное. Вообще на практике все эти "автопереходы" в Vim/Emacs работают хуже, чем старый добрый grep и совсем хуже, чем в IDE, где переходы семантические...
rkfg
04.08.2016 12:51Ух, понятно, довольно бесполезно получается. Такие вот моменты выбивают из «потока» намного сильнее, чем, якобы, перенос руки на мышку и обратно. grep, кстати, хорошо помогает, когда берёшь чужой проект (на любом языке) и хочешь быстро найти нужное место, чтобы исправить/разобраться/найти отправную точку. Это оказывается быстрее, чем ждать полной индексации в IDE, да и поиск по произвольному тексту там обычно не очень удобен.
BelBES
04.08.2016 13:23+1Такие вот моменты выбивают из «потока» намного сильнее, чем, якобы, перенос руки на мышку и обратно.
Дело вкуса. Лично я последние несколько лет разрабатываю используя для навигации только find и grep и не ощущаю какого-то дискомфорта. Вот мышкой пользоваться мне просто не очень удобно, хоть это и интуитивно-понятный контроллер.
з.ы. ну и да, постоянное нахождение рук на клавиатуре — это, помимо прочего, прямой путь к тунельному синдрому. Вспоминаем про то, что главный страдалец от этого недуга в ИТ не кто иной, как товарищ Столман, который большой поклонник маргинальных редакторов.
bentall
04.08.2016 13:06https://github.com/drothlis/clang-ctags кто-нибудь пробовал использовать?
BelBES
04.08.2016 13:41Вот конкретно эту штуку не пробовал. Но пробовал в Emacs подрубать clang для семантического разбора исходников через плагины и последующих умных переходов и автокомплитов, работало оно все не понятно как, требовало кучу телодвижений для того, чтобы пропарсить проект (депенденси тоже автоматом не цепляются разумеется) и потом все это жутко тормозило, т.к. Emacs немного не многопоточный. В итоге отказался от этой идеи… судя по тому, что среди моих знакомых Vim'еров также никто не использует никаких семантических приблуд, там дела обстоят не лучше.
neomedved
04.08.2016 12:13> А многие сейчас даже приведут примеры как в их редакторе это вообще можно сделать одним кликом по какой нибудь кнопке
Или одной командой в vim.
Charg
04.08.2016 14:59А многие сейчас даже приведут примеры как в их редакторе это вообще можно сделать одним кликом по какой нибудь кнопке — «заменить все».
Такое даже в стандартном виндовом блокноте есть. Я бы скорее удивился текстовым редакторам в которых функции «найти все %text1% и заменить на %text2%» не предусмотрено.
Delphinum
04.08.2016 10:40+4Вот только не понимаю зачем вы постоянно оправдываетесь в том какой редактор вы используете
Мне это тоже постоянно досаждает (daihatsu
05.08.2016 17:51Абсолютно типичная хабровская статья: «я вам хочу рассказать о технологии, которую изучил». Ничем не отличается от тысяч статей про другие технологии, которые здесь публикуются.
Ну да, в статье чувствуется очень легкая ангажированность — «я знаю такие фичи вима, из которого вы даже выйти не сможете». Не более того.
Что именно вас раздражает?
staticlab
04.08.2016 10:53+4> Вот только не понимаю зачем вы постоянно оправдываетесь в том какой редактор вы используете
«Прекрасно себя чувствую!»
bentall
04.08.2016 11:06Если читать дальше заголовка, становится ясно, что это не столько апология vi[m], сколько краткое введение в философию и базовые способы работы с этим семейством редакторов. Это как с unix way. Вполне определённый подход — лет 40 назад — предельно новаторский, сейчас — основательно обросший седеющей бородой, но по-прежнему весьма эффективный, при условии правильного способа использования.
grevus
04.08.2016 11:25-9Вот только не понимаю зачем вы постоянно оправдываетесь в том какой редактор вы используете
Да всё очень просто.
Нам надоели. Надоели все эти люди, которые приходят и говорят: «Как ты программируешь на этом старом говне? Вот в моей <IDE_name>...».
Я перестал уже обращать на это внимание. Даже перестал что-то отвечать кроме как: «Да, твоя <IDE_name> очень классная. Пока.».
Это, как и любой холивар, просто непринятие одной из сторон точки зрения другого.
Мне удобно в виме, я уже свои плагинчики написал, настроил как надо всё. Сижу, программирую. ИДЕ пробовал. Лично мне не хватило огромного количество возможностей вима, которые добавляются через плагины.
Что, кстати, интересно все же идут, смотрят на голый вим без плагинов и ужасаются. Я тоже.
alaska332
04.08.2016 13:39-2Я всю жизнь использовал всякие IDE, одна другой краше, пока 5 лет назад не решил попробовать vim.
Через месяц я понял, как я заблуждался раньше, моя жизнь изменилась. Я поменял работу, и стал зарабатывать в 3 раза больше, женился, купил 2 машины.
Не попробовав — не поймешь. Смысл тут рассказавать, как вы что-то не понимаете?hurricup
04.08.2016 13:42Это был сарказм?
alaska332
04.08.2016 14:00-5Нет, конечно, ну разве что про женился.
Без вим режима теперь очень трудно, убогость других средств раздражает.
Особенно, когда опять видишь всякий IDE — кал, с кучкой ярких приблуд, а-да дополнения кода, многоярусные туллбары с десятками кнопок, и т.д. Впечатляет, когда по всем четырем сторонам окна открыто по тулбару, куда надо ловко и быстро попадать мышью. Напоминает игру в сапера.
Вим — это аскетизм, наполненный губочайшим смыслом, гениальность.
Конечно, это не для всех. ;-)hurricup
04.08.2016 14:21+3Сарказм: 19 августа 91 года у меня из стада убежал теленок которого искали потом пару дней. В это же время произошел путч. Уверен, тут тоже есть связь.
Мораль: слишком много притянуто к переходу на вим.Einherjar
04.08.2016 15:31Может человеку платят за количество строк кода, тогда скорость работы с текстом влияет напрямую на результат.
ivann
04.08.2016 15:14+1"A" переводит курсор в конец строки и активирует режим ввода. После завершения набора нажатием [ESC] вы можете нажать '.' где угодно, чтобы повторить ввод в конце строки.
Может быть вы знаете зачем? Чем лучшем, чем нажать Home/End в обычном редакторе?
Delphinum
04.08.2016 15:23Вы не поняли о чем речь в этой части статьи. Приведите пример вставки слова «Hello» в конец 20 строк разной длины.
saboteur_kiev
04.08.2016 15:30В FAR это делается элементарным макросом.
В notepad одним regexp replace
В статье хорошие примеры, но попытки сказать, что VI во всем круче других современных редакторов и круче IDE — зря.Delphinum
04.08.2016 15:35В FAR это делается элементарным макросом.
В notepad одним regexp replace
А в статье предлагается: AHelloj.j.j.j.j.j. что таки быстрее обоих предложенных вами вариантов.
но попытки сказать
Я о конкретном примере, а не об обидах и расследованиях.BelBES
04.08.2016 16:15+3Даже всякие sublime'ы поддерживают multiple cursor, при помощи которого ваша задача решится изящней, чем 20 нажатий j.
Delphinum
04.08.2016 16:27Согласен, multiple cursor замечательный инструмент.
bentall
07.08.2016 19:37+1Эффектней — да. Изящней-ли? Вопрос. Пробовал и то, и другое, повтор ввода как-то надёжней.
sentyaev
11.08.2016 00:49Давайте все таки говорить о каких-то определенных действиях, а не абстракных. Не думаю, что вам постоянно нужно добавлять 'Hello' в конец нескольких строк.
Если говорить о коде, и редактировании кода, то, думаю мы все таки говорим о рефакторинге.
А если говорить о рефакторинге, то это уже не просто поиск и замена текста.
Самое простое — переименовать переменную. В IDE это обыно хоткей + ввод нового имени переменной (у меня это Ctrl+R).
Ну а дальше больше, rename class, extract method, extract interface и т.д. и т.п.
Либо я неправильно понимаю слова «редактировать текст». Т.к. у меня не текст, у меня код. Мне не нужно его редактировать.
Мне приходит на ум только форматирование, но это нажать хоткей и весь файл отредактирован в соответствии со стилем заданным мной.
daihatsu
11.08.2016 06:40В vim — аналогично.
Ставите под ваш язык соотвествующий плагин. Если плагин хорошего качества (как для Go), то рефакторинг выглядит также: горячая клавиша и ввод нового имени.
poxu
11.08.2016 08:41Давайте об определённых действиях. Добавить внутрь if дополнительное условие. Подредактировать выражение. Строчку поправить внутри кавычек.
А с форматированием такое дело — бывает, что из заданного тобой же самим стиля нужно сделать исключение.
sentyaev
13.08.2016 13:30+1Добавить внутрь if дополнительное условие.
Обычно у меня нет задачи добавить новое условие. Появилось новое требование или нашли баг и нужно внести изменение. Для этого я сначала думаю, потом ищу место где это нужно добавить (тут мне помогает IDE, т.к. не всегда это мой код). Далее, ткнул мышкой куда нужно и добавил условие, это займет 1-2% времени от решения всей задачи целиком, и это в простом случае. В сложном, скорее всего это будет рефакторинг, возможно вместо «if» я захочу добавить «switch» или применить паттерн, а затем еще и тест написать. И все эти дейстия доступны мне прямо по месту.
Подредактировать выражение.
Зачем? Intellisence не дает делать ошибок. Если вы имеете ввиду синтаксические ошибки… правда не знаю что и сказать, мне IDE просто не дает их делать.
Строчку поправить внутри кавычек
Опять же, эту строчку нужно найти, время редактирования строки ничтожно мало, по сравнению с временем решения самой задачи. Ну и некоторые IDE умеют и строки анализировать.
А с форматированием такое дело — бывает, что из заданного тобой же самим стиля нужно сделать исключение.
Опять же, зачем? Стиль либо есть, либо его нет. Я к тому, что например лично мне, не важно какой у кода стиль, главное чтобы он был и все его соблюдали. Т.к. если у вас появилось исключение, то кто-то другой может это исключение перетереть в следующий раз, ибо не будет знать о нем.
У меня нет опыта в vim, совсем, но читая коментарии, да и статью, мне не понятно в каком именно действии он может мне помоч как программисту, учитывая то, что все говорят о продуктивности.
В моем случае, скорость ввода и редактирования текста не могут повлиять на продуктивность, совсем.poxu
13.08.2016 14:00В моем случае, скорость ввода и редактирования текста не могут повлиять на продуктивность, совсем.
А как насчёт удобства редактирования?
sentyaev
13.08.2016 18:46Так я верю вам, что в vim удобнее текст редактировать, т.к. очень много людей говорят, что им удобнее, значит велика вероятность что так и есть.
Но мне, как программисту, именно «редактировать» текст приходится крайне редко.poxu
13.08.2016 22:44Я правильно понимаю, что скорость и удобство ввода и редактирования текста не могут повлиять на продуктивность в вашем случае?
sentyaev
13.08.2016 23:57-1Давайте я попробую посчитать выгоду.
Автор статьи сделал предположение, что 10% времени мы вводим и редактируем текст.
Возьмем рабочую неделю, там 40 часов, получается 4 часа на ввод и редактирование.
Лично я больше добавляю функциональности, чем правлю баги.
Сначала рассмотрим ввод текста. Тут нет разницы IDE или vim с плагином, при хорошем интелисэнсе у нас будет одинаковый результат. Интересно, согласны ли вы с этим?
Теперь редактирование. Как я писал ранее, больше я ввожу текст, но положим все-таки процентов 40 времени я его редактирую. Итого в неделю я трачу 48 минут на редактирование. Учитывая, то, что современные IDE обладают довольно богатой функциональностью по редактированию текста, интересно, насколько продуктивней я буду работать в vim? На 15-20%? Даже если 20, то это всего 10 минут в неделю или 8 часов в год или 13 суток за 40 лет (2 рабочих месяца за всю жизнь).
В итоге, я делаю вывод, что «скорость» будет одинаковой.
Остается «удобство». Но удобство это не количественный показатель, его нельзя измерить. А еще, «удобство» это субъективная оценка.poxu
14.08.2016 00:28Ну, вы представьте себе, что в IDE, вместо обычного редактирования текста вставлен вим и что вам надо с ним работать. Повлияет это на вашу продуктивность?
sentyaev
14.08.2016 00:56Если когда мы говорим о продуктивности, подразумеваем — делать за определенный промежуток времени некоторое количество работы, то нет, моя продуктивность не вырастет.
Вот смотрите, например есть интернет-магазин по продаже котлет. Вас попросили добавить такую функциональность: многодетным родетелям, на каждый килограм заказанных котлет докладывать столько тефтель, сколько у них детей.
Кто эту задачу сделает быстрее, разработчик использующий vim или разработчик использующий IDE? Я думаю, так даже вопрос и ставить нельзя. Понятно что тут дело не в редакторе текста.
Я к тому, что если бы агитирующие использовать vim говорили бы только об удобстве, споров бы не было. Т.к. я верю, что например вам vim удобнее, а мне вот, например, не удобнее.
Но агитирующие за vim всегда говорят о продуктивности, что, по моему мнению, не является достоверным.
Я считаю, что разговоры о «продуктивности» программистов использующих vim vs IDE это тоже самое что и:
1. Продуктивность водителей грузовика использующих ручную коробку передач или автоматическую
2. Продуктивность программистов использующих C# или Java
3. Продуктивност приготовления еды на газовой плите или электрическойpoxu
14.08.2016 11:00Я считаю, что если вас посадить за неудобный редактор — ваша продуктивность резко упадёт. Не знаю, как у вас с вимом, но если вы им особенно непользуетесь, то когда в IDE редактирование текста будет доступно только с помощью способа, использующегося в виме — вам первое время будет очень тяжело. Будете раздражаться, ругаться и из-за этого пребывать в ужасном настроении. Потеряете концентрацию, сложно будет думать о задаче, а не о том, как вам неудобно. Потом, может быть, привыкнете. А может и нет. Может ваша продуктивность вообще просядет очень надолго. И всё из-за того, что вам очень неудобно делать 10% работы.
saboteur_kiev
14.08.2016 03:36-1«А как насчёт удобства редактирования?»
А это в 99% дело привычки, а не сам редактор. Подавляющее большинство редакторов, встроенных в IDE это не notepad, и позволяют делать практически все вещи, которые необходимы в процессе работы. Редкие исключения — не решают проблемы вообще.
VIM жив по одной причине — у него есть специализированная ниша — работа по удаленному ssh терминалу. Там он изначально появился, там вырос, и оттуда приходят люди, которые им пользуются, и соответственно они приходят уже с навыками. Но если ты изначально работаешь на локальной машине, vi не нужен.
P.S. Это учитывая, что я как раз пришел из сисадминов, и я в vi работал много и успешно. Но для правки текста на локальной машине, мне ближе FAR, а для правки java — встроенный редактор в jetbrains со всеми его наворотами.
Delphinum
11.08.2016 16:41Редактирование исходных кодов очень далеко не всегда сводится к рефакторингу.
zone19
04.08.2016 19:08+2Ну типа да, но в Far я при этом могу в 2 нажатия приконнектится по ssh к удаленному серверу и отредактировать там файл, другой файл взять обратно и т.д. Т.е. Far Manager намного больше экономит времени.
Delphinum
04.08.2016 19:09Мы о примере редактирования текста говорили.
zone19
04.08.2016 19:15Я все понимаю, но тут не работает стратегия «если бы губы Никанора Ивановича да приставить к носу Ивана Кузьмича...». Выбор идет между почти оптимальный редактором и файловым менеджером и просто редактором. Я выбираю 1.
Delphinum
04.08.2016 19:22Тут не работает каких то стратегий, тут конкретный пример из статьи, который не был понят. Здесь не о выборе редактора.
BelBES
04.08.2016 21:34+1"Это все есть в Emacs" ©
anton0xf
11.08.2016 10:34+1Этот комикс был просто обязан появиться в этом обсуждении: https://xkcd.com/378/
xkcd: Real Programmers
saboteur_kiev
05.08.2016 03:29+2Проблема в том, что пример в статье слишком искусственный. Если там расположение чуть-чуть изменить, то уже не работает.
А в ФАР макрос может быть сложный, включать в себя поиск и перемещение.
Преобразовать 10 строк из
a[1,2,3]
в какой-нить
Var A{
[1],
[2],
[3]
};
— макрос набирается за несколько секунд и повторяется.lany
05.08.2016 06:59Более того — макрос может быть с выходом из редактора в панели, поэтому можно аналогичное исправление внести во множество файлов. Например, F2, Esc, Стрелка вниз в панелях, F4, F7, найти что-нибудь, отпозиционироваться, внести изменения — так после каждого выполнения макроса вы будете видеть изменённый, но ещё не сохранённый файл, а следующий вызов макроса сохранит текущий файл и изменит следующий. Причём множество файлов можно заранее сформировать во временной панели с помощью поиска или вручную добавляя/удаляя файлы. Наконец, эти файлы могут находиться в архиве или на удалённом сервере — макрос будет исправно работать.
Delphinum
05.08.2016 10:50Я возможно вас удивлю, но в Vim тоже есть макросы, а еще там можно программировать целые функции и биндить их на клавиши.
daihatsu
05.08.2016 11:08-2На убогом языке, для которого никто не берется заново написать интерпретатор или транслятор в нечто более удобноваримое типа Lua, что было бы весьма кстати для проекта neovim, к примеру.
Хотя не спорю, на нем написаны хорошие плагины.
Тем не менее, в последние время — какой плагин (из серьезных) не возьмешь — так все требуют поддержку в vim или Python или Lua… Не хотят авторы плагина реализовывать функционал полностью нативно на чистом vim-скрипте…Delphinum
05.08.2016 11:34+1На убогом языке
С чего эти выводы?
Не хотят авторы плагина реализовывать функционал полностью нативно на чистом vim-скрипте…
Я реализовываю, что то во мне особенное наверно?daihatsu
05.08.2016 11:42-2У вас мания величия?
Зачем мне ваши самопальные макросы, решающие ваши локальные вопросы?
Один из самых лучших подсказчиков автодополнения исходного кода — требует Lua, другой — требует Python и вообще написан на C.Delphinum
05.08.2016 11:46У вас мания величия?
Зачем мне ваши самопальные макросы, решающие ваши локальные вопросы?
Мда… Комьюнити хабра спускается все ниже и ниже с каждым новым комментарием. Печально.stargazr
05.08.2016 16:39Сначала отвечаете в духе «а у меня все работает», а потом в ответ на справедливое замечание обвиняете все комьюнити хабра. Спускаетесь все ниже и ниже с каждым новым комментарием. Печально.
Delphinum
05.08.2016 16:42Зайдите в мой профиль и почитайте статьи, может поймете какие у меня «самописные макросы».
stargazr
05.08.2016 16:52-2Да не впечатлило.
Может, вы мне продемонстрируете тысячи фолловеров и лайков у ваших плагинов, и я признаю, что мания величия — это не про вас?Delphinum
05.08.2016 16:56+2Да не впечатлило
Это не должно впечатлить.
Может, вы мне продемонстрируете
А как связано мое знание языка и мои навыки в области маркетинга?
Я не вижу смысла продолжать в сами диалог, если честно.stargazr
05.08.2016 17:08-5Да вы можете быть лучшим в вопросах росписи мусорных ведер, только вот если это никому не нужно, то даже начинать разговор с вами никто не будет (что мы и наблюдаем). Ваши плагины — это как раз "ваши самопальные макросы, решающие ваши локальные вопросы", т.к. пользуетесь ими пока только вы. Но вам-то кажется, что все это задротство с никому не нужным, убогим языком — шедевр технической мысли. Ну-ну, поскромнее немножечко :)
P.S. Я на 100% уверен, что это будет прочитано ;)
lany
05.08.2016 06:54Запись макроса требует чуть больше нажатий (примерно на 3-4), зато вызов делается одной клавишей, которую можно просто зажать, если требуется внести одинаковое исправление тысячу раз, например. Точно лучше, чем по очереди писать j.j.j.
Delphinum
05.08.2016 10:51Если надо по очереди написать j.j.j. раз 6, то я лучше это сделаю, чем буду писать макрос. На то и расчет.
saboteur_kiev
05.08.2016 14:14+1Макрос не нужно писать как программу. Нужно просто выполнять нужные вам действия, предварительно один раз нажав кнопку «начать запись», затем «завершить запись» и указать на что его забиндить.
То есть не сложнее, чем затем жать.
Но при этом в vi точка не может воспроизводить несколько разных действий, тем более включающих навигацию, а в фар можно все это делать. поэтому даже j жать не нужно будет.
Давайте сойдемся на том, что те, кто пользуются vi — могли узнать в статье полезные дополнения к знаниям. Кому vi не нужен — всегда найдут способ сделать это другим инструментом.
Я например в восторге от notepad++ с его работой с поиском и обработкой результатов поиска.
Но ФАР роднее, потому что активно использую консоль, а регулярки там тоже есть.Delphinum
05.08.2016 14:17Макрос не нужно писать как программу. Нужно просто выполнять нужные вам действия, предварительно один раз нажав кнопку «начать запись», затем «завершить запись» и указать на что его забиндить.
Я знаю как пишутся макросы.
То есть не сложнее, чем затем жать
Не сложнее, но зачем? Я лучше 2 лишних раза нажму j. чем сэкономлю 0.0004 секунды.
Но при этом в vi точка не может воспроизводить несколько разных действий, тем более включающих навигацию, а в фар можно все это делать. поэтому даже j жать не нужно будет
Речь о конкретном примере. В этом примере не нужно чего либо, что не может точка.
Нужно что то большее, запишите макрос в vi.
Давайте сойдемся на том, что те, кто пользуются vi — могли узнать в статье полезные дополнения к знаниям. Кому vi не нужен — всегда найдут способ сделать это другим инструментом
Так я выше уже назвал статью глупой. Не знаю о чем вы пытаетесь рассказать.
saboteur_kiev
07.08.2016 23:18-2Вы даже в собственном конкретном примере запутались.:
«Вы не поняли о чем речь в этой части статьи. Приведите пример вставки слова «Hello» в конец 20 строк разной длины. „
“А в статье предлагается: AHelloj.j.j.j.j.j. что таки быстрее обоих предложенных вами вариантов.»
Вставить Hello в конец 20 строк разной длины будет явно не j.j.j.j.j., а нажать эти две клавиши по 20 раз каждую = 40 клавиш.
В фаре макрос пишется примерно столько же, сколько набирается «начать запись», End + Hello + вниз, «завершить запись», забиндить например на Ctrl-R и нажать Ctrl+R нужное количество раз, Ctrl можно не отпускать, то есть 21 клавиша.Delphinum
08.08.2016 11:14Вы даже в собственном конкретном примере запутались
Может быть вы знаете зачем? Чем лучшем, чем нажать Home/End в обычном редакторе?
Приведите пример вставки слова «Hello» в конец 20 строк разной длины
Интересно, а в far кнопка Home вставляет в конец строки Hello? Нет. Я об этом вам говорил, похоже это вы запутались.
В фаре макрос пишется примерно столько же, сколько набирается «начать запись»
qqAHello[Esc]jq19@q — 15 клавишь, если вам так угодно.
alaska332
04.08.2016 15:25+1Ну, например, потому, что на моем Lenovo X1 Carbon Home/End эти идиоты разместили там, куда вслепую без ошибки не дотянешься. На другом ноутбуке они в другом месте, на 3-м в третьем.
Дело не только в этом. Это не просто нажатие на кнопку, это — команда, которая может использоваться в комбинации с другими, может использоваться в скриптах и фукциях автоматизации. Командный режим — уникальная фича, его ничем не заменишь.
Не видел ни одного, кто-бы ушел с вима обратно к классическим инструментам.
Newbilius
04.08.2016 10:07+40Или продолжайте использовать никудышный редактор кода своей IDE.
Но, в любом случае, никогда больше не заявляйте, что пользователи vi придурки.
Типа «ваши инструменты отстой, но вы не могите сказать, что мои инструменты отстой!»
Убогий подход.
Тем более, что IDE — это манипулирование с сущностями, рефакторинг по имени поля/класса и т.п. IDE — это работа не только с текстом.
DarkOrion
04.08.2016 10:09+1Сам использую nano, но есть товарищ, который аргументирует так: vi (именно он, не vim!) есть везде, на любом огрызке *nix, на любой железке, поэтому если надо где-то в конфиге строчку поправить — vi наше все.
merlin-vrn
04.08.2016 10:39+2В vi раздражает именно это, а не то, какой он и так далее. Пользуйтесь чем хотите, но мне дайте самому сделать выбор, чем пользоваться.
klirichek
04.08.2016 11:19+5vi достаточно давно является частью busybox. Именно поэтому он есть практически на любой железке, даже если это роутер с 4Мб флешки.
И это не раздражает, а наоборот, радует — покуда хоть ЧТО-ТО для редактирования текста уже есть.
Установка любого другого редактора возможна; возможность сделать выбор никто не устраняет! И даже можно удалить симлинк /bin/vi -> busybox.
avost
04.08.2016 12:01+3На любом огрызке есть ed, но разве это повод? :)
ЗЫ. Посмотрел на соседней генте — нету там ни vi ни vim. А вот ed почему-то есть. Так что правда повод! Скажите вашему товрищу, чтобы переучивался. Тем более, что ed работает на телетайпе, а vi — нет, поэтому ещё более универсален :)
ЗЗЫ. Задумался, а почему, собственно, там ed стоит…merlin-vrn
04.08.2016 12:03А ещё sedом можно сделать что угодно. А ещё awk. Ведь всё, что можно заскриптовать, можно и сделать руками.
avost
04.08.2016 13:18Вот вы смеётесь, а я в редакторе, подобном ed'у работал :). На ЕС ЭВМ. Ну, не то, чтобы работал, но имел дело. По сравнению с перфоратором это была чудо технология!
Не, ну правда, мне аргумент «vi есть везде» кажется неверным и несправдливым по отношению к ed
BelBES
04.08.2016 12:11+1Насчет vi не уверен, но вот vim хоть и есть на многих машинах, но без уютного конфига он не так уж и удобен… в результате затаскивание конфига на удаленную тачку по трудозатратам сравнимо с установкой редактора… т.ч. Emacs + tramp-mode тут немного выигрывает ;)
Vjatcheslav3345
04.08.2016 10:14Пользуюсь vi. vim но раздражают не режимы/команды а необходимость переключаться между языками (редактирую русский текст).
rkfg
04.08.2016 10:27+15Первый пример неубедительный. Например, чтобы в Eclipse CDT сгенерировать реализацию методов (в любом количестве) по заголовочному файлу, мне достаточно нажать Alt+Shift+S, Up (Implement Method...), Enter, Enter. При этом, в примере не раскрыта тема C++, где простого копирования мало, надо ещё дописать название класса.
Второй пример также проигрывает эклипсу, выделяем код, который хотим извлечь в переменную, нажимаем Alt+Shift+L, пишем название новой переменной. Тип выводится автоматически, название переменной подставляется в место извлечения. Аналогично можно вытащить фрагмент кода в функцию с автовыводом типов входных параметров и результата.
бывают такие моменты, когда после 30 секундного "взрывного" редактирования вы как-будто "просыпаетесь"
Со стороны это больше похоже на имитацию бурной деятельности, ничего не понятно, грохот клавиш, текст скачет туда-сюда, и вообще всё выглядит круто и по-хакерски. Может, в каких-то случаях именно такое и нужно. В своей практике не встречал.
Мне кажется, именно в примерах со статически типизированными языками Vim наиболее наглядно проигрывает хорошим IDE, а для чего-то типа Python/JS/HTML/CSS или конфигов, конечно, он подходит лучше. С развеиванием разоблачения №5 я лично не согласен: программирование происходит в голове, а написание кода — это лишь небольшая промежуточная стадия между придумыванием кода и запуском его. Улучшать стоит то, что занимает основную часть времени. Если удалось ускорить какую-то операцию в 10 раз, это здорово! Но если она выполняется, скажем, раз в час и занимала 100 мс, а теперь 10 мс, тогда как непосредственно алгоритм отрабатывает по полминуты… это больше похоже на преждевременную оптимизацию ради оптимизации. Вот к скорости набора кода у меня такое же отношение.
bentall
04.08.2016 11:20Для статически типизированных языков к Vim можно, к примеру, прикрутить внешние средства рефакторинга, хотя в случае, собственно, Java, где невозможно непредсказумое изменение синтаксиса и идеоматики языка, а IDE — тщательно «вылизаны» на предмет соответствия практике кодирования и рефакторинга, за ними уже не угнаться. В случае C/C++ — уже сомневаюсь.
rkfg
04.08.2016 11:43+10Это больше похоже на хвост, виляющий собакой. Может, логичнее в существующие мощные IDE, которые синтаксически и семантически «понимают», что в них пишут программный код, а не набор букв и слов, так вот, в эти IDE прикрутить Vim-like управление? Собственно, это уже сделано, о чём и сам автор статьи упоминает. Всё ж как ни обвешивай текстовый редактор плагинами, он от этого IDE не станет. Будет просто редактор с кучей костылей, потому что он работает не с языком, а с текстом, не с проектом, а с набором файлов.
К слову, буквально на днях обнаружил, что Eclipse CDT понимает даже перегруженные операторы, и по F3 позволяет перейти к их определению. Учитывая, что выбор правильной реализации оператора жёстко привязан к типам аргументов, я не представляю, как эту задачу можно выполнить в Vim. Ну вот есть конструкция вида
cout << someObj << endl;
. В эклипсе я встаю курсором на<<
и жму F3, попадаю на реализацию этого оператора, могу прочитать и понять, что там не так. Этот оператор может быть реализован в стандартной библиотеке (за пределами проекта вообще), в сторонней библиотеке, в моём коде; может быть внутри класса, может быть свободной функцией. Выглядит он везде одинаково,<<
, как же найти искомый? QtCreator, например, не умеет (пока) находить такие определения. В результате, перегрузки для Qt'шных типов найти либо сложно, либо нереально. А ведь возможность быстрой навигации по коду — это именно то, к чему апеллирует автор. И для программиста Vim именно эту возможность не предоставляет. Он даёт лишь быструю навигацию по тексту, которая довольно бесполезна, ведь программа состоит из множества файлов, классов, функций и библиотек, которые Vim не понимает.
Я пишу все эти аргументы уже не первый раз, потому что в каждой статье от Vim-евангелистов пишется про рай для программистов, тогда как по факту это является неслабым таким преувеличением, мягко говоря. Стоило бы говорить о редактировании небольших текстов типа конфигов или ридмишек, тогда совершенно с этим соглашусь, ибо везде у меня Vim стоит редактором по умолчанию, и это первое, что я ставлю на минимальную систему. Пробовал и Emacs около года (даже как Jabber-клиент!), но в итоге надоело аккорды наигрывать. А фанатичность вообще до добра не доводит.
hurricup
04.08.2016 12:04-1а для чего-то типа Python/JS/HTML/CSS или конфигов, конечно, он подходит лучше.
Спорное утверждение. На мой взгляд, тут вопрос не в языке, а в масштабах проекта. Пока это пара файлов, может быть, вим удобен тем кто уже потратил время чтобы его изучить, но учить его ради 10 файлов — странно. Но если проект развесист и имеет много внутренних связей — нужна IDE.
В идеале, чтобы дискутировать в этой теме адекватно, надо иметь хорошее знание и опыт Вим и ИДЕ. И даже пару раз в подобных темах возникало желание вим-таки освоить. Но потом понимаешь что это все эмоции и тратить время просто чтобы попытаться кому-то что-то доказать уже по возрасту не подходит.rkfg
04.08.2016 12:24+3В том и проблема, что Vim не масштабируется. На малых файлах это прикольное и «эффективное» (а скорее, «эффектное») копошение уровня «смотрите, как я умею!», на чём-то более крупном и сложном уже борьба с инструментом. Фанатизм и привычка использовать один инструмент мешают более конкретно очерчивать круг применимости, и это вполне естественно для большинства, ибо лень переучиваться или просто пробовать что-то новое, где не хватает чего-то привычного (а любые плюсы уже не ощущаются после этого).
Попробовать и освоить Vim однозначно стоит, особенно, если вы используете Linux. Для удалённого редактирования или локального в tmux/screen/tty, например, ничего лучше не найти. Просто это не замена для IDE, а совершенно отдельный параллельный инструмент для других задач, слабо связанных с программированием.
Shadooff
04.08.2016 10:27Думаю, что основная причина «нелюбви» новичков к vim связана с тем, что они уже привыкли неосознанно работать со своим редактором. Например, неосознанным является перенос руки с клавиатуры на мышку и обратно. Поэтому им сложно представить чем же лучше перемещать курсор с помощью hjkl. Почувствовать разницу можно только тогда, когда человек сможет так же неосознанно (на полном автоматизме) перемещать курсор и делать другие действия.
merlin-vrn
04.08.2016 10:40+12Зачем мне на клавиатуре вообще хоть когда-нибудь может потребоваться перемещать курсор с помощью неочевидных hkjl, если у меня есть специализированные клавиши управления курсором с очевидными стрелочками?
Delphinum
04.08.2016 10:43-1Как только научитесь «слепому десятипальцевому», так сразу и поймете зачем.
merlin-vrn
04.08.2016 10:44+4При быстрой слепой печати перемещение по тексту вообще не используется. Мимо. Следующий вариант?
Delphinum
04.08.2016 10:50-1При быстрой слепой печати перемещение по тексту вообще не используется
Это правило такое?
А при быстром слепом серфинге с элементами быстрой слепой печати?merlin-vrn
04.08.2016 10:56+2А тут всё равно используется как минимум Esc, который уже выпадает из вашей волшебной десятипальцевой картины мира. А если модифицировать текст захотите, там, опечатку исправить — ещё и Del или BS, которые тоже выпадают. И перевод строки выпадает вообще-то.
Десятипальцевый метод — красивая конечно идея, но чересчур утопичная, ни одна реальная ситуация в неё полностью не вписывается.
И да, быстрая печать нужна разве что машинисткам, которые текст набирают. А программист скорее читатель, чем писатель, и от ускорения печати его работа не ускорится. Скорость работы программиста лимитируется гораздо более медленным и затратным процессом, нежели печать кода — тем, как он быстро изобретает решения. Вот это значит и нужно оптимизировать, и на эту оптимизацию я готов тратить время, а ввод может подождать.Delphinum
04.08.2016 11:02-4При быстрой слепой печати перемещение по тексту вообще не используется
Вы ошибаетесь, использоваться там может что угодно.
При быстрой слепой печати перемещение по тексту вообще не используется
Тоже ошибаетесь.
Судя по последнему вашему ответу, вы совершенно не знакомы с редактором Vim, а основная цель вашего разговора — поставить недалеких пользователей на путь истинны!
Мне такие монологи не интересны. Удачного программирования!merlin-vrn
04.08.2016 11:05+1Судя по последнему вашему ответу, вы совершенно не знакомы с редактором Vim, а основная цель вашего разговора — поставить недалеких пользователей на путь истинны!
Это по-моему как раз и есть цель всей статьи, только речь о других пользователях. Да, возможно, я выгляжу высокомерно, но это только отражение.
И я честно надеялся, что у вас всё-таки есть вменяемые аргументы.Delphinum
04.08.2016 11:08-6И я честно надеялся, что у вас всё-таки есть вменяемые аргументы
Проблема в другом, у меня нет времени приводить и обсуждать мои вменяемые аргументы с каждым первым хейтером Vim, знакомым с этим редактором на уровне «прочитал статью на хабре». Познакомьтесь с ним поближе, а потом уже можно будет поговорить о чем то конкретном.
Shadooff
04.08.2016 10:53Я же написал, вы поймете (скорее всего почувствуете) разницу только если доведете навигацию в vim до автоматизма. Тогда ваш мозг и мышцы руки заметят разницу во времени. Будете знать что быстрее и удобнее навигация с помощью hjkl чем переносить руку на стрелки LEFT/RIGHT/UP/DOWN или на мышку.
merlin-vrn
04.08.2016 10:58+9Знаете, аргумент «а ты сначала попробуй и тогда поймёшь» мог бы со мной сработать лет в пятнацдать, но сейчас мне тридцать три и он уже давно не работает. Мне нужно сначала иметь надёжное обоснование, зачем мне это может быть нужно — тратить время на что-то с неочевидным результатом, и уж если оно меня удовлетворит, возможно, я приму решение заниматься этим.
А люди, которые вот этого не понимают, и продолжают настаивать на том, что я должен сначала научиться, а потом уже решать, надо мне это было или нет — вот они-то как раз и есть "#?@! придурки" из заголовка статьи. По странному совпадению, таких очень много среди адептов vi.Shadooff
04.08.2016 11:18Мой аргумент — увеличится ваша эффективность. Вы сможете выполнять работу с наименьшей затратой времени и усилий.
Это достигается тем, что навигация до определенного места в файле:
— с hjkl — достигается, к примеру, за 700мс.
— с переносом руки на мышку, перенести курсор, кликнуть, вернуть руку обратно — достигается за больше 1сек.
Лично я чувствую разницу в 300мс.merlin-vrn
04.08.2016 11:40+4Я не чувтсвую. Я не использую мышку для большого числа задач… но возможность крутить веб-страницу колёсиком — это очень удобно и я этим активно пользуюсь. Для этого я готов переносить туда руку.
Насчёт продуктивности — я сомневаюсь, что она увеличится. Серьёзно сомневаюсь. Она не очень зависит от того, как быстро я работаю с компьютером, она зависит от того, с какой скоростью я соображаю. Я вообще часто работаю не сидя, а расхаживаю взад-вперёд с планшетом (не электронным, бумажка на деревяшке с прищепкой и карандаш).Shadooff
04.08.2016 12:15-1возможность крутить веб-страницу колёсиком — это очень удобно
вы бы еще привели пример с играми, где WASD удобнее чем hjkl. :)
Естественно скролить страницы мышкой удобнее и быстрее. :)
Я вообще часто работаю не сидя, а расхаживаю взад-вперёд с планшетом (не электронным, бумажка на деревяшке с прищепкой и карандаш).
Интересна ваша мотивация вступать в дискуссию по поводу vim если редко набираете текст.merlin-vrn
04.08.2016 12:18Потому что ваши аргументы: если я буду использовать vim, я буду продуктивнее. Я утверждаю, что не буду, и вдобавок прошу объективных доказательств того, что кто-то реально стал эффективнее.
Delphinum
04.08.2016 12:19Естественно скролить страницы мышкой удобнее и быстрее. :)
Не согласен. Скролю страницу с помощью v/c (вниз/вверх), это удобнее и быстрее, ибо палец не устает на каком нить пикабу.Shadooff
04.08.2016 14:46Наверно удобнее если только скролить, но что касается лично меня, то я обычно не только скролю но и перехожу по ссылкам нажимая на них мышкой, а на macbook так вообще трекпадом пользуюсь так как плавная прокрутка приятнее для глаз чем «дергание» (например листание c помощью jk на facebook). :)
В общем, каждый выбирает для своей работы оптимальный инструмент.Delphinum
04.08.2016 14:47Я про скролинг мышкой, не про переход по ссылкам. Для перехода по ссылкам есть другие команды.
Light_Metal
04.08.2016 14:59>>>Скролю страницу с помощью v/c (вниз/вверх), это удобнее и быстрее, ибо палец не устает на каком нить пикабу.
Кстати, space/shift+space
Если уж настолько не нравятся PgUp/PgDown.
Конечно, вопрос привычки. Но тут именно *привычка выходит на первый план*, что при использовании vi/vim и vi-style навигации, что использовании IDE и notepad++ с соответствующей навигацией.Delphinum
04.08.2016 15:02Кстати, space/shift+space
Брр… А чего сразу не Ctrl+Alt+Num2? )) v/c поудобнее будет.
Конечно, вопрос привычки
Дело не привычки, дело «слепого десятипальцевого». Вы либо держите руки (руку) на «стартовой позиции для набора», либо не держите.Light_Metal
04.08.2016 15:18А чего сразу не Ctrl+Alt+Num2? )) v/c поудобнее будет.
Передергивать только не надо. Одна большая клавиша или комбинация клавиш.
Дело не привычки, дело «слепого десятипальцевого». Вы либо держите руки (руку) на «стартовой позиции для набора», либо не держите.
Владею. Держу. И, внезапно, space таки под руками, причем под обеими сразу.
И если мне понадобилось отвести от клавиатуры левую руку, под которой v/c, то правую никуда переносить не надо, т.к. space прекрасно жмется любой рукой, равно как и shift.
И мне во время чтения условного пикабу будет комфортнее не держать руки готовыми для набора стены текста, а подносить произвольную руку к клавиатуре и тыкать самую большую и близкую клавишу. Собственно, почему я говорю про привычку. Мне удобнее одно, Вам — другое. Спорить можно долго, равно как и призывать друг друга попробовать чужой вариант.Delphinum
04.08.2016 15:25Передергивать только не надо
Это была шутка.
Одна большая клавиша или комбинация клавиш
v/c ближе к «стандартному положению рук при вводе для слепого десятипальцевого», нежели Shift+пробел.
будет комфортнее не держать руки готовыми для набора стены текста
При чем тут набор стены текста? Позиция руки для слепого десятипальцевого удобна не только для набора текста.Light_Metal
04.08.2016 15:40+1v/c ближе к «стандартному положению рук при вводе для слепого десятипальцевого», нежели Shift+пробел.
Стесняюсь спросить, а где у Вас в «стандартном положении [...]» находятся большие пальцы рук?
Мне кажется, что таки над пробелом. Так что, по большому счету, подходы равноценны.
Позиция руки для слепого десятипальцевого удобна не только для набора текста.
Не спорю. Но вот у меня не выработалась привычка постоянно держать руки на этой позиции, кладу по мере необходимости.Delphinum
04.08.2016 15:44Мне кажется, что таки над пробелом
Совершенно так, но меня больше смущает shift. В общем да, это конечно дело вкуса.
Но вот у меня не выработалась привычка
Возможно, не исключаю.
merlin-vrn
04.08.2016 11:489732740 вот тут даже интереснее. Я говорю именно о результатах подобных исследований, вот они были бы способны меня убедить.
sefus
04.08.2016 15:37+6Допустим, я без остановки пишу код и переношу руку на мышку каждые 5 минут, что занимает на 300мс времени больше. Это 12 переносов в час. 96 за рабочий день, но округлим до 100. В году примерно 250 рабочих дней и 25000 переносов руки на мышь. Если я пойду работать программистом в 25 лет и выйду на пенсию в 65, я за свою жизнь сделаю миллион переносов руки и потрачу на это 300 тысяч секунд. То есть 84 часа. При этом, я буду совершенствовать свой навык попадания мышью в течение всей жизни в разных программах, а не только в редакторе текста.
Чтобы получить хоть какой то профит, я должен потратить на изучение сочетаний клавиш, настройку плагинов, перенос конфигов и т. д. менее 80 часов за всю жизнь, отказавшись от всех преимуществ современных IDE или тратя время на переключение на них. Сомнительное преимущество.
saboteur_kiev
09.08.2016 15:34hjkl были придуманы не потому, что они быстрее или удобнее, а потому что в некоторых терминалах вообще отсутствовали стрелочки. Не забывайте когда vi/vim были созданы. Да и в документации так и написано.
Ничего сакрального в hjkl, кроме того, что они есть везде, где вообще терминал поддерживает алфавит — нет.
P.S. Кстати, если бы думали про удобство навигации стрелочек, могли бы придумать какой-нить asdw.Delphinum
09.08.2016 15:44-1Кстати, если бы думали про удобство навигации стрелочек, могли бы придумать какой-нить asdw
В чем удобство полностью менять положение левой руки для пары сдвигов курсора? Ну разве что для людей, которые не представляют себе сдвиг курсора любым способом, отличным от стрелочного.
alaska332
04.08.2016 14:38-6Вам уже все объяснили 3 раза.
В вим редактирование текста ГОРАЗДО быстрее и удобнее.
И, да, пока не попробуешь сам, естественно, разницу не поймешь.
Каких именно доказательств вы хотите и как кто-то может вам их предоставить?
Снять видео?neomedved
04.08.2016 15:24Попробовать тут недостаточно. Я два года использовал vim в режиме «insert->ввод текста->esc->:wq». Как-то не очень понравилось.
alaska332
04.08.2016 15:31+1А зачем вы два года это делали?
Мне бы тоже не понравилось.synedra
04.08.2016 15:52Вот вам кейс примерно такого же использования. Я, например, программирую в IDE. Что происходит, если после переноса на удалённый компьютер, до которого у меня есть только ssh, скрипт кидает случайно пропущенное исключение? Скажем, случайно указаны неправильные ключи вызова какой-нибудь рабочей программы?
vim align_all.py -> правим ошибку -> :wq
vim всё же удобнее, чем nano (подсветка синтаксиса, автоинденты), опять же стоит везде, где можно. Но осваивать тонкости управления и настраивать гору плагинов я ради редких мелких правок не готов.alaska332
04.08.2016 16:03Ну так вим в вашем случае ни при чем, наоборот, дал вам некоторые удобства.
Могли бы и научиться за два года другим командам, их не так много на самом деле.
Я вот сумел настроить kitty и организовать работу так, что все мои линукс дотфайлы (не только вим) загружаются при ssh логине на хост. И я без проблем имею везде одинаковое, настроенное окружение.neomedved
04.08.2016 16:29Несколько команд ничего не изменят. Если использовать в основном режим ввода, то это будет esc -> команда -> i, или даже esc -> v -> выделение текста -> команда -> esc -> команда -> i. И это намного неудобнее, чем обычные редакторы.
alaska332
04.08.2016 16:381. Ну если так, то можно вообще не выходить из режима редактирования, а по тексту перемещаться стрелками.
2. Все вим команды через 3 месяца выполняются спинным мозгом не отвлекая и не создавая проблем в этом и есть смысл вима и это именно так и должно работать и работает у тех, кто вим освоил. Остальные жалуются.neomedved
04.08.2016 16:56Проблема ведь не в командах. Проблема в том, что мне предлагают изучить принципиально другую парадигму работы с текстом, в которой ввод текста является второстепенной задачей, а основной — ввод команд. Причём комманды сами по себе малоэффективны, нужно использовать их сочетания. Только зачем мне всё это нужно?
alaska332
04.08.2016 17:051. Потому, что эта парадигма эффективнее. Вим — это интегрированный опыт поколений лучших программеров в различных окружениях и проектах.
2. Команды эффективны. Вам все это было не надо, т.к. вим для вас был вторичным инструментом, или по другим причинам. Я вам не смогу объяснить, почему для меня он лучше. Все, что я написал — мой субъективный опыт, у вас он другой.
3. Если используете firefox — поставьте vimium, поймете разницу между мышиным интерфейсом и командами, и увидите, что быстрее.merlin-vrn
04.08.2016 17:09+1Потому, что эта парадигма эффективнее.
Доказательства, исследования?
поставьте vimium, поймете разницу между мышиным интерфейсом и командами, и увидите, что быстрее
А если не увижу? Вы перестанете утверждать, что vim всегда удобнее и эффективнее, или всё-таки
Все, что я написал — мой субъективный опыт, у вас он другой.
? Если другой, то вы не можете утверждать, что «парадигма эффективнее» без объективных исследований. То есть, утверждать можете, но это уже получается пустой трёп.alaska332
04.08.2016 17:30-2Исследования?
Маразм — тратить время на объяснение очевидного.
Я не евангелист вима и не получаю профит за его распространение.
Не используете — дело ваше.
Вообще, это все теряет смысл и превратилось в холивар.
Так что откланиваюсь.
merlin-vrn
04.08.2016 16:13nano совершенно точно умеет подсветку, не уверен про автоинденты, но кажется тоже умеет
saboteur_kiev
05.08.2016 03:31-1Редактирование текста?
Не знаю, когда я пишу текст в outlook или word, мне очень нравится подсветка грамматики и возможность оформления rich текстом.synedra
05.08.2016 05:46+1Оформление текста и его редактирование — всё же сильно разные задачи. vim рассчитан на текст, который состоит из букв и цифр и прочего юникода, а Word, OO Writer и иже с ними вводят кучу дополнительных сущностей: шрифты, выравнивание, цвета, картинки и прочее такое. Я ни разу не вимофанат, но требовать от него функций, которые в нём и не предполагались, всё же некорректно.
saboteur_kiev
05.08.2016 14:15+1комментарий был для alaska332, который утверждал, что именно редактирование текста в vi лучше чем везде.
red75prim
04.08.2016 11:52+1Объективные замеры есть? Я месяца два назад искал, на реддите спрашивал, но ничего не нашёл.
avost
04.08.2016 12:19-1>Будете знать что быстрее и удобнее навигация с помощью hjkl чем переносить руку на стрелки LEFT/RIGHT/UP/DOWN или на мышку.
А действительно ли перенос руки на стрелки медленнее переноса руки на esc? И на сколько микросекунд? И эти микросекунды вам реально увеличивают эффективность?Delphinum
04.08.2016 12:20+1Откуда вы берет esc вообще? Почему все стараются влезть в тему даже не разобравшись с ней?
merlin-vrn
04.08.2016 12:23+1Так он в статье же. Везде. Выход обратно из режима редактирования в режим команд.
Можно разве по-другому реализовать тот подход, который там описан?Delphinum
04.08.2016 12:25-1Так он в статье же. Везде
Статья написана таким же новичком, надевшим розовые очки Vim.
Можно разве по-другому реализовать тот подход, который там описан?
Вариантов от любой кнопки на клавиатуре, до педали.merlin-vrn
04.08.2016 12:28+3Т.е. я должен сначала настроить кнопку. Педали у меня и у 99.9999999% населения нет.
Кнопка не будет среди тех, которые уже используются для набора текста — т. к. в режиме набора их функция уже определена. Ей уже сложно попасть в десятипальцевую парадигму… но положим, предложите, которую кнопку использовать?
Delphinum
04.08.2016 12:29-3Т.е. я должен сначала настроить кнопку
Да, либо использовать алиас Ctrl+c.
Педали у меня и у 99.9999999% населения нет.
Это ваши проблемы.
предложите, которую кнопку использовать?
Я использую Ctrl+c.
merlin-vrn
04.08.2016 12:30Я очень вас прошу, потратьте минуту, прокомментируйте пожалуйста 9732740 и там ещё есть комментарий со спойлером, который вроде как с околонаучными объяснениями эффекта.
Я в первую очередь хочу именно результаты объективных исследований. Потом можно будет проверять, подходит это мне или нет.
avost
04.08.2016 12:33Ну, я в vi (не в vim'е, а в vi) работал лет 18 назад ещё. Почему вы решили, что я в теме не разбираюсь? Там теперь кнопку esc отменили? И как волшебный vim понимает в каком режиме вы хотите работать? Телепатически?
Delphinum
04.08.2016 12:35-1Почему вы решили, что я в теме не разбираюсь?
Потому что вы предпочитаете перенос руки на esc.
Там теперь кнопку esc отменили?
Там давно рекомендуется не использовать ее.
И как волшебный vim понимает в каком режиме вы хотите работать?
Так же, как и всегда, через комбинации клавиш.avost
04.08.2016 13:12+1>Потому что вы предпочитаете перенос руки на esc.
Нет, я предпочитаю другие редакторы. Собственно говоря, мне в принципе довольно всё-равно какими редакторами пользоваться, я не машинистка, и скорость набора (точнее, скорость переключения режимом) не является для меня ограничивающим фактором (я ещё и чай успеваю прихлёбывать по ходу дела). Кроме тех, которые «или пищат или всё портят» :)
>Так же, как и всегда, через комбинации клавиш.
Ага, я уже прочёл, что вы заменили одну клавишу на две (конгениально! Карл, одну клавишу нажимать медленно, поэтому будем нажимать две!) и на этом основании считаете всех идиотами, а себя д'Артаньяном (конгениальным д'Артаньяном!). Бывает.Delphinum
04.08.2016 13:18Нет, я предпочитаю другие редакторы
Не скачите с темы на тему. С помощью демагогии не постичь истины.
точнее, скорость переключения режимом
У машинисток нет режимов.
и скорость набора не является для меня ограничивающим фактором
Скорость набора не является характеристикой какого либо редактора, это характеристика вашего умения печатать, не более того.
вы заменили одну клавишу на две
Я ничего не заменял, там все давно заменено.
одну клавишу нажимать медленно, поэтому будем нажимать две
Разница в расположении, а не в количестве.
и на этом основании считаете всех идиотами, а себя д'Артаньяном
Я считаю многих здесь отписавшихся людьми, которые делают выводы на основании своих предположений, а не изучения объекта спора. Спорить с такими людьми не имеет никакого смысла, так как они не способны на какие либо объективные оценки, а лишь преследуют цель — «я прав».avost
04.08.2016 13:54+2>Не скачите с темы на тему. С помощью демагогии не постичь истины.
Демагогия — это у вас. Вы за меня придумали какой-то бред, а потом его успешно «опровергли». Ай, малацца!
>У машинисток нет режимов.
Верно! У машинисток нет. Сами догадаетесь почему? :)
>Скорость набора не является характеристикой какого либо редактора, это характеристика вашего умения печатать
Вон чувак выше, с которым я начал дискуссию до того, как вы неуместно влезли, утверждал, что именно скорость у него очень сильно повышается. Вы, как специалист опровергаете это? Ок. Тогда лично я совсем не вижу преимуществ, кроме персональной привязанности к одному единственному способу ввода. Кстати, вы в курсе, что в большинстве IDE для таких прямолинейных предусмотрен вим режим?
>Я считаю многих здесь отписавшихся людьми, которые делают выводы на основании своих предположений, а не изучения объекта спора.
Люди читают статью, которая, в данном случае, и является объектом спора, а не то, что вы там у себя в голове напридумывали. С вашей головой нет смысла спорить, мы её не «читали» и о том, что там у вас происходит совершенно не в курсе. Не заставляйте нас делать этого и в дальнейшем. И изучите уже предмет спора (статью), мы её обсуждаем, а не вашу голову.Delphinum
04.08.2016 14:01Вы за меня придумали какой-то бред, а потом его успешно «опровергли».
Пример придуманного мной бреда, пожалуйста
Сами догадаетесь почему?
Я не изучал историю становления машинописи, не могу судить на этот счет. Главное не выдавайте желаемое за действительное.
Тогда лично я совсем не вижу преимуществ
Я об этом не спорю, не нужно со мной это обсуждать.
что в большинстве IDE для таких прямолинейных предусмотрен вим режим?
Кривой плагин, совершенно не сочетающийся с возможностями и привычками классического Vim. Не приводите его в пример больше.
Люди читают статью, которая, в данном случае, и является объектом спора
Нет, люди спорят о том, что им интересно. О статье спорят единицы.
И изучите уже предмет спора (статью), мы её обсуждаем, а не вашу голову
Ни один мой ответ не относился к теме статьи, я отвечал только на несуразицу в некоторых комментариях. В дальнейшем старайтесь понимать то, что я написал, а не ориентироваться на собственные умозаключения.avost
04.08.2016 15:15+1>Пример придуманного мной бреда, пожалуйста
«Потому что вы предпочитаете перенос руки на esc.»
>Я об этом не спорю, не нужно со мной это обсуждать.
Зачем же вы это делаете?
>Кривой плагин, совершенно не сочетающийся с возможностями и привычками классического Vim.
Какой именно?
>Ни один мой ответ не относился к теме статьи, я отвечал только на несуразицу в некоторых комментариях.
Придумываете за оппонентов какой-то бред и потом его успешно опровергаете? А, ну-ну. Вы в этом преуспели, я вижу. Но вот отчего вы считате несуразицей то, что ни кто не в курсе на какую кнопку вы переназначили esc?
>Нет, люди спорят о том, что им интересно. О статье спорят единицы.
А с чего вы взяли, что мне (да и кому-то ещё, куда вы влезли со своим переназначением) интересно спорить о том на какую (какие) кнопки вы переназначили этот несчастный esc? Я спрашивал совершенно не об этом. Зачем мне знать, что вы что-то там под себя закастомайзили?
>В дальнейшем старайтесь понимать то, что я написал
Если хотите, чтобы люди вас понимали, ориентируйтесь на то, что написано, а не на то, что творится в вашей голове. Люди совершенно не обязаны догадываться о том, что вы имели там в виду?
По делу у вас есть что сказать? Вопросы ведь были конкретные. Можете даже заменить ваш нелюбимый esc на ваш любымый {что там у вас любимое}. Если нет, зачем вы здесь?Delphinum
04.08.2016 15:33-1А действительно ли перенос руки на стрелки медленнее переноса руки на esc?
Это придуманный мною бред или ваш вопрос? Думаю второе. Так если вы задаете такие вопросы, значит вы не знакомы с редактором и рекомендациями по его использованию. Следовательно в теме вы не разбираетесь. Видимо вы еще и путаетесь в диалоге.
Зачем же вы это делаете?
Что делаю? Я сказал вам, что вы не знакомы с Vim, но пытаетесь приводить какие то аргументы, совершенно смехотворные для любого опытного пользователя редактора. Не более того.
Какой именно?
Совершенно любой, кроме, разве что, для emacs.
Придумываете за оппонентов какой-то бред
Началось пустословие )
Зачем мне знать, что вы что-то там под себя закастомайзили?
Затем, что в Vim для esc есть готовый и рекомендуемый алиас, который идет из коробки. Если вы о нем не знаете, значит вы не знакомы с этим редактором. Следовательно и ваш первый аргумент совершенно пустой и бесполезный.
По делу у вас есть что сказать?
А действительно ли перенос руки на стрелки медленнее переноса руки на Ctrl+C?
Думаю в разы медленее. В первом случае необходимо оторвать руку от J и увести весь локоть в сторону, во втором достаточно оторвать мизинец от A и перенести его на две позиции ниже простым сгибом пальца.avost
04.08.2016 15:46+2>Это придуманный мною бред или ваш вопрос?
А вы ответы совсем не читаете? Я же про придуманый бред ответил.
>Так если вы задаете такие вопросы, значит вы не знакомы с редактором
Вопрос риторический. По-моему опыту разница не принципиальная, зато позволяет не думать о «режимах»
>Совершенно любой, кроме, разве что, для emacs.
Вы их все перепробовали? Во всех возможных IDE?
>Затем, что в Vim для esc есть готовый и рекомендуемый алиас, который идет из коробки. Если вы о нем не знаете, значит вы не знакомы с этим редактором.
Не считайте других идиотами. Я ж не поленился и поставил вимы на обе две имеющиеся под рукой платформы. esc есть и работает как ему положено. Ctrl-C не работает.
>Следовательно и ваш первый аргумент совершенно пустой и бесполезный.
Следовательно, пустая и бесполезная информация о том как именно вы переназначили esc относится только к вашим личным предпочтениям, а ваши смешные наезды на окружающих о том, что они не в курсе этого — дезынформацией. Если не сказать бОльшего.
>В первом случае необходимо оторвать руку от J и увести весь локоть в сторону, во втором достаточно оторвать мизинец от A и перенести его на две позиции ниже простым сгибом пальца.
И это критично сказывается на вашей скорости работы?Delphinum
04.08.2016 15:57А вы ответы совсем не читаете? Я же про придуманый бред ответил.
Пример придуманного мной бреда, пожалуйста
Потому что вы предпочитаете перенос руки на esc
А действительно ли перенос руки на стрелки медленнее переноса руки на esc?
Видимо эту связь вы не прослеживаете. Давайте еще раз про придуманный мною бред попробуем.
По-моему опыту разница не принципиальная
Ну вот уже и прослеживается уровень ваших знаний и опыта.
Вы их все перепробовали? Во всех возможных IDE?
Достаточно было попробовать несколько в популярных IDE, чтобы понять, на чем они все спотыкаются и будут спотыкаться.
Ctrl-C не работает
Что за платформы?
И это критично сказывается на вашей скорости работы?
Естественно. Мне не удобно гонять рукой над клавиатурой, это отвлекает и усложняет процесс набора.poxu
04.08.2016 16:10Вмешаюсь в вашу дискуссию с одной небольшой ремаркой. Ctlr-C это не тоже самое, что ESC. То же самое, что ESC это из коробки Ctrl-[. Эту комбинацию, впринципе и нажимать удобнее. Особенно, если CapsLock, как положено, замаплен на Ctrl.
Delphinum
04.08.2016 16:13Ctlr-C это не тоже самое, что ESC
Никто не утверждал обратное.
Эту комбинацию, впринципе и нажимать удобнее
Кому как, у меня capslock это смена раскладки.poxu
04.08.2016 22:25Вы раньше написали, что используете Ctrl-C вместо ESC. Я только хотел сказать, что эффект похож, но он таки разный и если вы используете Ctrl-C, который в vim из коробки, то у вас периодически будут странные проблемы.
Менять раскладку CapsLock, если пользуетесь вимом несколько странно. Посчитайте сколько раз в день вы меняете раскладку и сколько раз жмёте Ctrl. Скорее всего перевес в пользу второго. Для того, чтобы нажать Ctrl нужно скрючить мизинец и как правило подвинуть кисть. Чтобы нажать CapsLock этого не нужно. Также из тех же соображений имеет смысл перемапить Enter на правый Ctrl.Delphinum
04.08.2016 22:47если вы используете Ctrl-C, который в vim из коробки, то у вас периодически будут странные проблемы
Никаких странных проблем за много лет использования не наблюдал.
Менять раскладку CapsLock...
Возможно вы и правы, но у меня уже этот мапинг на подкорке, больно будет вырезать его.
смысл перемапить Enter
Enter вообще не юзаю, как правило (в очень редких случаях). Обычно пользуюсь o и O.poxu
05.08.2016 15:16Ctlr-C просто переходит в normal mode. Если на выход из insert mode какими нибудь плагинами навешаны какие-нибудь хуки, то при нажатии Ctrl-C vim их проигнорирует, а при нажатии Esc или Ctrl-[ запустит.
CapsLock у меня тоже когда то переключал раскладку. Но потом я решил, что удобнее будет сделать CapsLock контролом. За 3 дня привык.
Что касается Enter — он действительно используется нечасто, поэтому у меня по нажатию Enter реально отдаётся сигнал Ctrl. А чтобы нажать Enter надо зажать Ctrl-M. Очень удобно.Delphinum
05.08.2016 15:23Если на выход из insert mode какими нибудь плагинами навешаны какие-нибудь хуки
Не пользуюсь таким.
Но потом я решил, что удобнее будет сделать CapsLock контролом. За 3 дня привык
У меня Ctrl под капсом, не вижу смысла их менять местами.poxu
05.08.2016 15:28У меня под капсом Shift и только под шифтом Ctrl. И так на абсолютном большинстве клавиатур, с которыми я встречаюсь. Shift, которые непосредственно под CapsLock нажимать мизинцем норм. А вот Ctrl уже сложно.
Delphinum
05.08.2016 15:32У меня так же. Да нет, не особо сложно, тем более Ctrl я пользуюсь реже, чем переключаю раскладку.
poxu
05.08.2016 15:46Вы, когда жмёте левый Ctrl, убираете указательный палец с клавиши f?
Delphinum
05.08.2016 16:03Мизинец же.
poxu
05.08.2016 17:35Вы жмёте Ctrl мизинцем, в этом сомнений нет, но когда вы это делаете, приходится ли вам убирать указательный палец с буквы f? На ней пимпочка, кстати :)
Delphinum
05.08.2016 17:41Нет конечно, зачем? Думаете у меня мизинец сантиметровый?
poxu
05.08.2016 17:55Когда я печатаю, руки у меня лежат на столе, а пальцы на home row. И вот, мне надо нажать Ctrl. Чтобы нажать его, не отрывая рук от стола, мне надо снять указательный палец с буквы f. Иначе я нажать Ctrl мизинцем никак не могу. А если держать указательный палец на f, то, чтобы нажать Ctlr надо поднять руку со стола.
Delphinum
05.08.2016 18:02Либо у нас сильно разные клавиатуры, либо сильно разные пальцы. Нажимаю любую клавишу из левой панели (tab, caps, shift, ctrl) без отрыва пальцев от стола и указательного от f.
poxu
05.08.2016 19:57А напишите пожалуйста модель клавиатуры, которой вы пользуетесь. У меня Microsoft Natural Ergonomics 4000 и Kinesis Freestyle 2.
Delphinum
05.08.2016 20:04А черт знает, стандартная клавиатура от ноута ASUS. Думаю они у этой фирмы все одинаковые, можете взглянуть на любой ноут.
Учтите, что для нажатия Ctrl+c отрывать указательный от f строго обязательно.poxu
05.08.2016 22:55Это строго обязательно потому, что им надо нажать C :). Я тут перечитал нашу беседу и заметил, что вы нажимаете любую клавишу из tab, caps, shift, ctlr не отрывая от стола пальцев. А я имел в виду, что отрывать приходится нижнюю часть ладоней. Ту, откуда запястья начинаются.
У асусов клавиатура вроде более менее стандартная. Сейчас пишу с самсунга, по моему там примерно такая же должна быть.
Любопытно как это у вас получается. Завтра найду кого-нибудь, попрошу мои руки на клавиатуре сфоткать, сравним.Delphinum
06.08.2016 00:32Это строго обязательно потому, что им надо нажать C
Точно так.
А я имел в виду, что отрывать приходится нижнюю часть ладоней
Нет, и запястье не отрываю, и локоть.
Любопытно как это у вас получается
Может пальцы особо длинные? Не знаю. Я думал это у всех так.
Miklos
06.08.2016 18:51Kinesis Freestyle 2
Каково в сравнении с Microsoft Natural Ergonomics 4000?poxu
06.08.2016 22:55Основная проблема Microsoft Natural Ergonomics 4000 — большой размер и тяжёлый ход клавиш. Большой размер не решить никак, а вот насчёт того, что клавиши нажимать тяжело — тут есть новая модель со слим клавишами — Sculpt Ergonomic Desktop. Я хотел взять её, но потом решил попробовать Kinesis Freestyle 2.
Первые пару дней рукам было некомфортно, даже ладонь ныла немного. Кроме того, я постоянно промахивался по клавишам Alt и Winkey. Потом привык.
То, что клавиатура состоит из двух независимых половин — очень клёво, но надо подобрать положение каждой половины, чтобы было удобно рукам.
Сейчас пользуюсь в основном Kinesis. Мне удобно. Особенно прикольно, когда подходят коллеги и у них взрывается мозг. Печатать на майкрософтовской клаве они могут, хоть им и непривычно, а печатать на двух половинках это уже реально сносит шаблон :).
Думаю как-нибудь попробовать Sculpt Ergonomic Desktop — чисто из любопытства, но вообще на мой взгляд следующим шагом должна быть Ergo Proxy.
alaska332
04.08.2016 16:49Хм, а зачем Caps мапить на Ctrl, который рядом?
У меня Caps — смена раскладки — это, реально, удобно.poxu
04.08.2016 22:26Это удобно, если только вы жмёте Ctrl реже, чем меняете раскладку. Я в другом комментарии подробнее раскрыл.
alsii
05.08.2016 11:14+1Случайно зацепился за "[" и не удержался. Вот у меня например клавиатура исходно немецкая, и для того, чтобы получить Ctrl-[ нужно реально нажать Ctrl-AltGr-[
] { } ~ | набираются подобным образом.
В дополнение к этому чтобы набрать ^ нужно нажать соответствующкю клавишу два раза, а потом стереть лишний ^ (их появляется сразу два). Правда это можно отключить, но тогда пропадет возможность набирать eee и т.п. Вот такие суровые реалии.poxu
05.08.2016 15:19С русской раскладкой похожие проблемы. Решаются set keymap=russian-jcukenwin и переключение языка в insert mode по Ctrl-^
avost
05.08.2016 11:51+1>Видимо эту связь вы не прослеживаете. Давайте еще раз про придуманный мною бред попробуем.
А вы не пытайтесь прослеживать связи из своей головы, вы их из действительности прослеживайте. Действительность она отличается от того, что вы придумали. Вы перечитайте про действительность. Попробуйте.
>Ну вот уже и прослеживается уровень ваших знаний и опыта.
Вы всерьёз полагаете, что у меня недостаточно опыта в движении руками над клавиатурой? Я, конечно, не престидижитарор, но слепым десятипальцевым последние 15 лет пользуюсь (исключая пару месяцев, когда из-за травмы пальца пришлось перейти на девятипальцевый).
>> Ctrl-C не работает
>Что за платформы?
Опа, приношу извинения, это я — дезинформатор. Поставил вим на третью машину и, наконец, вспомнил нечеловечью логику этой программы. Был не прав, работает на маке и паре линуксов.
На маковской клавиатуре эта комбинация ещё более-менее нажимабельна без смещения руки, а на стандартных клавиатурах куда хуже не только эскейпа, но и стрелок. В общем, я не могу настолько сильно оттопыривать мизинец вбок при его одновременном движении вниз. Наверное, руки кривые, не заточеные под вим.
>Достаточно было попробовать несколько в популярных IDE, чтобы понять, на чем они все спотыкаются и будут спотыкаться.
И это страшный секрет поклонников вима? Ах, ви такие загадошные!
>Мне не удобно гонять рукой над клавиатурой, это отвлекает
Ну, а на остальных редакторах, это давно перешло в разряд автоматической моторики, не осознаётся и не отвлекает. Ещё один повод не использовать программу, работа в которой требует настолько сильного сосредоточения и напряжения воли, что даже движение руки отвлекают. :)
webkumo
04.08.2016 16:39Хм… простите, а что случится с набором текста 'tree'?
Delphinum
04.08.2016 16:40Не понял вашего вопроса.
webkumo
04.08.2016 22:43+1Хм… неправильно прочитал кусок вашего текста: «Там давно рекомендуется не использовать ее.» — ee было воспринято как альтернатива клавише Esc.
PS в русском языке существует замечательная буква ё… почему бы её просто не использовать?Delphinum
04.08.2016 22:50+1в русском языке существует замечательная буква ё… почему бы её просто не использовать?
Экономя время на перетаскивание пальца с начальной позиции для слепого десятипальцевого, я к концу дня успеваю за сэкономленное прочитать лишнюю страницу книги *сарказм* )webkumo
05.08.2016 01:09Сэкономленное время, потраченное вами на комментарии к этой статье можно было потратить на чтение целой главы книги. Так что рекомендую задуматься над небольшим усложнением своей задачи. Благо буква ё редкая гостья в тексте (не так уж много слов её содержат).
Вы же набираете 1цу? А буква ё совсем-совсем рядом.
PS простите, не смог разобрать полностью, что является в вашей фразе просто сарказмом, а что является убеждением.Delphinum
05.08.2016 10:54-1Сэкономленное время, потраченное вами на комментарии к этой статье можно было потратить на чтение целой главы книги
Книги не дадут мне опыта реального общения.
Вы же набираете 1цу? А буква ё совсем-совсем рядом
Зачем, когда еще ближе клавиша capslock и ctrl?webkumo
14.08.2016 04:36> Книги не дадут мне опыта реального общения.
Комменты на хабре — в общем-то тоже. Точнее опыт будет неэффективный и малорелевантный. Хотите опыт — пишите статьи.
т.е. когда вы набираете в тексте «1» вы жмёте капс или ctrl?Delphinum
14.08.2016 10:17Комменты на хабре — в общем-то тоже
Вы глубоко ошибаетесь.
т.е. когда вы набираете в тексте «1» вы жмёте капс или ctrl
В тексте я пишу 1 куда чаще чем ё, которую я не пишу никогда. Все проще чем кажется.
LennyB
04.08.2016 14:59Перенос левого мизинца на Esc делается без отрыва кисти от поверхности в отличие от переноса всего правого предплечья на блок стрелок (и тем более на мышь).
avost
04.08.2016 15:36Это смотря что за клавиатура. Сейчас на маковской проверил — нет большой разницы. Тем более, я, когда печатаю, не прижимаю кисти к поверхности. Но кисть за esc'ом всё-равно движется даже на маковском огрызке. А на полноразмерной клавиатуре мне где-то два сантиметра не хватает, чтобы _без_отрыва_кисти_от_поверхности_ дотянуться до esc. Даже до ё, которая под esc приподнимать кисть слегка надо.
daihatsu
05.08.2016 08:32+4Заблуждение про эффективность.
Дело в том, что vi разработан под другое расположение клавиши ESC.
Раньше это было, действительно, эффективнее.
На современных клавиатурах — приходится отрывать пальцы от прочих клавиш, при нажатии ESC даже мизинцем.
P.S.:
Попробовал нажимать мизинцем на классической (не ноутбучной) клавиатуре.
Если вы умудряетесь попадать ESC мизинцем — то вы видимо специально ради vi тренировались.
alsii
05.08.2016 12:07Делов том, что vi разрабатывался под клавиатуру, где нет многих клавиш, которые есть на современной клавиатуре. Например перемещение курсора клавишами hjkl сделано не потому, что это удобнее, а потому что стрелок на на многих клавиатурах тех времен просто не было (или были, но использовались не для того, для чего сейчас).
Когда я начинал, на RT-11 стандартным редактором был ed. Там вообще все делалось только командами. Ну и был еще TECO. Он был очень крут. Любителям vim советую обратить внимание на пример 2 из статьи в вики. Вам точно понравится.
А потом появился K52 (для терминала DEC VT52, для VT100 был KED), который был визуальным и использовал дополнительную клавиатуру для операция типа copy-paste Иписать программы смог каждый дуракна всех снизошла благодать!daihatsu
05.08.2016 12:12Например перемещение курсора клавишами hjkl сделано не потому, что это удобнее, а потому что стрелок на на многих клавиатурах тех времен просто не было
Это удобно. Внезапно:
Какие клавиши используются в 3D-шутерах, которые появились в век, когда стрелки уже сущестовали? Как правило это и стрелки и asdw
Самая большая грусть с vim — это ESC, который раньше находился там, где сейчас Tab или CapsLock.
Кстати, многие любители vim переназначают мало нужный CapsLock на ESC.alsii
05.08.2016 16:13-1Ну во-первых hjkl это совсем не asdw, существенно менее интуитивно. Во-вторых речь о том, что тогда, за неимением специальных клавиш, приходилось навешивать функции не связанные непосредственно с вводом текста на уже существующие (навигация, поиск и т.п.). Отсюда заморочки с модальностью. Потом дополнительные клавиши появились в изобилии и некоторые из них разработчики vim используют. Внезапно: стрелки вполне себе работают в том числе и в режимах вставки и замены.
hurricup
04.08.2016 12:01+2Научился и не понял.
Delphinum
04.08.2016 12:12Как в ваш «слепой десятипальцевый» вписался процесс снятия рук с «основной позиции набора» и перенос правой (или левой?) на клавиши со стрелками?
hurricup
04.08.2016 12:18+2Вопрос странный. В процессе набора текста мне не нужно двигать курсор. В процессе работы с блоками/перемещении мне не нужно держать пальцы на шишечках. Т.е. это два редко пересекающихся процесса у каждого из которых свое положение правой руки. Нет частого переключения контекста :) Т.е. проблема надуманная. Примерно так же как проблема дотянуться до Esc в виме (если конечно не использовать Ctrl-[)
Delphinum
04.08.2016 12:22-7Примерно так же как проблема дотянуться до Esc в виме
Еще один… Ясно, понятно. Не буду тратить свое время на вас.hurricup
04.08.2016 12:29+6Еще один что? Не знающий вима как Вы? Предположу, что нас тут таких, дебилов, много. Не стоит опускаться.
Delphinum
04.08.2016 12:32-10Еще один что?
Еще один хейтер, совершенно не разбирающийся в теме и стремящийся разве что доказать свою правоту.
Предположу, что нас тут таких, дебилов, много
Очень много, это даже как то обидно, что комьюнити хабра постепенно скатывается на уровень «не читал но осуждаю».
poxu
04.08.2016 22:29Чего ясно и чего понятно? До Esc дотянуться нелегко, такая проблема есть. Как решить эту проблему человек знает. О чём вы?
Delphinum
04.08.2016 22:57Зачем мне на клавиатуре вообще хоть когда-нибудь может потребоваться перемещать курсор с помощью неочевидных hkjl, если у меня есть специализированные клавиши управления курсором с очевидными стрелочками?
Научился и не понял.
Как в ваш «слепой десятипальцевый» вписался процесс снятия рук с «основной позиции набора» и перенос правой (или левой?) на клавиши со стрелками?
Вопрос странный. В процессе набора текста мне не нужно двигать курсор. В процессе работы с блоками/перемещении мне не нужно держать пальцы на шишечках.
Мне обязательно нужно все разжевывать?
Человек, научившийся (по его словам) слепому десятипальцевому не понимает, зачем использовать hjkl для серфинга по документу, ведь набор текста и серфинг это (как он считает) не пересекающиеся сферы. Другими словами набор с использованием слепого десятипальцевого кода программы у данного человека будет выглядить так:
1. Положил руки на asdf jkl;
2. Набрал два слова
3. Положил правую руку на стрелку
4. Поменял позицию курсора
5. п. 1
Теперь ясно и понятно о чем я?poxu
05.08.2016 15:22Теперь ясно. Но мне показалось, что он мышкой хочет позицию курсора менять.
Delphinum
05.08.2016 15:25Это не меняет дело, будете вы мышкой позицию курсора менять или стрелками, в любом случае модальность в этом случае будет куда более сложной и неудобной.
poxu
05.08.2016 15:43+1Я начал пользоваться вимом, когда необходимость переносить руку на стрелки по нескольку раз в минуту начала меня бесить. Точно так же бесит необходимость перекидывать руки на мышь. Бесит переключение контекста.
Пока оно не бесит, модальность писец неудобная, это правда. Да и когда оно начинает бесить — путь наименьшего сопротивления — внедрение сочетаний клавиш. Это верная дорога к локальному оптимуму из которого нет простого выхода :).
Serdonda
04.08.2016 10:56+19тоже самое можно сказать и о адептах vi — как только вы научитесь переносить руки с клавиатуры на мышку — вам откроется разнообразие мира (редакторов) а доведя это до автоматизма вы узнаете что некоторые вещи можно делать быстрее с мышкой нежели с hjkl
Shadooff
04.08.2016 11:03Абсолютно согласен. У меня доведено до автоматизма и то и другое, и могу сказать что есть моменты где мышкой пользоваться удобнее, но фишка еще в том, что ваш мозг (неосознанно) переключается в оптимальный режим что способствует невероятной продуктивности.
daihatsu
05.08.2016 11:24+1Неожиданно:
мышь является стандартом де-факто уже более 20 лет.
Так что все современные адепты vi/vim начали освоение текстовых редакторов как раз именно с использованием мыши.Delphinum
05.08.2016 11:35+1Так что все современные адепты vi/vim начали освоение текстовых редакторов как раз именно с использованием мыши
Что говорит не в ее пользу.saboteur_kiev
05.08.2016 14:18+1Я очень часто пользуюсь vi в putty, и мне очень удобно выделять большие участки текста и вставлять их именно мышкой. Особенно если я это делаю между разными окнами.
ffs
04.08.2016 10:28+7Периодически у клиентов на серверах добавляю наш скрипт в крон, и иногда попадается vi в качестве стандартного редактора, каждый раз приходится вспоминать как сделать так чтобы ничего не сломать. И закрыть с сохранением.
peck_wtf
04.08.2016 10:28Не совсем по теме, но такой вот вопрос/замечание:
работать с русским текстом очень неудобно, потому что точка в двух раскладках находится на разных местах (и др., менее значимые нюансы). Как кто вышел из положения?Delphinum
04.08.2016 10:44Там куча решений этой проблемы. Сам поставил мапинг для русских символов на английские аналоги.
peck_wtf
04.08.2016 11:08+1— там — в Интернете?
— мапинги — такого типа «map й q»?
— что вы делаете, когда вместо поиска по "/" повторяется предыдущее действие (потому что на русской раскладке там точка)?
— я пробовал решение с мапингами, https://habrahabr.ru/post/98393 и https://habrahabr.ru/post/175709/ Недостатки первого вроде понятны. По второму нужно привыкать к C-^ вместо обычных хоткеев переключания раскладки, в третьем нужно везение чтобы на вашей системе заработал xkb-switch (у меня на ubuntu 16.04 — не работает)
Если у кого есть дельные советы — я бы с радостью выслушал. Спасибо.Delphinum
04.08.2016 11:10-2— Да
— Да
— Ничего, у меня редактор всегда в normal mode и en раскладкой
— Во втором можно выбрать другую комбинацию для переключения (уже и не помню как), сам отказался от него только потому, что привык к переключению по capslockpeck_wtf
05.08.2016 09:17+1если не сложно, можно поподробнее про ваши настройки с русской раскладкой? Что-нибудь помимо мапингов типа «map й q» делали? Как при выходе в normal-mode включается en раскладка? Спасибо.
daihatsu
05.08.2016 09:33Если про встроенный в vim способ включения по Ctrl+6, то в командном режиме раскладка остается английской.
Если про специальные программки-переключатели, заточенные под vim (а таковых как минимум 2 отечественного производителя) — то они тоже умеют отлавливать из/в командный режим.peck_wtf
05.08.2016 10:32я вас не понял. у меня :help CTRL-^ выдаёт инфо об альтернативном файле, что ожидаемо. Где я могу почитать про «встроенный в vim способ включения по Ctrl+6»?
А вопрос мой был про конкретно ваш workflow, работающий. А то альтернативы, которые у вас не установлены, могут разочаровать нас обоих.daihatsu
05.08.2016 10:44Ctrl+6 — стандартный способ переключения раскладки в vim.
Он встроен и запускается без каких либо дополнительных внешних модулей.
Статья на Хабре «Vim и кириллица: парочка приёмов»
set keymap=russian-jcukenwin
set iminsert=0
set imsearch=0
highlight lCursor guifg=NONE guibg=Cyan
Теперь разъяснения. В Vim есть такая штука, как lmap. Она задаёт преобразование для всех случаев, когда речь идёт о вводе символов, как части текста, но не как части команды. Так lmap учитывается при вставке, вводе паттерна поиска, после команд r и f.
Команда «set keymap=russian-jcukenwin» устанавливает кучу таких lmap, которые соответствуют обычной виндовой йцукен клавиатуре. russian-jcukenwin — это просто имя файла с маппингами. Нужный нам уже есть в стандартной поставке.
После установки keymap можно переключаться между кириллицей и латиницей нажатием Ctrl+^. При этом происходит чего и добивались: команды и шорткаты ни коем образом не страдают при активной русской раскладке. Ура!
Delphinum
05.08.2016 10:55Ничего больше не делал. При выходе из normal mode включаю en раскладку сам автоматически (мозги привыкли уже, но это делать не обязательно).
Bedal
04.08.2016 10:37-1Описывается обычное для маргинальных сообществ «это великолепно не потому, что это лучше, а потому что это есть у нас».
Во-первых, текстовые редакторы давно уже никому практически не нужны. Для ворда в своё время нашли хорошее название «текстовый процессор». То есть ввод текста — действительно только эпизод в общем объёме работ. Но остальное, кроме непосредственно набивания текста — это вовсе не изысканные текстовые команды, а уйма всего, выходящего за рамки набора буковок и изуверских поисков. Для программиста — это IDE, отладка, просмотр ссылок, связанных классов, наборов атрибутов и множество всего иного, что делать клавиатурными комбинациями просто смешно.
Что же касается мышки, то совет работать одновременно мышью и клавиатурой — совершенно правильный. Как именно — вопрос индивидуальный, но вот я (подсмотрев у старших товарищей) левой рукой работаю мышью, в то время как правая — на клавиатуре. Никаких переносов рук, потери времени и внимания. Ещё из индивидуального — правильная мышь пятикнопочна. Клик по колесу — ^V, две доп.кнопки — ^C и ^X. Вот тогда количество переключений между клавиатурой и мышью падает сильно и не приходится искать дурацкие возможности «а как бы вставить hello в любое место текста». Но — повторюсь — это индивидуально. Хотя и очень, очень удобно.Delphinum
04.08.2016 10:46левой рукой работаю мышью, в то время как правая — на клавиатуре. Никаких переносов рук, потери времени и внимания
Вы печатаете одной рукой?Bedal
04.08.2016 22:49когда веду частичное редактироваине — этого совершенно достаточно. Когда же набираю массив текста — конечно, двумя. Но тогда мышка не нужна.
Delphinum
04.08.2016 22:59А не думали, что можно отказаться от мыши и когда ведете частичное редактирование?
merlin-vrn
05.08.2016 08:36+1Но зачем, в этом случае от скорости набора зависит всё гораздо меньше, гораздо важнее скорость поиска, чтения и анализа? Даже если мышка медленнее (что неверно, судя по всему — она на самом деле быстрее, т.к. непосредственное позиционирование с визуальным подтверждением, в отличие от клавиатуры) — скорость попадания в нужное место в тексте не важна.
daihatsu
05.08.2016 08:37+1А чем vim уменьшает скорость поиска, чтения и анализа?
merlin-vrn
05.08.2016 08:43Заставляет тратить время на изучение. Пока не изучил — значительно медленнее всё, т.к. отвлекает на себя внимание. Если я захочу перейти на vim, в лучшем случае я несколько месяцев буду работать с резко сниженной эффективностью, которая потом, возможно, плавно вернётся на прежний уровень, а может и не вернётся — ни у кого объективных доказательств эффективности нет. И тогда получится, что я несколько месяцев мучился зря.
А мышкой я и так владею.
Кстати, не факт и что Delphinum и другие апологеты реально быстрее. Уже несколько оснований полагать, что это им самим так кажется, а если замерить по часам, окажется, что на самом деле vim медленнее.
daihatsu
05.08.2016 09:04+2То же самое можно сказать и про слепой десятипальцевый метод.
Или вы будете утверждать, что он не нужен?
К счастью, для освоения vi, в отличие от слепого десятипальцевого не нужно столько времени. Нет там никаких месяцев падения производительности. Проходите vimtutor (за 20 минут) — и базис заложен. Производительность теряется на несколько дней всего.merlin-vrn
05.08.2016 09:16-3Кстати да, буду. Десятипальцевый метод — это очень, очень узкоспециализированная техника, которая нужна всё меньшему числу людей. Программистам не нужна точно. Дизайнерам не нужна. Админам не нужна. Музыкантам не нужна. Художникам не нужна. Машинисткам нужна, вот их и обучайте.
Тут лет пять назад очень сильно пиарился shahidjanyan, автор "соло на клавиатуре". Всё пытался спорить, вот мол, какие вы компьютерщики, я быстрее вас текст набираю. Слился, теперь в рид-онли, не нужен он тут оказался со своим десятипальцевым методом и гнилыми типа-психологическими разливами воды с каплей смысла в комментариях. Видно было, что печатает человек гораздо быстрее, чем придумывает какие-то новые мысли. Прямо как в анекдоте: печатаю 1000 знаков в минуту, такая фигня получается!
А по поводу 20 минут и нескольких дней — разрешите вам не поверить. Я пробовал, мало. Три месяца — вот эта оценка похожа на правду.
daihatsu
05.08.2016 09:43+1> Тут лет пять назад очень сильно пиарился shahidjanyan, автор «соло на клавиатуре».
Шахиджаняну уже 76 лет. Наверное его больше интересуют внуки, а не ваша скорость набора текстов.
> Машинисткам нужна, вот их и обучайте.
Самое смешное, что машинистки нынче — это очень малоквалифицифированный труд и набирают они «зрячим двухпальцевым» методом обычно.
> Программистам не нужна точно. Дизайнерам не нужна. Админам не нужна. Музыкантам не нужна. Художникам не нужна.
Дизайнерам, музыкантам, художникам — не нужна. Так они и не типичная аудитория этого сайта. Давайте еще напишем про водителей, ВДВшников, столяров, сварщиков, моряков… — им тоже не нужна.
Серьезный админ — это не тот, что умеет картриджи заправлять, а тот, что скрипты автоматизации пишет.
Разумеется, речь не идет, что без этого нельзя или что ты будешь плохим программистом только потому, что на клавиатуру глядишь.
Это просто базовый уровень познаний, являющихся бонусом для профессии. Не обязательное требование. А дополнительный улучшающий тебя как профессионала бонус.
Например, сегодняшний уровень развития автоматизированного перевода позволяет быть хорошим программистом, полагаясь на Google Translate. Но хорошее знание английского как оставалось плюсом так и остается.
> А по поводу 20 минут и нескольких дней — разрешите вам не поверить. Я пробовал, мало. Три месяца — вот эта оценка похожа на правду.
Вы проходили vimtutor 3 месяца?
Да там даже очень много выпившему пива больше 2 часов делать нечего.merlin-vrn
05.08.2016 09:49Серьезный админ — это не тот, что умеет картриджи заправлять, а тот, что скрипты автоматизации пишет.
Разумеется. Серьёзный админ схемы рисует. Скрипты автоматизации вообще в первую очередь требуют чтения документации, а печатать там реально немного.
Разумеется, речь не идет, что без этого нельзя или что ты будешь плохим программистом только потому, что на клавиатуру глядишь.
Я не владею десятипальцевым, хотя и на клавиаутуру не гляжу. Я достаточно быстро набираю текст, с этим проблем нет никаких, чтобы не вызывать никаких вопросов на тему "чего он там копается".
Вы проходили vimtutor 3 месяца?
нет, это-то быстро, а потом надо ещё привыкнуть реально этим пользоваться. И тут нескольких дней мало, а три месяца я тратить не собираюсь, я практически уверен, что выгоды никакой не получу
daihatsu
05.08.2016 09:54-2> нет, это-то быстро, а потом надо ещё привыкнуть реально этим пользоваться
Сразу после прохождения вимтутора — НЕ НУЖНО привыкать. Пальцы сами жмут куда нужно.
merlin-vrn
05.08.2016 09:55Ага, вот вам клавиатура фортепиано, там и клавиш меньше, чем на клавиатуре, и система какая-то есть. Пальцы жмут куда нужно, да, это начинает работать после пяти лет упорных упражнений.
daihatsu
05.08.2016 10:10-4Завязывай теоретизировать.
ПРОСТО ЗАПУСТИ вимтутор и через полчаса — напиши сюда ОБОСНОВАННЫЙ ВЫВОД.
merlin-vrn
05.08.2016 09:54+1Ещё раз, 20 команд или сколько их там — ерунда. Совершенно не в этом проблема.
Так, сравните: выучить восемь команд брейнфака можно за десять минут — вы же не скажете, что этого достаточно, чтобы на нём программировать?
Так вот vim для меня — это брейнфак. Реально. При том, что я джентушник со стажем.daihatsu
05.08.2016 10:11-4Ну вы так пишете, будто мне не все равно освоите вы там вим или нет.
Я — освоил за несколько десятков минут. Мне этого достаточно, чтобы на серверах удаленно править файлики.
MacIn
05.08.2016 18:00Людям свойственно путать «легко» и «просто». Освоить bf просто, а вот написать на нем что-то стоящее — трудно. Как и, например, просто научиться двигать фигуры по шахматной доске. А научиться выигрывать — трудно.
Delphinum
05.08.2016 10:58+1Десятипальцевый метод — это очень, очень узкоспециализированная техника, которая нужна всё меньшему числу людей. Программистам не нужна точно
Оуу… все настолько запущено (Alexey2005
05.08.2016 12:45Я освоил десятипальцевый метод в кириллической раскладке, и он действительно очень удобен.
Но вот когда я потом решил было освоить то же самое, но в asdf именно с целью упрощения набора кода, то быстро передумал. Потому как стало понятно, что не менее трети нажатий приходится на верхний ряд — тот, где цифры и спецсимволы. А туда дотягиваться ох как неудобно, и всё равно пальцы приходится отрывать от центральных клавиш.
В итоге пришёл к выводу, что десятипальцевый метод подходит только для набора текстов, но совершенно непригоден для ввода символьно-цифровой каши.Delphinum
05.08.2016 12:47Потому как стало понятно, что не менее трети нажатий приходится на верхний ряд — тот, где цифры и спецсимволы
А почему ваш редактор сам не завершает ваш ввод?Noahzgard
05.08.2016 12:51$ > < + _ & * ( ^ эти символы не завершают ввод, а находятся или обособленно или ввод начинается с них. Как редактор может помочь с этим?
Delphinum
05.08.2016 12:57Shift+цифра. Так же, как и при любом вводе. Если некоторые символы неудобно расположены, значит нужно набирать удобно расположенные символы двумя указательными втыкая в клавиатуру?
daihatsu
05.08.2016 12:49Для цифр профи (бухгалтера и т.п.) предпочитают правый цифровой блок.
А с символами — действительно беда.
Но то, что нет пользы для программиста/верстальщика в знании английской раскладке вслепую — не согласен.
Освоил их одновременно. Не жалею о потраченном времени. Уже многократно окупилось.
gaki
06.08.2016 04:27Для освоения слепого десятипальцевого не нужно много времени. С правильным тренажёром (подсказка: это не «соло на клавиатуре») можно освоить буквально за пару часов. Особенно если уже есть большой опыт печати на клавиатуре «зрячим методом» и вы уже помните, на самом деле, расположение всех клавиш.
Правильный тренажёр — KeyTo или VerseQ. Вроде бы, щас они запилили даже онлайн-версию. Там не надо сначала миллион раз набирать «оло лолооллоло оллоло лол» а потом еще миллион раз «ожж жжожожо жожо», сразу идёт тренировка всех символов в комбинациях, наиболее часто встречающихся для данного языка.
И нет, я не имею никакого отношения к авторам тренажёра, и они мне даже не платят за рекламу. Просто тренажёр реально хорош :)
Delphinum
05.08.2016 10:57-1Мышка (обычная) позволяет серфить с помощью 3 клавиш, а клавиатуры с помощью более чем 33х. Чем больше клавиш, тем боль доступных быстрых команд.
alaska332
04.08.2016 14:45-2| левой рукой работаю мышью, в то время как правая — на клавиатуре. Никаких переносов рук,
| потери времени и внимания
Бу-гагага.
Скажите еще, что вы одним пальцем тычете в кнопки с размаха. Пока другая чем-то там занята.
Что это вообще такое?
Хотя, может у вас 10 пальцев на руке.Bedal
04.08.2016 22:54Что примечательно — насчёт «маргинального сообщества» и ненужности текстовых редакторов никто не возразил.
Jaromir
04.08.2016 10:37+2> и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim
И его совсем юного продолжателя — neovim. В который добавлен полноценный терминал, асинхронные комманды и много других фич уже работающих или только планируемых
tangro
04.08.2016 10:37+17Во вселенной, где главная проблема программирования заключается в набирании букв в текстовом файле, vi, конечно, рулит.
Valery4
04.08.2016 10:47Вы статью точно полностью прочитали?
Если пункт «Заблуждение №5» не прошёл мимо вашего внимания, будет интересно узнать мнение по существу.kroketmonster
04.08.2016 12:13+9Ну так там нет опровержения никакого. Лишь сектантское утверждение что наш способ вводить код высвобождает чакры программирования.
Valery4
08.08.2016 09:32Ну хорошо. Из собственного опыта — мне удобнее использовать слепой набор для печати, чтобы не отрывать взгляд от экрана. И удобно редактировать текст думая о том что надо сделать, а не каким именно образом. Вся прелесть в доведении до автоматизма.
Причем раньше пользовался продвинутыми хоткеями в IDE — это тоже удобно, но vi режим есть практически везде и лично мне это удобнее.
Похоже нас обоих раздражает фанатизм.
Я в этой статье нашёл пару интересных нюансов которые не знал, но пожалуй тон статей про Вим начинает напоминать истерию вокруг веганов и вейперов.Valery4
08.08.2016 09:37+1По поводу скорости редактирования:
Согласен с тем, что на написание кода уходит не самая большая часть времени.
Как мне показалось, аргументация в статье была про то, что эту небольшую в процентном соотношении часть работы можно делать максимально удобно, сосредоточившись на коде — записывая, редактируя, стирая — параллельно с обдумыванием не обостряя внимание на инструменте, так как обдумывают какие-то вещи чиркая на бумаге карандашом.
staticlab
04.08.2016 10:38Попробовал пример 2. После c%, как и ожидалось, вызов функции удалился и vim перешёл в режим редактирования. (К слову, vi удаляет только после редактирования — не то, чтобы это было совсем неудобно, но несколько неочевидно и неожиданно в контексте примера.) Далее через O создал новую строку, написал определение переменной, но Ctrl-R, вероятно, сработала как-то не так. Вставляется голубая двойная кавычка, при вводе точки с запятой всё удаляется. Никаким способом не получилось заставить vim вставить ту строку. Господа вимеры, статья обманывает или я что-то не так сделал?
rageorg
04.08.2016 10:48+1В статье косяк видимо, после ctrl+r надо нажать "-" (минус) и строка вставится.
staticlab
04.08.2016 11:22+6Ну и как с таким отношением к точности агитировать к переходу на vi/vim? В названии команды в «классической» IDE тоже можно допустить опечатку, но читатель её хотя бы сам «исправит» из-за избыточности, а в меню и хоткей будет к ней написан — можно выучить, если часто будет нужен, или определить самому. А здесь же даже толком не поймёшь, в чём ошибка, да и нагуглить решение сложнее.
Ещё большой недостаток перехода состоит в том, что для более-менее нормальной работы потребуется выучить сразу много хоткеев, из-за чего первые «несколько недель», как пишет автор, производительность сильно упадёт, а работать-то надо прямо сейчас. Постепенно разучивать их тоже неудобно — не зная большинства даже просто редактировать текст довольно неудобно. Плюс команды в vi могут быть сильно деструктивные — промах по клавише может выполнить совершенно другое действие.rageorg
04.08.2016 12:30Ну и как с таким отношением к точности агитировать к переходу на vi/vim?
А здесь же даже толком не поймёшь, в чём ошибка, да и нагуглить решение сложнее.
Я не знаю почему в статье не точно написано, может быть в vi это и сработает, но в vim работает с "-". Вообще я бы не рассматривал эту статью как сборник рецептов для старта изучения. Она просто показывает какие "крутые штуки" можно делать с вимом. Что-то типа "учи программирование делай игры".
Ещё большой недостаток перехода состоит в том, что для более-менее нормальной работы потребуется выучить сразу много хоткеев, из-за чего первые «несколько недель», как пишет автор, производительность сильно упадёт, а работать-то надо прямо сейчас.
По проходить vimtutor в свободное время, за пару часов база со всеми хоткеями будет освоена. Производительность упадет из-за комбинирования этих хоткеев. Но это уже не проблема вима, это проблема всех хоткейных программ.
Плюс команды в vi могут быть сильно деструктивные — промах по клавише может выполнить совершенно другое действие.
Сначала надо промахнуться. Но даже если промахнулись, то можно отменить любое действие. А если действие не отменяемое, то это уже промах как-то неслучайный.
LennyB
04.08.2016 15:04После Ctrl-r надо набрать название регистра (что-то вроде именованного буфера обмена), из которого вставлять текст. В данном случае "правильнее" набрать двойную кавычку (регистр по умолчанию), т.е.
<Ctrl-r>";<Esc>
. Или можно<Ctrl-o>p;<Esc>
.staticlab
04.08.2016 17:18Итого по примеру 2 (в обоих случаях курсор стоит на начале выражения; набор текста не учитываем):
VIM:
- вырезание выражения:
C
,Shift-%
— 3 кл. - набор текста
- создание новой строки:
Shift-O
— 2 кл. - набор текста
- вставка блока:
Ctrl-R
,Shift-"
— 4 кл. - завершение:
Esc
— 1 кл.
итого: 10 кл.
JetBrains IDE:
- вырезание выражения:
Ctrl-W-W-X
— 4 кл. - набор текста
- создание новой строки:
Home
,Ctrl-Enter
— 3 кл. - набор текста
- вставка блока:
Ctrl-V
— 2 кл.
итого: 9 кл.
Delphinum
05.08.2016 12:16В Vim можно поступить проще:
* Вырезание: cw — 2 кл.
* набор текста
* Новая строка над текущей — Shft-o — 2 кл.
* набор текста
* Вставка вырезанного — y — 1 кл.
* завершение — esc — 1 кл.
итого: 4 кл.
Хотите поиграть в VimGolf? )
- вырезание выражения:
Toshiro
04.08.2016 10:44+15Судя по тому, что я сейчас прочел, пользователи… нет, скорее «активисты» vi — не просто придурки, а отборные мазохисты. Не знаю, может кто-то в этой статье видит преимущества vi, я же вижу убийственный гемморой, переусложняющий простой ввод кода до уровня секвенирования ДНК.
Допускаю, что это отличная идея если надо обосновать — почему код на полчаса пишется 2 недели. Но для реальной работы это бред.saboteur_kiev
05.08.2016 03:36Не нужно путать пользователей vi под гребенку.
Я люблю и vi и far и idea, и на самом деле в статье хорошие и годные примеры. Просто непонятны эти нападки на IDE как в ней так и в каментах.
Это как спорить что лучше win или linux без указания задачи.
vim отличный инструмент. На этом следовало поставить точку и давать примеры использований, а не сравнивать с другим, причем неправильным.
Сейчас «регэкспы» с заменой даже в ворде есть.
solarplexus
04.08.2016 10:57-8Держать руку на мышке — плохой тон для программиста.
ivann
04.08.2016 15:18Только чтобы в Хабре на комментарий ответить:)
Даже в Хроме для перехода на другой адрес в той же вкладке не нужно мышку трогать, а уж в IDE и подавно.
hurricup
04.08.2016 11:12+7Какие-то притянутые аргументы про мышь. Текст выделяется Ctrl-Shift-стрелки. Для работы с диалогами есть либо хоткеи либо таб и энтер. Работаю в Win в IDEA, мышью при разработке не пользуюсь (наверное, практически не пользуюсь). Печатаю вслепую. Вим искренне не понимаю. Все мои дискуссии с фанатами вима заканчивались «я так привык/мне и так норм/я работаю не машинисткой, моя работа не быстро набирать/работать с кодом».
Из моих личных наблюдений сложилось мнение что пристрастие к виму сродни моему пристрастию к перлу. Это просто любовь. И тут не может быть объективных аргументов.
Единственный вменяемый аргумент который мне доводилось слышать — вим везде одинаков. Работаешь ты локально или удаленно с телефона с виндоус. Это правда, но если проект не разрабатывается исключительно удаленно, то последнее — редкость, форсмажор. В таких ситуациях и нано сгодится.
compdemon
04.08.2016 13:39+1Собственно, с использованием клавиатурных модификаторов в большинстве нормальных текстовых редакторов тоже можно быстро перемещаться по тексту при помощи «стрелок» — Ctrl+вправо/влево — «прыгаем» по словам, CTRL+вверх/вниз — «прыгаем» между абзацами, ctrl+PgUp/PgDwn — «бегаем» по страницам. и т.д. Таки не обязательно пользовать мышку, а ситуацию когда набор текста/кода постоянно и непрерывно был совмещен с навигацией по нему, даже в кодинге, я не представляю. Обычно либо то либо то, и передвинуть правую руку на стрелки для быстрой навигации, сделать переход и продолжить набор текста не так уж сложно.
Другое дело, что для этого хорошо бы иметь нормальную полноразмерную клавиатуру с полноценным командным блоком, ибо современные «дизайнеры» любят то блок со стрелками сделать в микроформате, то экспериментируют с расположением и наличием Insert/Delete и прочих допклавиш, а то и вовсе выстраивая их столбиком. (Отчасти я понимаю такие извраты в ноутбучном формате, когда нужно «впихнуть невпихуемое», но не понимаю как перенос данной концепции в десктопные клавы, так и использования ноутбучной клавиатуры при постоянном и объемном наборе, вместо того, чтобы подключить полноценную USB-клавиатуру).
Вообще же стенания поклонников VI/VIM о том, что их и VI не понимают, мне напоминают возмущения веганов.
«Вы просто десятипальцевым методом не владеете, вот и беситесь».
Ну и дискуссию по поводу удобства использования VI/VIM в качестве IDE можно закончить сразу, вспомнив основной аргумент, что VI легко превращается в IDE. Нужно всего-то: почитать доку, привыкнуть к стилю командному (!) редактирования, поставить пару десятков плагинов и написать под себя конфиг. Лично меня такой gentoo-style не устраивает.
Если мне нужен текстовый редактор — мне нужен именно текстовый редактор, а не коммандный процессор с функциями редактирования текста. Если IDE — значит полноценна IDE. Со всеми плюшками, которая она дает.
На вкус и цвет…ivann
04.08.2016 15:20Microsoft Natural с проводами имеет отлично расположенные клавиши. Жаль, выпускать перестали. Когда сломалась пришлось уже беспроводную покупать и она без нампада.
compdemon
04.08.2016 15:55Это какая? У нас в Украине Microsoft Natural Ergonomic Keyboard 4000 продается полным ходом. Если есть в кармане около $80 — без проблем.
Lindon_cano
05.08.2016 21:28$80? Это грабеж какой-то. В России вон Яндекс.Маркет показывает, что от 44 USD прямо ща можно взять.
daihatsu
05.08.2016 08:35-1> привыкнуть к стилю командному (!) редактирования
базовое привыкание — это всего лишь 20 минут прохождения vimtutor
Noahzgard
05.08.2016 12:15Нужно всего-то: почитать доку, привыкнуть к стилю командному (!) редактирования, поставить пару десятков плагинов и написать под себя конфиг.
И тем не менее в итоге мы не получим ничего даже близко напоминающего по удобству VS, JB, Eclipsedaihatsu
05.08.2016 12:54> И тем не менее в итоге мы не получим ничего даже близко напоминающего по удобству VS, JB, Eclipse
Это не всегда так:
IDEA — шикарна под Java.
Хороша под те языки, которые поддерживают сами разработчики — Python, Ruby…
Но скажем под Go — vim использует абсолютно тот же механизм предсказаний при наборе кода, что и IDEA — а именно написанный нашим соотечественником GoCode.
И от шикарного предсказания и от шикарного рефакторинга, которые есть в IDEA для Java, ничего выдающегося не остается — по сравнению с vim для Go.
lanseg
04.08.2016 11:17+12Пост можно было озаглавить «Нет, это ВЫ — говно, потому что ничего не понимаете!».
Или продолжайте использовать никудышный редактор кода своей IDE.
Придется потратить от нескольких недель до нескольких месяцев и первый опыт не будет приятным
Тратить аж несколько месяцев на обучение какому-то редактору, тогда как для эффективной работы в любой IDE достаточно пары часов, чтобы привыкнуть к интерфейсу и пары недель, чтобы привыкнуть к горячим клавишам.
Единственный повод немного знать vi/vim — редактирование файлов на хостах, где больше ничего нет.merlin-vrn
04.08.2016 11:37+2В моём случае vim вообще нет места — если где-то больше ничего нет, я настаиваю на том, чтобы оно там немедленно появилось. Не человек должен приспосабливаться, а компьютер.
lany
04.08.2016 11:27+15Хочу переименовать названия.
Пример №1: что делать, если ваш редактор не умеет сгенерировать объявление и тело метода одной атомарной командой.
Пример №2: что делать, если ваш редактор не имеет рефакторинга «выделить локальную переменную», который вызывается одной горячей клавишей.
Пример №3: что делать, если в вашем редакторе нет семантического выделения блоков CST-дерева.
Ну серьёзно. Я понимаю, что изучить vi может быть полезно, мало ли где окажешься. Я понимаю, что некоторые просто фанатеют от vi. Но заявлять «Или продолжайте использовать никудышный редактор кода своей IDE» просто глупо. В нормальных IDE (IDEA, Eclipse) всё из этой статьи можно сделать быстрее, удобнее и надёжнее.
TimsTims
05.12.2016 17:10> не надо так категорично говорить, что никто не понимал суть успеха доты
Согласен. Под «все» я подразумеваю «большинство».
Примерно такие были раньше посты https://blizzard.gg/forum/showthread.php?t=4658&page=1
И это уже на момент версии 6.35, т.е. дота уже вполне себе популярная карта. И таких комментаторов было не один и не два
это не FUN: 600 золотых монет за перчатку +6к агилити это м а р а з м, скажет любой…
ай нет -ЭТО ДОТА.И СЕТЫ такие же(слабенькие)… ужас..+1 +2 плюс девять максимум…
Даже с ШЕСТЬЮ разными сетами, герой не может разрушить защитную башню в одиночку(проверенно)-развеж это герой? (разве это нормально?)
к этому стоит прибавить постоянный отбор денег за смерть героя
крипты убивают -с трёх хитов… защитные башни -с четырех
Видимо я не прав но уж лучше:
-назвать перчатку «сверх перчаткой»
-прибавить +60 к агилити
-и продать за 300монет… логичнее ведь
Играть на старом добром брэнде «дота», и заниматься такими маразматическими изменениями которыми занимаеться автор, просто смешно.Пусть лучше сделает и покажет харезматических героев с 8-мью способностями вместо 4-ех
Собственно говоря проект-дота уже умер, но фрог всё ещё доказывает обратное, новой кучки нубов
develop7
05.08.2016 17:16+1Эй, так нечестно! Нельзя хотеть делать в редакторах текста операции, для выполнения которых они не приспособлены! Они от этого перестают выглядеть последним инструментом, который вам нужен! </irony>
daihatsu
05.08.2016 17:28+1Оно все есть в vim.
Только не в базе.
А ставится плагинами под конкретный язык программирования.
Он же универсальный редактор и под конкретный язык нужно включить ту или иную функциональность отдельно.
Первые 2 пункта я сходу знаю что нужно для моего языка программирования.
Третий — что-то смутно знакомое, точно к сожалению не скажу кто это реализует.
serf
04.08.2016 11:31+7Подобные статьи и желание постоянно доказывать что vim кому-то нужен только укрепляет мое отношение к почетателям этого текстового редактора как к придуркам которым больше нечем заняться как шлифовать свои навыки набивки текста. Продуктивная набивка текста не имеет ничего общего с продуктивной работой если ты не являешся машинисткой.
daihatsu
08.08.2016 06:59+1Для простой набивки текстов достаточно блокнота. Мощь вима проявляется при исправлениях исходников — что и является работой программиста.
Статьи появляются потому что кто-то делится своим опытом. Эта статья, согласен, несколько ангажированна, давящая на «ты тупой, если не используешь вим».
Исходя из того, что вим бесплатен и не рекламирует себя за деньги, стоит задуматься, — а почему так много статей собственно?
Я задумался. Холивары не убедили. Обучился раболе с вим (это недолго, вопреки заблуждениям), вполне достаточно для начала пройти vimtutor. Чтобы делать собственные выводы, а не в стиле «не читал, но осуждаю».
merlin-vrn
04.08.2016 11:34+9Как показала история развития техники, самыми простыми являются интерфейсы без состояния. То есть, одна и та же кнопочка всегда выполняет одну и ту же функцию. Это позволяет меньше удерживать внимание на том, в каком состоянии сейчас находится интерфейс и больше внимания уделять собственно решению конечной задачи.
Например, подумайте про интерфейсы цифровых камер, сколько тут пересудов. И поскольку по сути они все равноценны для подавляющего большинства задач, споры Canon/Nikon/Sony/etc часто сводится к обсуждению «как неудобно делать то-то и то-то на такой-то камере», т. е. к эргономике интерфейса.
А почему с этим возникают проблемы у разработчиков… Ну, в камере очень дофига разных функций, и нужно как-то обеспечить к ним доступ. Самым первым появляется отдельный режим «меню настройки», а там страницы, а ещё режим «просмотра отснятого» и так далее… и в этих режимах органы управления, которые устанавливают диафрагму, выдержку и так далее, имеют другие функции.
И вот пока ты там копался перед тобой возник кадр, ты инстинктивно ставишь выдержку, спуск… и фейл, потому, что ты был в меню и выдержка не поменялась, а ты там вместо этого что-то прокрутил! У меня было такое, это очень обидно.
Более узкоспециализированный пример — микшерные пульты. Если у цифрового пульта «аналоговое» управление, т.к. каждая ручка ответственна только за одну свою конкретную функцию — это прямо пишут одним из первых пунктов, как преимущество! Ну и всё равно тут есть проблема — часто бывает, что есть «страницы», когда условно на 32-канальном пульте всего 16 фейдеров, и ты можешь переключать, 1-16 каналы ты сейчас рулишь, или 17-32; а для тембров и сабмиксов вообще выделен один набор органов, и чтобы поменять что-то в канале, нужно его выбрать и тогда только крутить. Некоторые приёмы, которые раньше работали на аналоговых пультах, тут недоступны — например, элементарно невозможно поменять панораму сразу на двух каналах (плавно «развести» их налево-направо) — крутилка панорамы одна, приходится регулировать каналы по очереди!
Именно всё это это и является причиной того, что «старшее поколение» с таким трудом осваивает современную технику, компьютер, да и вообще того, что компьютер приходится осваивать.
У вас конечно есть предолжение, как добиться подобного в vi — как сделать так, чтобы не нужно было думать о том, какие функции у кнопок в данный момент. Это уже ближе к идеалу, но выглядит как костыль: мы должны сознательно всегда входить в особый «модальный» режим ввода и сразу по окончании не забывать из него выходить. Очевидное развитие этой идеи в направлении упрощения — чтобы отдельного режима вообще не было… и мы приходим к традиционному редактору.
Обратите внимание, самым простым интерфейсом является карандаш. Никаких состояний в нём нет!Alexeyslav
04.08.2016 14:47+1У этой проблемы есть решение. Правда пока дорогое — командные клавиатуры. такие используют в магазинах на кассовых терминалах.
Продаются, имеют разные размеры как по количеству клавиш, так и размерам самих клавиш.
Можно с такую забить все нужные комбинации и носить с собой работая в чужих системах.merlin-vrn
04.08.2016 15:08+1Да. То есть, специализированные клавиши.
Но стрелочки, функциональные, pgup/pgdown/insert/etc уже есть, их не надо носить с собой!
Alexey2005
04.08.2016 19:58Некто Лебедев предлагал для этого клавиатуру с изменяемыми надписями, когда каждая клавиша представляет собой небольшой программируемый экранчик. И даже вроде бы удалось изготовить целую серию таких клавиатур. Но в итоге, похоже, всё почему-то заглохло.
merlin-vrn
04.08.2016 22:15+3Потому, что он сделал неудобное ненадёжное тормозное говно. Через несколько часов работы изображения на клавишах начинали появляться с ощутимой задержкой после нажатия элементарного шифта. Клавиши банально ломались. Клавиатура получилась как кирпич, тяжёлая и с неудобными клавишами. Конечно, заглохло.
s-kozlov
04.08.2016 18:15Самый простой интерфейс — телепатия.
merlin-vrn
04.08.2016 22:16Да ну? Продемонстрируете?
s-kozlov
05.08.2016 06:31+1Не могу :( Но без сомнения идеальный интерфейс — это когда его нет, а его функции выполняются.
daihatsu
05.08.2016 09:07Ну так то уже несколько десятилетий научились снимать с мозга простейшие команды.
Сейчас осваивают управление мыслью для целей парализованных.
Серьезно.
anton0xf
04.08.2016 18:16+3Я бы ещё сослался на книгу Джефа Раскина — Интерфейс: новые направления в проектировании компьютерных систем. Он там, в том числе, достаточно убедительно обосновывает вред модальности для удобства интерфейса.
Delphinum
04.08.2016 23:02-1Вы забыли добавить, что в этой книге речь идет о GUI, верно?
merlin-vrn
05.08.2016 08:53Заметьте, про что бы ни шла речь в книге, модальность, куча режимов и состояний, в которых привычные контролы принимают другие функции — это плохо и отвлекает внимание всегда, какой бы это интерфейс ни был.
В командном интерфейсе, например, не должно быть ничего, кроме команд. Клавиатура должна быть выделена эксклюзивно под набор команд, в идеале — даже освобождена от интерактивной реакции на ответы этих команд.
Delphinum
05.08.2016 11:03Заметьте, про что бы ни шла речь в книге, модальность, куча режимов и состояний, в которых привычные контролы принимают другие функции — это плохо и отвлекает внимание всегда, какой бы это интерфейс ни был
Такое чувство, что у вас не работает логика… Что значит: «про что бы ни шла речь в книге»? Книга о GUI, мы о CLI, чувствуете разницу? То что удобно, модно, молодежно под GUI, может быть вообще не применимо для CLI и наоборот.s-kozlov
05.08.2016 11:35-1Книга о GUI, мы о CLI, чувствуете разницу? То что удобно, модно, молодежно под GUI, может быть вообще не применимо для CLI и наоборот.
«Нет, правда… ну как же можно даже сравнивать? Тут фут. А тут ярд. Фу-у-ут (глаза в кучку)!.. Яа-а-ард (глаза в разные стороны)!.. Фу-у-ут!.. Яа-а-ард!.. Фу-у-ут!.. Яа-а-ард!.. Не-е, никак не сравнить.» (http://www.eldar.com/node/263)
> модальность, куча режимов и состояний, в которых привычные контролы принимают другие функции — это плохо и отвлекает внимание всегда, какой бы это интерфейс ни был
При чем тут GUI/CLI? Мозги у людей не меняются при переходе от одного к другому.Delphinum
05.08.2016 11:39-2Мда… Вы приведите пример книги, описывающей удобный интерфейс CLI, а после можно будет о чем то конкретно поговорить.
Кстати, вы в курсе, что GUI это модальный интерфейс?merlin-vrn
05.08.2016 12:04+2Во-первых это неверно (естественные интерфейсы по сути ближе всего к GUI и не могут быть модальными, а значит сквеоморфные приложения, которые их имитируют, тоже немодальны), во-вторых — не имеет отношения к вопросу.
Delphinum
05.08.2016 12:06-1во-вторых — не имеет отношения к вопросу
Как же не имеет отношения, если вы приводите в пример книгу, которая утверждает неудобство модальных интерфейсов и при этом описывает GUI интерфейс? ) Имеет еще какое отношение.
Во-первых это неверно
Ну как же не верно, вы должны переключаться от одного устройства ввода к другому, что создает модальность на аппаратном уровне.merlin-vrn
05.08.2016 12:08Нет, никакой модальности это не создаёт. Модальность — это когда я использую одно устройство для активации нескольких разных функций. Я должен следить, какую функцию сейчас я активирую, что плохо. Наоборот, когда для каждой функции своё устройство ввода — это и есть немодальный вариант.
Delphinum
05.08.2016 12:11-1Вы используете два устройства для работы с одним интерфейсом, что делает интерфейс модальным. Возможно это для вас открытие, но что поделать. Как и в Vim, вы будете переключаться между этими устройствами как между режимами.
merlin-vrn
05.08.2016 12:21Нет, я смогу их использовать одновременно. Возможно, смогу одну и ту же функцию вызывать разными способами, и буду выбирать подходящий в зависимости от ситуации; это весьма улучшает интерфейс. Ну примерно как одну и ту же клавишу на фортепиано я могу нажимать разными пальцами, в зависимости от положения рук, в зависимости от того, зачем мне эта клавиша нужна.
Вообще ещё раз: модальным интерфейс делается, когда некоторая кнопка перестаёт на время вызывать свою функцию, или начинает вызывать другую. Например, при вводе текста я жму "ввод" для перевода строки, а мне операционка выкидывает вообще не относящееся к редактору сообщения, перехватившее это нажатие и получается, что я отправил "ввод" не туда. Вот за это надо убивать, это плохо и поэтому я виндой пользоваться не собираюсь. В случае в вимом, если я в режиме ввода, кнопка i означает ввод символа i, а в командном режиме — переход в режим ввода. Я не могу просто в случайный момент времени не глядя нажать i и быть точно уверенным в том, что произойдёт. Это модальный интерфейс и это плохо.
А вот если взять синтезатор и завернуть в него две клавиатуры, уверен: вот эта клавиша вызовет этот звук и всё, других действий ожидать не придётся. Хоть десять клавиатур и другие контроллеры. Я могу бегать между клавиатурами, но вон та клавиша вон той клавиатуры всегда вызывает вот этот же самый звук.
Delphinum
05.08.2016 12:29-1Нет, я смогу их использовать одновременно
Так же одновременно, как и режимы Vim.
Возможно, смогу одну и ту же функцию вызывать разными способами
Как и в Vim.
модальным интерфейс делается, когда некоторая кнопка перестаёт на время вызывать свою функцию, или начинает вызывать другую
Нет, модальный интерфейс это такой интерфейс, который поддерживает различную логику обработки команды в зависимости от некоторых условий (будь то состояние системы или используемый манипулятор).
Я не могу просто в случайный момент времени не глядя нажать i и быть точно уверенным в том, что произойдёт
Конечно не можете, вы же пользуетесь Vim, а не бегаете ногами по клавиатуре. У вас для работы есть такая вещь как — мозг.
А вот если взять синтезатор и завернуть в него две клавиатуры, уверен: вот эта клавиша вызовет этот звук и всё, других действий ожидать не придётся
Не знаю чего вас все время уводит в сторону, но синтезатор тоже имеет модальный интерфейс и в зависимости от текущих настроек, одна и та же клавиша может давать различный звук. Это тоже по вашему плохо?
s-kozlov
05.08.2016 14:57+1Мир не черно-белый. Если на устройстве только 2 кнопки и больше ничего, то лучше хреновый модальный интерфейс, чем никакого. Но это не значит, что надо злоупотреблять режимами. Кучу клавиш изобрели потому, что это удобно. Меня бесят клавиатуры без цифрового блока и с дурацким Fn. Если кто-то считает их более удобными, то я сомневаюсь, что мы хоть в чем-то можем согласиться.
Delphinum
05.08.2016 14:58-1Вот уже и модальный интерфейс перестал казаться таким ужасным.
s-kozlov
05.08.2016 18:57-1Как бы вам объяснить… Представим, что я натыкаюсь на статью, где расхваливают наркотики: какие они клевые, как здорово ими пользоваться и прочее. В конце статьи
обдолбанныйавтор говорит, что мы (не наркоманы) ничего не понимаем в жизни, и недоумевает, почему нормальные люди считают нариков придурками. В комментах один изне осилившихпротивников наркомании кидает ссылку на исследование вреда наркотиков, на что ему отвечают: «Но в той же самой статье, на которую вы ссылаетесь, пишут, что наркотики применяются в медицине». Вопрос: следует ли из этого, что все люди должны сидеть на героине?Delphinum
05.08.2016 19:09Очередной съезд с темы. Я не поддерживаю идей автора статьи, так что отвечать за него не могу. Я лишь оспариваю вредность модального интерфейса для CLI. Нет исследований, которые показывали вред модального интерфейса для CLI. Ссылочка на книжку по GUI, в которой автор рассуждает, как правильно нужно располагать кнопочки в окошке к CLI не имеет никакого отношения и не является исследованием.
s-kozlov
06.08.2016 05:29-1Вред модальности не специфичен для GUI, потому что его причины не специфичны для GUI.
http://artgorbunov.ru/bb/soviet/20160209/:
«Интерфейс называется модальным, если в нём есть состояния, которые человек не осознаёт во время жеста, но в которых этот жест интерпретируется по-разному.
Ошибка, совершённая человеком из-за того, что он не осознавал, в каком состоянии находился интерфейс, и получил не тот результат жеста, которого ожидал, называется модальной ошибкой.»
«Модальность — признак плохого интерфейса, а не, скажем, рассеянности пользователя. Совершенно естественно, что внимание человека направлено на его задачу, а не на состояние интерфейса.»
И не надо мне больше рассказывать, что модальность есть везде. Я в курсе. Вот только меня бесит, когда я, случайно нажав Alt, обнаруживаю, что не ввожу текст, а бегаю по меню, а фанбои вима, наоборот, кричат: «Нужно больше модальности,мне не чем загрузить свой мозг».Delphinum
06.08.2016 10:46Совершенно естественно, что внимание человека направлено на его задачу, а не на состояние интерфейса
Как же тогда вы объясните то, что я не совершаю модальных ошибок при работе в Vim? Ниразу. Никогда. м?
фанбои вима, наоборот, кричат
Никто никогда так не кричал. Приведите хотя бы один пример такого требования. Это скорее вы все ноете что вам модальность Vim жизнь портит, хотя все пользователи Vim говорят об обратном.s-kozlov
06.08.2016 17:20-3Это скорее вы все ноете что вам модальность Vim жизнь портит
А «вы все» — это кто? Я в их число точно не вхожу, так как, к счастью, не пользуюсь вимом. Как его модальность может портить мне жизнь?Delphinum
06.08.2016 18:45Тогда зачем вы о ней говорите? Пытаетесь кого то убедить, что модальность это плохо и т.п.
s-kozlov
06.08.2016 18:48-4Ну вот, теперь вы видите, что я говорю, а не ною. Уже лучше.
Тогда зачем вы о ней говорите?
Потому что хочу. ИМХО человек может говорить о чем-либо если хочет, а не только если у него бомбануло.Delphinum
06.08.2016 18:53Тобишь вы просто болоболите? Ну ясно, вас последнее время таких все больше (
s-kozlov
07.08.2016 06:51-3Ну то бишь, по-вашему, если человек говорит, что хочет, то он балаболит, а если то, что не хочет, тогда не балаболит? Или как? Кто не балаболит по версии Delphinum? Тот, у кого бомбит?
Delphinum
07.08.2016 11:24+1Я не желаю продолжать разговор с человеком, который совершенно не знаком с объектом обсуждения и целью разговора у которого является:
Потому что хочу. ИМХО человек может говорить о чем-либо если хочет...
Поговорите о чем хотите с друзьями на работе, мне ваши желания не интересны.s-kozlov
11.08.2016 15:03-1В треде речь шла о модальности. Я тоже обсуждал модальность. Потому что хочу и имею право. И я ни на кого не навешиваю ярлыки «балабол» (пишется именно так, учите русский) за то, что человек это право реализует. В отличие от вас.
А если у вас от этого бомбит, то не пошли бы вы по известному адресу, а?Delphinum
11.08.2016 16:48+1С чего вдруг у меня должно бомбить от безосновательных заявлений? ) поверьте, я уже все эти темы по многу раз обсудил и хорошо знаю к чему тот или иной аргумент с вашей стороны приведет наш диалог, от того мне и не хочется продолжать
poxu
06.08.2016 11:13«Интерфейс называется модальным, если в нём есть состояния, которые человек не осознаёт во время жеста, но в которых этот жест интерпретируется по-разному.>
Ключевое тут не осознаёт. Пользователь вима всё прекрасно осознаёт и модальность ему помогает, а не мешает
s-kozlov
06.08.2016 17:14-3Я уже понял, что пользователь вима — это сверхчеловек, у которого объем быстрой памяти не ограничен 5-9 объектами. Он всегда и всё помнит и никогда не ошибается. Нам, обычным людям, их не понять. Если наш мозг занят задачей, ему не очень хочется держать в голове какие-то режимы и прочую хрень.
Если вам так нравятся режимы, можете настроить свой любимый редактор так, чтобы там всё делалось двумя клавишами: 0 и 1. Тогда не то что руки не надо будет лишний раз отрывать от «ФЫВАОЛДЖ» — вообще можно будет одним пальцем печатать. Красота!poxu
06.08.2016 17:33+3Вы неправильно поняли, это не пользователь вима сверхчеловек, это вим устроен так, что пользователь всегда осознаёт в каком режиме находится.
0 и 1 находятся далеко друг от друга и в верхней части клавиатуры. Нажимать их поочерёдно одним пальцем очень неудобно. Ничего о том, как переключать режимы в вашем предложении вообще нет. Об эргономике интерфейсов вы явно вообще даже не думали.
s-kozlov
06.08.2016 18:55-1Это был сарказм. Я не предлагаю на полном серьезе настроить всё на 2 клавиши. Я всего лишь взял идеи «в модальности нет ничего плохого» и «главное — меньше двигать руками» и довел их до абсурда. Может, кого-то это заставит задуматься. Если человек согласен, что набирать всё двумя клавишами — это бред, то у него есть шанс понять, почему я не хочу менять клавишу «Home» на «сменить режим и набрать комбинацию
на эльфийском».Delphinum
06.08.2016 19:00сменить режим и набрать комбинацию
на эльфийском
Вот он уровень знаний хейтеров Vim об этом редакторе…
poxu
06.08.2016 23:16+2Если оставить только две клавиши, то двигать руками действительно не придётся, но вот нажатий придётся делать ох как много. Это нигде не поощряется. В том числе не поощряется в виме. Вы не довели до абсурда идею модальности, вы придумали свой собственный вариант крайне неудобного интерфейса редактирования текста.
Но давайте доведём до абсурда идею работы без модальности вообще. Уберём из операционной системы переключатель языков и добавим на клавиатуру клавиши для символов всех языков, которыми вы пользуетесь. Как — хорошее обоснование для того, чтобы никогда не пользоваться клавишей Home?
Delphinum
06.08.2016 23:48+1Модальность это ужасно во всех ее проявлениях! Не важно, что мы сталкиваемся с ней каждодневно, в книжке написано что это от лукавого! *сарказм*
anton0xf
08.08.2016 13:45Но вы же, надеюсь, не будете спорить, что постоянно переключаться между раскладками и помнить (или постоянно проверять) текущую раскладку — это не удобно и сбивает? Именно об этом и "написано в книжке".
Другое дело, что для ввода на разных языках не так много вариантов, как это можно организовать, и загромождать стол несколькими клавиатурами кажется неудобным. А педали не слишком распространены (и тоже не факт, что это удобно). Т.е. тут модальность выбрана, как меньшее зло. Но злом она от этого быть не перестаёт.
Про vim тут, кстати, уже писали, что модальность была выбрана для борьбы с (более серьёзными) проблемами медленной реакции терминалов, с которыми его тогда использовали. И тогда это было оправдано. Сейчас же эти проблемы далеко не так актуальны, и есть примеры интерфейсов, позволяющих точно так же не отрывать руки от клавиатуры, имея при этом гораздо менее модальный интерфейс (привет от емаксеров). Так что, чтобы утверждать, что "режимы нужны и полезны всем", вместо "ну мне так нравится", нужны какие-то доводы.Delphinum
08.08.2016 13:54-1это не удобно и сбивает?
Конечно буду спорить, учитывая что я использую только 2 языка. Попробуйте использовать английский как основной, а русский как вспомогательный (аналог normal mode и insert mode в Vim) и как только вы завершите ввода на русском, сразу (читать — машинально) переключайтесь на английский. Вы заметите, что проблема раскладки сразу исчезает, так как вы всегда знаете, что вы либо на английской раскладке, либо в данный момент набираете на русском.
Про vim тут, кстати, уже писали, что модальность была выбрана для борьбы с (более серьёзными) проблемами медленной реакции терминалов
Это чушь. Модальность была выбрана в первую очередь как средство запихнуть на 33 буквенные клавиши как команды, так и ввод, и, как я считаю, до сих пор это остается прекрасным решением.
точно так же не отрывать руки от клавиатуры
привет от емаксеров
Вы про «перелом мизинца»? А ничего, что используя Shift, Ctrl, и особенно Alt таки приходится отрывать пальцы от базовой позиции для слепого десятипальцевого?
Так что, чтобы утверждать, что «режимы нужны и полезны всем», вместо «ну мне так нравится», нужны какие-то доводы
Если вы внимательно прочитаете комментарии в этой и соседних ветках, то убедитесь, что ни я, ни кто либо еще из пользователей Vim ни разу не настаивал на том, что модальность необходима во всех редакторах (разве что на это намекал автор данной статьи, но я уже высказался по этому поводу), а вот предположение, что модальность это плохо при любых раскладах часто звучала от лиц, слабо знакомых с редактором и использующих мышь для программирования (судя по реакциям), так что ваш коммент должен обращаться не ко мне.
s-kozlov
07.08.2016 07:03-4Нет. Во-первых, у меня есть Punto Switcher. Во-вторых, вы правда не видите принципиальной разницы между «добавить кучу кнопок в клавиатуру» и «искусственно ограничить себя в использовании существующей клавиатуры, на которой и так не очень много кнопок»?
poxu
07.08.2016 12:00+2Punto Switcher не убирает режимы, он только меняет их без участия пользователя. Тот факт, что одним и тем же жестом может достигаться разный результат никуда не уходит. И, так как пользователь в переключении языка не участвует, он далеко не всегда осознаёт какой язык сейчас активен.
Что касается второго пункта — я не мог бы сказать лучше. Доведение до логического завершения идеи о том, что модальности быть не должно, действительно требует «добавить кучу кнопок в клавиатуру», что я и предложил.
А вот вы ранее, когда доводили до абсурда идею о том, что модальность это хорошо — предложили «искусственно ограничить себя в использовании существующей клавиатуры, на которой и так не очень много кнопок». К модальности такое ограничение не имеет вообще никакого отношения — оно просто демонстрирует, что количество клавиш должно быть больше двух.
Так что высказывания дейсвительно разные — одно про то, что будет если убрать модальность, а другое про то, что будет если уменьшить количество клавиш на клавиатуре до двух.
Delphinum
06.08.2016 18:47+1Если наш мозг занят задачей, ему не очень хочется держать в голове какие-то режимы и прочую хрень
Судя по вашим словам, вы можете либо думать над задачей, либо пользоваться клавиатурой, ведь для печатания необходимо держать в голове расположение каждой клавиши. А хотя нет, есть ведь такая вещь как подсознание, которое умеет заниматься такого рода рутиной самостоятельно, не отвлекая мозг.s-kozlov
06.08.2016 19:01-3Вообще-то «пользоваться клавиатурой в обычной программе, где переход в начало строки — Home, сохранение — Ctrl+S и т.д.» и «пользоваться клавиатурой в виме, набирая неинтуитивные комбинации, которые надо специально заучивать, попутно отслеживая режимы» — это небо и земля. Первое интуитивно понятно и работает более-менее одинаково во всех нормальных программах, второе нужно этими качествами не обладает. В топку.
Delphinum
06.08.2016 19:05+1набирая неинтуитивные комбинации, которые надо специально заучивать
Хмм… А я то думаю: «откуда у меня с рождения знания о действиях связанных с Home и Ctrl+S?» — вы мне прям глаза открыли *сарказм*
попутно отслеживая режимы
Home в Vim не зависит от режима. Это так, к сведению.
интуитивно понятно
Да, если я нажимаю Ctrl+S, сразу понятно, что речь о Save, а если я нажимаю i, то никак не допру что речь идет о insert. Действительно, совершенно не интуитивно ))) Мда… *сарказм*s-kozlov
07.08.2016 07:07-4Вообще-то Ctrl+S интуитивно понятно потому, что во всех вменяемых программах эта комбинация отвечает за сохранение. Я могу переиспользовать уже наработанный опыт. В большинстве программ я нажму Alt+F4 — закроется окно, а в виме? Insert, :, q. Вы серьезно?
Delphinum
07.08.2016 11:28+2интуитивно понятно потому, что во всех вменяемых программах
Ахахах ))) Ваша диалектика на уровне пятиклассника, серьезно )))
Я могу переиспользовать уже наработанный опыт
Интуитивность != привычность, вот так поворот, да? )))
В большинстве программ я нажму Alt+F4 — закроется окно
Ахахаха )) Мне уже становится смешно ) Вы давно компьютером пользуетесь? Что это еще за большинство программ, которые закрываются по Alt + F4? У меня ни одна так не закроется, а знаете почему? Потому что Ubuntu + Xmonad. Это сочетание тоже не интуитивно и не привычно по вашему? А что привычно современным «домохозяйкам»? ))
Insert, :, q. Вы серьезно?
Прежде чем нести чушь и пытаться спорить о Vim, вы бы хоть ознакомились с предметом обсуждения…
А хотя нет, лучше не нужно ни с чем ознакамливаться и продолжать сотрясать воздух пустыми комментариями, которые вам «хочется писать» )))
poxu
07.08.2016 12:04В версии вима под Windows Alt+F4 закрывает окно с вимом. Это стандартное поведение Windows а не всех программ вообще.
Delphinum
07.08.2016 12:10+1Совершенно так, но в мире помимо Windows существует еще кучка других ОС, в которых это поведение не является стандартным и «интуитивным». По логике товарища, при использовании этих ОС нельзя переиспользовать полученный ранее опыт
домохозяйки, а следовательно — это плохие ОС и их использовать не нужно, а все кто тратит свое время на изучение другой модели использования этих ОС, попусту его теряют )
Не читать домохозяйкамЖаль что вопрос: «а зачем нам, будущим программистам, изучать философию?» — в современных вузах так часто задается (s-kozlov
11.08.2016 15:09-4У меня Ubuntu, Alt+F4 закрывает окно того же Nautilus. Это поведение по умолчанию, я его не менял. Кого вы хотите обмануть?
Ахахах ))) Ваша диалектика на уровне пятиклассника, серьезно )))
Ахахаха )) Мне уже становится смешно ) Вы давно компьютером пользуетесь?
Тон сбавьте. Вы не в подворотне.Delphinum
11.08.2016 16:49-1Кого вы хотите обмануть?
Потому что Ubuntu + Xmonad
Тон сбавьте. Вы не в подворотне
А похоже на то )daihatsu
12.08.2016 07:54Вы написали:
Совершенно так, но в мире помимо Windows существует еще кучка других ОС, в которых это поведение не является стандартным и «интуитивным».
Вам ответили:
У меня Ubuntu, Alt+F4 закрывает окно того же Nautilus. Это поведение по умолчанию, я его не менял. Кого вы хотите обмануть?
А вот это ваше ПО совершенно не стандартно, а напротив — довольно редкое:
Потому что Ubuntu + Xmonad
На подавляющем числе девайсов стоит или Windows или Ubuntu с стандартными настройками или т.п. Linux с подобными настройками, где Alt+F4 работает так, как ожидается.
Delphinum
12.08.2016 11:22-1А вот это ваше ПО совершенно не стандартно
Да ну? Ок, открывайте MacOS, эта нигодница использует Com+W/Com+Q, вот безполезная ОСь, правда?
На подавляющем числе девайсов стоит или Windows или Ubuntu с стандартными настройками или т.п.
Во-первых:
В большинстве программ я нажму Alt+F4 — закроется окно
Что это еще за большинство программ, которые закрываются по Alt + F4?
Не хотите ли вы внимательно прочитать мой комментарий и понять, что я говорю об уровне знаний собеседника, а именно о том, что он ожидает реакции именно приложения на Alt+F4, но мы то с вами знаем что приложение не реагирует на Alt+F4, на эту комбинацию реагирует ОСь, а приложение уже реагирует на kill. Об этом мой собеседник не знает, потому либо попытался съехать с темы унификации интерфейса ПО в тему унификации интерфейса ОСей, либо просто запутался.
Во-вторых:
У меня ни одна так не закроется, а знаете почему? Потому что Ubuntu + Xmonad. Это сочетание тоже не интуитивно и не привычно по вашему? А что привычно современным «домохозяйкам»?
Если вы прочитаете внимательно и эту часть моего комментария, то заметите, что я прямо намекают на замешанность именно ОСи в работе горячих клавиш, а не приложений. После чего задаю вполне резонный вопрос: «что привычно современным „домохозяйкам“?» — указывая на то, что программист это не «домохозяйка» и его не должен смущать непривычный интерфейс используемой ОСи, наоборот, он должен настраивать его под свои нужды, а не плеваться в сторону конкурирующего интерфейса потому, что он для него «непривычен», как делают «бухгалтера» и «девочки дизайнеры».
Такое ощущение, что я в детский сад попал и все мои комментарии нужно разжевать, иначе читатели давятся.s-kozlov
13.08.2016 13:23-1программист это не «домохозяйка» и его не должен смущать непривычный интерфейс используемой ОСи, наоборот, он должен настраивать его под свои нужды
Чушь. Программист — это не только не домохозяйка, но и не настройщик интерфейсов чужих программ. Всё, что он должен, — писать и поддерживать код. Точка. Захочет — будет настраивать редактор, не захочет — выберет одну из мощных, уже настроенных IDE.
А те, кто агрессивно агитирует тех же джавистов отказаться от Idea ради vi, — придурки и есть.Delphinum
13.08.2016 13:42-1Чушь. Программист — это не только не домохозяйка, но и не настройщик интерфейсов чужих программ. Всё, что он должен, — писать и поддерживать код. Точка
Поколение программистов-домохозяек )
poxu
13.08.2016 14:01А те, кто агрессивно агитирует тех же джавистов отказаться от Idea ради vi, — придурки и есть.
А что думаете про тех, кто призывает отказаться от vi, ради Idea?
Delphinum
13.08.2016 14:26Я встречал «программиста», который не мог собрать свой java-проект без помощи используемой им IDEA, не смотря на то, что у него был готовый Gradle. Печальное зрелище… ((
anton0xf
06.08.2016 17:35-1Вы путаете. Vim — это TUI или GUI (есть же ещё gvim).
Delphinum
06.08.2016 18:48Совершенно так, но это не имеет значение.
anton0xf
06.08.2016 19:00Конечно имеет. Т.к. TUI — это, по сути, GUI нарисованный в терминале псевдографикой, то все ваши комментарии в этой ветке теряют всякий смысл. И тематика упомянутой мной книги в одинаковой мере относится как к GUI, так и к TUI.
Delphinum
06.08.2016 19:02+1Нет, TUI это не по сути GUI. Более того, графическая часть интерфейса Vim (если уж мы заговорили о TUI) не имеет модальности, а его текстовая часть (которая и является CLI по сути) модальна, но это уже не TUI.
saboteur_kiev
06.08.2016 22:34Как я уже писал ранее, vi был создан не только тогда, когда графического интерфейса еще не существовало, но он так же был приспособлен для работы через терминал, чуть позже терминал стал не только локальный, но и удаленный, телнет и ssh.
А ведь даже много лет спустя, даже сегодня не так много хороших и удобных редакторов, которые работают в терминале через ssh. И vi среди них один из лучших.
Skorpyo
04.08.2016 11:52+1Vi/Vim выполняют свою работу, а IDE свою. Подправить один файлик или следить за маленьким проектом — это одно. Другое дело, когда в проекте тысячи классов со сложными зависимостями. Да и вдобавок ты не знаешь весь проект наизусть. IDE придумали далеко не глупые люди. Хотя использование мыши и вызывает дискомфорт, моментальный переход по классам/методам и автокомплит экономят намного больше времени. Снипеты и макросы — тоже неплохое подспорье. Это конечно не мощные команды vim, но они расширяют спектр возможностей.
Вывод из этого один. Я не понимаю людей, которые используют vim для написания кода. В статье уверенно доказывается, что vim намного лучше всего остального, как текстовый редактор. Но это и есть текстовый редактор. Многие сейчас использует IDE. Но IDE — это не текстовый редактор. У него совсем другие функции.
Вывод в статье совсем неадекватный. Интересная статья, а посыл в ней грязный. Считая себя самым умнын, автор убеждает всех в обратном.
Спасибо за перевод. Несмотря на посыл статьи, материал очень познавательный.
Toledo
04.08.2016 11:52По-моему, просто не нужно подменять понятия и сравнивать «редактор» и «интегрированную среду разработки». Я уверен, что как редактор vi/vim действительно хорош, может даже наилучший. Но он не будет лучше, чем полноценная, узкоспециализированная (для технологии, языка) среда разработки, которая учитывает большинство (если не все особенности) технологии/языка, и имеет огромный набор сопутствующих инструментов для разработчика.
yul
04.08.2016 11:54+3Те, кто привык к виму, будут продолжать им пользоваться, но новых адептов он уже вряд ли завоюет. Текстовые редакторы в IDE уже давно не убогие, то же контекстное выделение по CTRL+W в IDE от jetbrains для меня во многом проще, удобнее и нагляднее, чем отсчитывать скобочки для команды vim'а (а если ошибся, отменять и заново, потому что визуально не проконтролируешь в командном режиме).
Одно время пользовался vim-плагином, но в некоторых случаях он работал некорректно, так что просто забросил его. Потом пришло понимание, что при наборе текста бонусов от vim практически нет, при редактировании с лихвой хватает возможностей IDE, и, в конечном счете, выигранные миллисекунды не сложатся в сколько-нибудь значимую разницу, все-таки программистам не за набор текста платят.
Кстати, еще постоянно забывают о том, что для выхода в командный режим (то есть довольно часто) надо нажимать Esc, который, вообще-то, находится ничуть не ближе, чем курсорные клавиши, которые так не любят адепты.Miklos
04.08.2016 12:12-2Вы явно не осилили. Скобки считать не нужно, esc использовать не обязательно.
По теме: чем продуктивнее инструмент, тем более высок порог входа и кривая обучения. Я знаю людей, которые не осилили ide и продолжают писать в notepad++. Знаю людей, которые исользуют ide, но абсолютно не понимают зачем она им.
Сам использую PhpStorm с нашлёпкой IdeaVIm.merlin-vrn
04.08.2016 12:21+3чем продуктивнее инструмент, тем более высок порог входа и кривая обучения
Obvious false.
Резко повысить продуктивность фотографирования позволил автофокус, а позже — возможность немедленно видеть результат. И первое, и особенно второе снизило порог входа и кривую обучения в фотографирование.Miklos
04.08.2016 12:24-3Я думал мы редакторы и ide обсуждаем.
merlin-vrn
04.08.2016 12:52+2Чтобы опровергнуть какое-то утверждение, достаточно привести контрпример. Ваш коммент выглядел так, как будто вы берёте какую-то общую истину, которую потом применяете к частному случаю — редакторам/ide. Я ответил, что истина вовсе не истина, а значит и выводы из неё делать нельзя.
Даже если это ваше утверждние обусловить, что касается оно только редакторов, оно не становится вернее. Конечно, такой же яркий контрпример я не смогу привести, но вот kwrite однозначно продуктивнее notepad, тем не менее порог вхождения в него как минимум не выше, а с учётом некоторых особенностей и настроек по умолчанию — он наверняка ниже. В любом случае, доказательств утверждения «чем продуктивнее инструмент, тем более высок порог входа и кривая обучения» всё равно нет, оно голословно.Miklos
04.08.2016 14:09-7Ваши же слова можно обратить против вас. Доказательств, что утверждение «чем продуктивнее инструмент, тем более высок порог входа и кривая обучения» голословно нет. Печатая двумя пальцами быстро упрёшься в потолок скорости, придётся осваивать десятипальцевый.
И вы прекрасно понимаете о чём я писал. Этот снобизм не уместен.
yul
04.08.2016 17:34+1Я говорю про удобство, а вы мне «не осилили». Зачем мне его «осиливать», если мне платят не за набор текста, а за написание программ, время на набор собственно текста мизерное, да и вообще набор и размышления идут параллельно, так что есть ли вообще выигрыш по времени — вопрос спорный. Так какой смысл осиливать? Я лучше «осилю» новую книгу по профилю.
s-kozlov
04.08.2016 18:22+3А это такой вид мазохизма — «осиливать» что-то, создавать себе трудности на ровном месте и героически их преодолевать.
Delphinum
04.08.2016 18:26то же контекстное выделение по CTRL+W в IDE от jetbrains для меня во многом проще, удобнее и нагляднее, чем отсчитывать скобочки для команды vim'а
Вы явно не осилили. Скобки считать не нужно, esc использовать не обязательно
Вы говорите что в Vim нужно отсчитывать какие то скобочки, а человек вам говорит, что «отсчитывать скобочки для команды vim'а» не нужно. Отсюда делается вывод, что вы просто не осилили редактор и ваше незнание выдаете за кривость Vim.
varanio
04.08.2016 12:21+9> Или продолжайте использовать никудышный редактор кода своей IDE. Но, в любом случае, никогда больше не заявляйте, что пользователи vi придурки.
Вы меня простите, но автор явно не пробовал продукты от JetBrains.
Где можно одной кнопкой сделать extract method большого куска говнокода, и он правильно поймет, какие переменные должны быть на входе, какие на выходе.
Где можно переименовать класс сразу во всем проекте
Где можно выполнять sql-запросы прям из ide, а также автокомплит SQL-запросов прямо внутри строки.
Где можно нажать ctrl-клик и перейти к месту, где определен метод/класс.
Где можно найти все использования метода в проекте (find usages)
Где весь проект индексируется, и поиск по нему занимает около 0 сек.
Где можно переименовать переменную сразу во всех местах метода, где она встречется
Где IDE заботливо подсказывает, какие аргументы нужны конструктору / методу.
Где IDE подсвечивает места, где ему что-то не нравится в коде, например неиспользованную переменную (успешная борьба с опечатками)
Где есть еще 100500 этих «где» и нет необходимости запоминать всякий бред типа c% ctrl-r минус
Назвать IDE такого класса «некудышными» может только придурок.rkfg
04.08.2016 12:45+3Справедливости ради, всё это есть и в Eclipse. Пользуюсь сейчас Android Studio, сделанной на базе IDEA, но многое всё же неудобно. Например, работа с VCS, по крайней мере, то, что видно на панелях и в меню. В эклипсе можно формировать частичные коммиты, внося изменения в индекс по кусочкам, а IDEA предлагает проставлять галки сразу для всего файла целиком. Понятно, что полагается сделать фичу, закоммитить, потом делать следующую, но на практике чаще выходит каша, которую хочется разделить на стадии коммитов. И из коробки git push по ssh не работает, надо переключаться на системный ssh, а дополнение и подсветка CSS не работают вовсе (только за деньги, наверно). Ну это так, брюзжание, скорее всего, я просто не разобрался.
Что важно, так это производительность — у обоих IDE она примерно одинаковая. В смысле, тормозят и задумываются время от времени, хотя обычно в этом упрекают исключительно Eclipse. Возможно, в платной версии всё намного лучше. Тем не менее, любые тормоза можно легко простить, ведь тормозит оно с благой целью (аргументы уже высказаны), и сэкономленное время и нервы, а также снижение численности ошибок окупают это с лихвой.
hurricup
04.08.2016 12:56И из коробки git push по ssh не работает, надо переключаться на системный ssh
Если речь про Windows то нужно просто настройки положить в папочку %userhome%/.ssh/ как в *nix системах и built-in будет работать.rkfg
04.08.2016 13:06У меня Debian. Возможно, реализация встроенного в IDEA SSH неполна, сервер использует нестандартный порт, авторизация идёт по ключу. Просто в эклипсе как-то сразу заработало, поэтому и обратил внимание.
yul
04.08.2016 14:43Понятно, что полагается сделать фичу, закоммитить, потом делать следующую
Предполагается использовать changesets, ну или git stash/unstash вручную. Иметь изменения из разных задач в рабочем дереве одновременно — это плохая практика, они могут конфликтовать непредсказуемым образом.lany
05.08.2016 07:36+1Может у вас могут конфликтовать непредсказуемым, а у меня как-то не конфликтуют. Возможностью редактировать индекс и вносить изменения частями активно пользуюсь.
hellosandrik
04.08.2016 15:00+2Ну, vim сравнивать с IDE нечестно. Даже автор называет никудышным именно редактор IDE, а не саму IDE. В той же Idea можно включить vi mode. Хотя, если честно, для языков с динамической типизацией нет большой разницы между использованием IDE или vim с кучкой плагинов.
varanio
04.08.2016 15:36+3Давайте не будет рассматривать сферический редактор IDE в вакууме.
Когда vi используют для программирования (т.е. как замену IDE), то vi проигрывает. Автор статьи этого не понимает.
Когда IDE используют в качестве простого редактора текста (т.е. никогда по сути), то vim возможно в чем-то выигрывает.
>Хотя, если честно, для языков с динамической типизацией нет большой разницы между использованием IDE или vim с кучкой плагинов.
Нет, это не так.
1) Для того же php (самый динамический язык) всё это есть: и рефакторинг, и переименования классов, и подсветка и т.д.
2) Знать кучу плагинов и, что еще хуже, знать все эти 100500 комбинаций клавиш для каждого из этих плагинов — это же адъ. Не надо это сравнивать с IDE, где из коробки идет 99% функционала, а остальное включается нажатием галочки.merlin-vrn
04.08.2016 15:46Когда IDE используют в качестве простого редактора текста (т.е. никогда по сути), то vim возможно в чем-то выигрывает.
Правда конфигов.varanio
04.08.2016 16:04Ну вот да, vim рулит только там, где нельзя использовать IDE (правка конфига или какой-нибудь хотфикс баш-скрипта прямо на сервере). Но автор статьи явно редактирует код в vi, да еще и счастлив при этом.
s-kozlov
04.08.2016 18:28XML-конфиги намного удобнее редактировать в IDE, где при подключении DTD у тебя в любом месте будет и автодополнение, и подсказки насчет допустимых тегов/атрибутов в данном контексте.
lany
05.08.2016 07:39С XSD в эклипсе (может в идее тоже, не знаю) можно вообще в графическом редакторе рисовать XML, переключаясь при необходимости между текстом и картинкой. В результате конфиги могут править люди, далёкие от программирования, пользуясь тем же инструментом, что и вся команда. Это очень удобно.
hurricup
04.08.2016 12:26+4На мой взгляд, вим стал жертвой прогресса. Я не знаю достоверно каков был рынок средств разработки в 91 году, но предположу что не было кроссплатформенных, расширяемых универсальных IDE. Были редакторы и средства вроде Borland C++. И тогда это был реальный шаг вперед. Редактор который умел больше чем обычный (опять же, оговорюсь — не знаю что он умел).
Но сейчас средства разделились на редакторы (набрать текст) и IDE (работать с проектом). Вим получается посередине, как утка. Но это уже не нужно. Если я хочу набрать текст — мне не нужен редактор который осваивать дольше чем IDE, мне нужен ee/nano. А если мне нужна работа с проектом — мне нужна нормальная IDE с большими возможностями и низким порогом вхождения, а не школа белого нидзя по освоению навороченного текстового редактора.alaska332
04.08.2016 15:11-1А почему нужен низкий порог вхождения в ущерб эффективности?
Вы собираетесь 2 дня поработать и потом к IDE не прикасаться?hurricup
04.08.2016 15:41+1В данном случае эти вещи никак не связаны.
Я могу сесть за IDEA и начать там кодить в интуитивно понятном окружении эффективнее чем NP++ не используя 90% фич оптимальным образом (например, тыкаю мышкой вместо хоткеев).
Со временм я изучаю оптимальные способы использования известных фич и новые фичи и начинаю кодить еще эфективнее.
Это называется низкий порог вхождения.
Зайдя в вим без знания системы команд я не увижу позитивных отличий от нано. Только побешусь что хрен знает как тут сохранить и выйти.
Т.е. чтобы начать там работать эффективнее чем в нано надо что-то читать, понимать и запоминать вещи которые лично я, кроме как в виме не видел нигде.
merlin-vrn
04.08.2016 15:42-1Низкий порог вхождения не означает ущерб эффективности. Это не так работает.
alaska332
04.08.2016 16:09А как это работает?
Низкий порог вхождения означает использование базовых навыков и функций.
Это не эффективно, т.к. ниже базового ничего нет.
Находясь на базовом уровне вы эффективность можете только повышать, значит — базовый неэффективен изначально.
Логично?merlin-vrn
04.08.2016 16:14Нет. Ещё низкий порог вхождения бывает в случае интуитивной автоматизации, которая заодно увеличит и эффективность профессионала. Автофокус и возможность немедленного просмотра фоток как понизила порог вхождения, так одновременно и повысила эффективность фотографирования.
В общем, всяко бывает. Нет тут простой связи.alaska332
04.08.2016 16:27Вы бы привели пример, который касается нашей темы.
Вообще, почему-то считается, что запомнить 10-20 основных команд vim — это непосильный труд для человека, тем более, связанного с IT.
Памяти не хватает?
Сразу поднимается волна непонимания и возмущенных воплей.
Зачем эти разговоры об «интуитивности текстового редактора», когда 99% проблемы решаются за 2 часа. Тем более, что этот инструмент остается с вами на всю трудовую жизнь.
Ладно, что тут обсуждать.merlin-vrn
04.08.2016 16:53-1А достаточно запомнить 20 команд?
Меня не команды напрягают, а режимы, то есть, состояния редактора. Я считаю, что чем меньше режимов, тем лучше. Чем меньше модальности, тем лучше. Чем меньше функций висит на каждой конкретной кнопке, тем лучше. Чем меньше, тем лучше. Идеал — когда ничего нельзя убрать.
И, про запоминание команд и привыкание к нему: вот с этим я полностью солидарен. Не стоит овчинка выделки. Да и про то, что вы, давно использующий и хорошо знающий vim реально получили ускорение хотя бы работы с текстом тоже бабка надвое сказала.chemistmail
04.08.2016 16:59+3Достаточно, 20 даже много. Режимы не напрягают, бесит когда из нет.
Переключение режимов на автомате.
Мне собственно все равно, используете вы его или нет.
Мне удобно, я использую. Вас не агитирую.merlin-vrn
04.08.2016 17:00Так не вы, другие агитируют. Вон, меня в статье дураком назвали, и инструменты мои дурацкими, потому, что не vim.
Что поразительно, таких как вы очень мало. Большинство vim-еров реально утверждают, что так удобнее и быстрее и тому подобное.chemistmail
04.08.2016 17:14Каждый кулик свое болото хвалит. Это нормально.
Статья дурацкая, минус поставить и забыть.
А то что так удобнее и быстрее и тому подобное, ну да, так и есть. Я тоже это утверждаю.
А ide мне не удобно, пробовал, сложно.
Для меня удобнее и быстрее vim.
Васе emacs
Пете visual studio
Выбор есть, что еще надо.
alaska332
04.08.2016 17:21Так почему вы не верите этим людям?
Есть основания? Все собрались тут, чтобы вас обмануть и поиметь от этого какую-то выгоду?
Вы же сами поддерживаете этот спор, задаете какие-то вопросы.
Вы вим этот, пресловутый, никогда не видели, судя по всему.
Говорят вам, что быстрее вводить тект в нем — не верите.
Говорят, что командный режим — дает больше возможностей — не верите.
Ну так решите проблему для себя, поставьте, или забудьте. Смысл спорить о том, чего вы не видели и не понимаете.merlin-vrn
04.08.2016 17:24Напрасно вы думаете, что я не видел вим, я пользуюсь исключительно линуксом (в т.ч. обработка равок-фотографий, звук по мелочи) с 2004 года. Единственная причина по которой не бегу сдавать экзамены редхата — это вим. Я серьёзно, меня бесит, что меня обязывают использовать это, когда я гораздо быстрее сделаю то же самое по-другому. (Ну может приукрасил и не единственная, ещё я надеюсь уломать работодателя это оплатить, но реально, вим-ориентация очень бесит.)
alaska332
04.08.2016 17:36Ладно, закончим этот холивар.
Тем более, что мне тут слили рейтинг минусами и ограничили частоту комментов.
Хотя я не из ИГИЛ и даже ни разу не матюкнулся.
Идиотская система.Delphinum
04.08.2016 17:39А нечего было идти против стильного, модного, молодежного!
alaska332
04.08.2016 17:43Это да.
Идеальный юзер здесь не должен сильно выделяться из общей массы, иначе и пукнуть не дадут.
Правильно ли это для IT ресурса, призвание которого побуждать человека к творчеству и генерации идей?
Думаю — нет.webkumo
05.08.2016 00:08+2А давайте вы не будете пукать на сайте? А заминусовали вас за излишнюю категоричность суждений и бездоказательные попытки отстаивать своё мнение. Вот это на сайте вообще не приветствуется.
PS чтобы участвовать в холиварах надо накапливать карму заранее… иначе будете как я раз в час писать коммент… а может и реже :)Delphinum
05.08.2016 00:11-2чтобы участвовать в холиварах надо накапливать карму заранее…
Есть способ проще, дождаться когда сольют карму и забить на хабр. Со временем на хабре останутся только определенный контингент юзеров и хабр вымрет, а на его пепелище родиться другой блог с более адекватным подходом к оценке.mugisbrows
05.08.2016 19:41В конце года всех со слитой кармой реабилитируют и добро пожаловать снова. Не пытайтесь покинуть хабр.
alaska332
05.08.2016 04:39-3Нахамить собрались, что это за фамильярность?
Идите вы нах со своим сайтом.
poxu
08.08.2016 15:19+1Вон, меня в статье дураком назвали, и инструменты мои дурацкими, потому, что не vim.
Вы цитируйте, не стесняйтесь.
alaska332
04.08.2016 17:14Реально их меньше, чем 20 + после привыкания вы автоматически их комбинируете, не задумываясь.
Я тоже за то, чтобы была одна кнопку, кликая на которую все остальное делалось само. Но юзер должен как-то получать доступ к богатым возможностям редактора. И вариантов это предоставить не много. Это или мышиный интерфейс — меню, тулбары, или командный режим. Командный режим гораздо быстрее.
Зачем вы мне дали эти ссылки? У меня проблем с вим нет, я его давно освоил и наслаждаюсь.saboteur_kiev
05.08.2016 16:52Командный режим не всегда быстрее. Он может быть быстрее, если командный режим крайне функционален, а вас поставили в условия работы, где например нет GUI, медленная связь, и приходится сделать редактор, работающий в таких условиях.
Изобретательные айтишники сделали для таких неудобных условия отличный vi-vim, который ушел далеко вперед от изначальной работы. Но большинству — он неинтересен. Поэтому очень полезно писать о малоизвестных инструментах интересные плюшки — всегда найдутся люди, которые работают в условиях, где это будет крайне полезно. Но сравнивать инструменты, без подачи изначальных условий, еще и проецировать узкоспециализированную тулзу на большинство — некомильфо.
Если вам кажется, что командный режим в vi гораздо быстрее, то давайте так — я — опытный пользователь ZX-Spectrum, будем меряться в скорости набора программ на Spectrum-бейсике, где в зависимости от режима, одна и таже клавиша могла ввести разные символы или операторы целиком, а режимов 5 или даже 6?
Я «goto 1» наберу двумя кнопками, и что? где модальный редактор спектрума?
P.S. Нет смысла к чему-то привыкать. Есть смысл, если приходится пользоваться vi, изучить его возможности и упростить себе задачу.
saboteur_kiev
04.08.2016 13:14+6В статье не упомянули, что рассвет VI пришелся на то время, когда связь была мееедленная, и VI позволял элементарно работать с файлами больших размеров, с идеальной точностью.
Поясню — если интерфейс тормозит, то работа мышкой приводит к постоянным промахам и ожиданиям — кликнул куда-то мышкой, и обязательно нужно дождаться, пока курсор туда переместится, чтобы что-то сделать. Начал что-то выделять стрелочками — и нужно дождаться, пока все выделится.
В VI этой проблемы не было в принципе — ты мог нажать 10-20 клавиш, четко «запрограммировав действия», и пока они дойдут на удаленный сервер, уже закрыть VI. В то время ни один редактор так четко не мог.
Кроме того, IMHO vi это не IDE — это редактор, который крайне полезен сисадмину, потому что для правки текстовых файлов (быстро исправить конфиг) — он идеален. Маленький, мгновенно открывается, отличная навигация, огромные возможности для автоматизации действий. VI и SED — и все будет хорошо.
То, что VI пролез в программирование — ну наверное на фоне популярности среди переучившихся админов.
P.S. Вдобавок vi есть сходу во всех *nix, это как notepad, только сразу почти notepad++
mihmig
04.08.2016 13:39+1Таки я всё-таки не услышал ответа на вопрос — как определить, в каком режиме сейчас находится редактор?
Про два раза Esc (чтобы гарантированно перейти в командный режим) я знаю, но это не отменяет вопроса…Delphinum
04.08.2016 13:41+1На панели команд отображается имя текущего режима. Если не отображается, вы в normal mode.
chemistmail
04.08.2016 13:51Использую 3 клавиатуры, все mac, но все разные.
Языки(топ, иногда бывают и другие): bash, python, erlang, go, javascript, haskell, c, ruby.
Конфиги: список слишком длинный чтоб его тут озвучивать.
60 % времени на удаленных серверах.
А теперь порекомендуйте мне ide, под мой профиль.
Стрелки для навигации использовать на macbook не удобно, home delete page up down
везде разные, то есть ими пользоваться опять же не удобно.
Подсветка для всех типов файлов обязана быть, проверка синтаксиса, проверка типов, навигация по функциям и прочее для комфортной жизни. Мышь противопоказана, ssh и все дела постоянно.
Какая idе мне подойдет?hurricup
04.08.2016 14:18А кто где-либо сказал что «IDE круто для работы на удаленных серверах»?
И никто не говорит о том что любая IDE лучше вима в любом случае, даже если вы на голове стоите. Речь о среднем по больничке. В обычных условиях.
Личное удобство обсуждать вообще странно, это личное дело каждого.
P.S. у эклипса (вроде) и идеи (точно) есть прозрачный деплой на удаленный сервер. Опять же, фича ситуативная: если есть возможность иметь локальную копию проекта (без запуска), вы редактируете локально а IDE деплоит куда настроите.chemistmail
04.08.2016 16:11В среднем по больничке ни vim ни ide не нужны от слова совсем. Это узко специализированные инструменты, часто взаимозаменяемые.
Даже если убрать работу на удаленном сервере, если речь идет про зоопарк языков, и различных разметок, любая ide сразу сливает в удобстве использования.
vim, emacs — универсальные инструменты, с возможностью расширения функциональности
ide — узкоспециализированный, как правило заточенный под конкретный технологический стэк
Смысла их сравнивать нет никакого.
А реплики типа эти… его все еще используют, могут говорить только…
hurricup
04.08.2016 16:15-1В среднем по больничке ни vim ни ide не нужны от слова совсем.
А что, простите нужно обычному разработчику от слова совсем?
Это узко специализированные инструменты, часто взаимозаменяемые.
Это уже похоже на какую то демагогию.
vim, emacs — универсальные инструменты, с возможностью расширения функциональности
ide — узкоспециализированный, как правило заточенный под конкретный технологический стэк
Eclipse, IDEA — универсальные инструменты, с возможностью расширения функциональности
Видимо я не очень понимаю что вы имеете ввиду под термином ide
Какой то прям очень «тонкий» коммент.chemistmail
04.08.2016 16:42-3Так мы вроде про в среднем по больничке, а разработчики это отдельная палата.
hurricup
04.08.2016 16:44В среднем по какой больничке? Среди всех людей вообще? Мы тут обсуждаем IDE и вим? Или общечеловеческие вопросы?
avost
04.08.2016 16:10+1Ну, для большинства народу «разработка на десятке языках 60% времени на удалённых серверах» является очень сильной дикостью. Тут совет только один из анекдота — «беспокоит гондурас? так вы его не чешите!» :)
raidhon
04.08.2016 17:14+2Intellij IDEA. все языки кроме С. Для С и С++ есть Clion.
Ваши конфиги по сравнению с кастомизацией IDEA детский садик.
Deployment решает проблему удаленного редактирования.
Терминал прямо в IDE, удаленная база данных прямо в IDEA. и этот список можно ещё час продолжать что там есть.
«Подсветка для всех типов файлов обязана быть, проверка синтаксиса, проверка типов, навигация по функциям и прочее для комфортной жизни. Мышь противопоказана, ssh и все дела постоянно.»
В это плане Vim по сравнению с IDEA Тетрис без батареек.
И даже в плане если совсем хочется даже здесь усложнить себе жизнь, есть плагин который включает режим Vim, а все плюшки IDEA остаются.
Сижу на Linux Debian и вспоминаю Vim как страшный сон, никогда больше и ни за что!
Увеличил свою эффективность за последние три года процентов на 500, в топку лошадку и плуг, у меня есть умный трактор с кондиционером.
И самое главное мне не нужно писать вот это :.,10s/^/#/ чтобы закомментировать десяток строк кода, а достаточно выделить блок кода и нажать CTRL + /Delphinum
04.08.2016 17:21Intellij IDEA. все языки кроме С
bash, python, erlang, go, javascript, haskell, c, ruby
Ясно, понятно…raidhon
04.08.2016 17:31bash, python, erlang, go, javascript, haskell, ruby — в меню plugins -> browse repositories -> custom languages.
Вы удивитесь на чем можно писать в IDEA.Delphinum
04.08.2016 17:56Несомненно крутейший функционал для работы с JS проектом на IntelliJ IDEAraidhon
04.08.2016 19:04+1Ясно все с вами, не думали как бы это, руки выпрямить?..
Скин моей IDEA https://yadi.sk/i/y7Z4MdRstvV2p
Скин настроек JS IDEA https://yadi.sk/i/CQs1LPkAtvV64
Скрин проектов на этот месяц для разных языков — https://yadi.sk/i/BC6OPLhKtvUbi
Скрин того что можно прикрутить из сотни языковых плагино — https://yadi.sk/i/Jz842ca2tvVDD
raidhon
04.08.2016 17:40Все языки из перечисленных выше имелось в виду, а не все существующие.
Хотя видимо вы все равно не поймете.
chemistmail
04.08.2016 17:27Пробовал, тормозит, тупит, не бибикает. ))
Постоянно за мышкой тянуться нужно.
Настройка через GUI, плевался.
Сложно.
Терминал одно название.
Не удобно.
Вспоминаю как страшный сон.
Это мое впечатление от intellij idea.
Мой выбор в пользу vim.
Ваш intellij idea.
Все довольны.
poxu
04.08.2016 22:41Чтобы закоментировать десяток строк вимом достаточно выделить блок кода и нажать I//Esc. Считать строки не надо.
Suvitruf
04.08.2016 15:11+4Или продолжайте использовать никудышный редактор кода своей IDE.
Но, в любом случае, никогда больше не заявляйте, что пользователи vi придурки.
Что за двойные стандарты?avost
04.08.2016 16:16-2Ну, сами посудите, разве редактор, работе в котором не нужно несколько месяцев учиться, может быть чем-то иным, нежели никудышным редактором? А после того, как несколько месяцев учился работать в редакторе, надо приступить к изучению какого-нибудь Malbolge, после которого объявить остальные языки программирования никудышными.
AmdY
04.08.2016 15:32-1Прежде чем обсуждать статью стоит отметить, что она написана почти десяток лет назад. С тех в IDE появился поддержка VI мода, так что всё сказанное уже не актуально, вы пожете пользоваться мощью IDE и фичами по набору текста в vi
Delphinum
04.08.2016 15:37+1вы пожете пользоваться мощью IDE и фичами по набору текста в vi
В Vi нет фич по набору текста, в Vi модальность. Ни одни плагин для IDE для реализации поддержки Vi мода не реализует в полной мере эту модальность.AmdY
04.08.2016 15:59-1Поробовал фичу с «iHelloESC .», в идее работает. Было бы интересно узнать побольше о различиях и кейсах, где это нужно в реальной жизни, раз у ж такие «мощные возможности».
Delphinum
04.08.2016 16:00-1Поробовал фичу с «iHelloESC .», в идее работает
Вы о чем вообще? Я о плагинах, эмулирующих Vim говорю. Или очередной демагог?
где это нужно в реальной жизни
Что «это»?AmdY
04.08.2016 16:42+1>>Вы о чем вообще? Я о плагинах, эмулирующих Vim говорю. Или очередной демагог?
Я пошевелили пятой точкой, установил плагин вима для идеи, попробовал пример из статьи, где говорится о модальном редактировании. Пример отработал, вот и уточняя, какие же именно отличия в реализации, в ответ же получаю переход на личности.Delphinum
04.08.2016 16:46Я пошевелили пятой точкой, установил плагин вима для идеи, попробовал пример из статьи, где говорится о модальном редактировании
С этого и следовало начинать свой вопрос.
1. Попробуйте забиндить 'gC для автоматического добавления всех изменений в индекс и открытия окна ввода комментария к коммиту.
2. Попробуйте перейти к дереву файлов проекта с помощью Ctrl+j и выбрав с помощью j/k некий файл, открыть его с помощью t в новой вкладке
3. Попробуйте перейти к объявлению метода установив на него курсор и нажав Ctrl+j
Продолжать можно долго.Ni_san
05.08.2016 13:55Я работаю в Phpstorm, он на базе IDEA.
1. Ctrl+k — открывает диалог коммита с полем для комментариями и списком измененных файлов с установленными чекбоксами
2. Alt+1 — фокус на дерево файлов, далее просто набираешь имя директории/файла и курсор переходит по совпадениям
3. Установить курсор и нажать Ctrl+b
Это из коробки, на самом деле можно настроить сотни хоткеев, не говоря уже о макросах. И да, в продуктах от JetBrains можно работать вообще без мышки. На клавиатуре куча клавиш — зачем ещё и режимы?Delphinum
05.08.2016 13:59Вы не поняли вопроса. Мы говорим о плагинах, эмулирующих Vim в IDE, а вы приводите примеры emacs-подобных хоткеев.
bodqhrohro
05.08.2016 19:04Emacs-подобное управление характеризуется последовательностями сочетаний клавиш, преимущественно с модификаторами. Перечисленные не уходят от концепции IBM CUA, по которой нынче принято строить интерфейсы десктопных приложений. Для классификации нужно больше подробностей.
Delphinum
05.08.2016 19:12Для всех, кто еще будет пытаться встревать в разговор совершенно не относящимися к теме аргументами, вот вам цитата:
Я пошевелили пятой точкой, установил плагин вима для идеи, попробовал пример из статьи, где говорится о модальном редактировании. Пример отработал, вот и уточняя, какие же именно отличия в реализации, в ответ же получаю переход на личности.
А вот мой ответ:
1. Попробуйте забиндить 'gC для автоматического добавления всех изменений в индекс и открытия окна ввода комментария к коммиту.
2. Попробуйте перейти к дереву файлов проекта с помощью Ctrl+j и выбрав с помощью j/k некий файл, открыть его с помощью t в новой вкладке
3. Попробуйте перейти к объявлению метода установив на него курсор и нажав Ctrl+j
Продолжать можно долго.
Ничего из перечисленного нельзя с делать ни в одном из плагинов, эмулирующих Vim в текстовых редакторах и IDE. Следовательно вот такие отличия в реализации.
Читать этот коммент циклически до полного понимания происходящего.
bodqhrohro
05.08.2016 19:20На клавиатуре куча клавиш
QWERTY-клавиатура проектировалась для печатных машинок, на которых кроме непосредственно ввода текста ничего не нужно, и уже сама по себе занимает руки почти полностью. Первые клавиатуры для ЭВМ на основе QWERTY по этой причине минимально расширяли её, активно практиковались модальность и использование модификаторов. Но так как модальность чужда привычным устройствам управления докомпьютерной эпохи, проводились многочисленные попытки превратить находящуюся под руками клавиатуру в огромную панель управления (например, монстры типа Space Kadet), над которой уже надо порхать руками, как над клавишным музыкальным инструментом, и значительно сложнее обучиться слепому управлению. В итоге в ходе революции x86 сложился относительно компактный стандарт клавиатур IBM PC с минимальными вариациями, содержащий отдельные клавиши для навигации по тексту. Однако даже он превращает клавиатуру в огромную приборную панель. С конца 90-х пошёл взлёт популярности ноутбуков и прочих портативных устройств, на которых устоявшаяся раскладка IBM PC сжимается и перетасовывается всевозможными способами, нивелируя навыки порхания. Впрочем, раскладка IBM PC слабо нагружает большие пальцы, и некоторые экспериментальные внешние клавиатуры, в том числе раздельные, расставляют расширения IBM PC вокруг пробела, уменьшая тем самым необходимость порхать.
capslocky
04.08.2016 16:14-2Программирую в Visual Studio и уже много лет пользуюсь собственной схемой горячих клавиш, которая минимизирует использование мышки. Благодаря ей большинство перемещений по исходному коду происходит без мышки и в стандартном положении рук: например, вместо стрелочек < ^ > v у меня горячие клавиши Ctrl+J, Ctrl+I, Ctrl+L и Ctrl+K. Комбинации Ctrl+H, Ctrl+; перемещают уже по словам и т.д. С добавлением Shift происходит выделение текста.
Также использую множество горячих клавиш для таких операций как, например, «удалить строку», «дублировать строку», «закомментировать/раскомментировать». И это действительно повышает скорость кодинга, когда реже переключаешься на мышку. Однако совсем без мышки не обойтись, поэтому я даже выбрал клавиатуру без Numpad-а, чтобы было еще удобнее перемещать руку на мышку и обратно.
mezastel
04.08.2016 16:15+2Или продолжайте использовать никудышный редактор кода своей IDE.
Это новая мода такая оскорблять программистов? В топку с таким подходом.
snakeduse
04.08.2016 17:14+1По моему опыту, и моим субъективным ощущениями, редакторы в IDE(например Visual Studio) гораздо хуже, чем в том же emacs. Я говорю именно о редактирование исходных текстов. Так же не вижу никаких оскорблений в адрес программистов, по-моему речь идет об IDE.
gaki
05.08.2016 06:35+1Логика же очевидна: «редактор вашего IDE никудышен по-сравнению с VIM! йа сказалъ!!» -> «все равно продолжаете использовать?» -> «вы идиот».
ck3w
04.08.2016 17:15+5Продуктивность программистов на vi/vim, почему-то я уверен, увеличилась бы ещё на пару пунктов, если бы время, потраченное на рассказы/споры уходило на решение реальных задач, с которыми прекрасный vim справляется.
Delphinum
04.08.2016 17:23Продуктивность программистов на IDE, почему-то я уверен, увеличилась бы ещё на пару пунктов, если бы время, потраченное на рассказы/споры уходило на решение реальных задач, с которыми прекрасный IDE справляется.
AlexeevEugene
04.08.2016 17:15о да… я помню тот момент бессилия и отчаяния, когда на заре знакомства с Linux, я ввел команду crontab -e
artyfarty
04.08.2016 17:47+1По-моему появление «мультикурсора» в IDE окончательно свело на нет преимущества vi-подобных. Если вдруг надо поработать с кодом как с тупо текстом, произведя повторяемые операции – да пожалуйста, Alt+тык-тык-тык или хоткей «довыделить подобное». И то подобные вещи нужны довольно редко, большинство вещей решается высокоуровневыми командами рефакторинга и генерации (часть из которых даже вызывать не надо, они сами).
Тут недавно был эпизод как один из коллег, пользующийся вимом, жаловался, что вот дескать, неудобно, что у вас столько use надо писать. Не все даже вопрос поняли, я последний раз use руками писал не помню когда, кто-то вообще забыл что use автоматически в шапку файла добавляется.
punkkk
04.08.2016 18:18+1Очень интересная статья, спасибо. Всегда был мнения о том что vi полный треш для непонятных людей, а тут расписано так, что теперь хочется самому научиться использовать этот редактор.
red75prim
04.08.2016 19:06+1Решил поискать скринкасты слепого десятипальцевого кодирования в Vim. Нашел кучу туториалов и вот это. Честно говоря, не впечатляет. Есть какие-нибудь скринкасты виртуозов Vim'а, чтобы ясно было IDE — фигня и перенос руки на мышку убивает производительность?
Часть ссылок с обсуждения на Ycombinator под paywall(!), в остальных ничего особо интересного.
alsii
04.08.2016 20:20+9Почему постоянно появляются статьи "Почему vim круче чем все остальное", и почему нет статей про наоборот? Почему апологеты vim так напоминают мне религиозных проповедников, которые звонят вам в дверь и предлагают "поговорить о Боге", или хватают вас за рукав на улице и обещают, что стоит обратиться к истинной вере и вы получите сразу отпущение грехов, вечную жизнь в раю и все земные блага как дополнительный бонус? Откуда эта постоянная жажда доказывать другим, что выбранно ТОБОЙ решение самое лучшее и лучше быть не может НИЧЕГО и НИКОГДА?
Успокойтесь. Мы уважаем ваш выбор. Мы верим, что для вас он лучший и максимально (этого недостаточно? Хорошо, пусть будет "идеально") соответствкет вашим потребностям.
Но оставьте же и вы вашу фанатичную апологетику и агрессивный прозелитизм. Да, возможно мы не достигли просветления, возможно наша мысль не так быстра чтобы наши скромные четыре (или шесть? ну точно не десять!) пальца отставали от нее, даже если им приходится отвлекаться еще и на мышку. Но оставьте же нас в нашем уютном для нас непонимании. Мы не несем угрозы вашей вере. Мы не собираемся требовать запрета vim и отправки всех пользующихся им на каторгу в пояс астероидов. Мы лишь мирные язычники, по странной прихоти предпочитающие каждый свою IDE вашему Единому и Вездесущему ("есть из коробки в любом дистрибутиве") vim. Успокойтесь. Идите с миром писать код. Ведь по вашим же словам, за каждую минуту проведенною в жарких дискуссиях на хабре пользователь vim'а не успевает написать в три (пять? двадцать пять? простите мне мое невежество, я не слишком твердо знаю vim-катехизис) раза больше кода, чем грешный IDEст. Любви и добра всем вам. Amen.
Delphinum
04.08.2016 20:22+1Почему постоянно появляются статьи «Почему vim круче чем все остальное», и почему нет статей про наоборот? Почему апологеты vim так напоминают мне религиозных проповедников, которые звонят вам в дверь и предлагают «поговорить о Боге», или хватают вас за рукав на улице и обещают, что стоит обратиться к истинной вере и вы получите сразу отпущение грехов, вечную жизнь в раю и все земные блага как дополнительный бонус? Откуда эта постоянная жажда доказывать другим, что выбранно ТОБОЙ решение самое лучшее и лучше быть не может НИЧЕГО и НИКОГДА?
Потому, что это в крови у многих людей. Помните «поставил Linux, напиши на хабр»? Так же и с Vim. Преодолел кривую обучения, напиши какой ты крутой!
alaska332
04.08.2016 21:17-4Вас же что-то влечет к этим статьям и холивару?
Может быть неосознанное желание прикоснуться к истине?
Не сдерживайте себя и обретете покой.
PS: скомпилить вим под винду можно этой командой:
mingw32-make.exe -j%NUMBER_OF_PROCESSORS% -f Make_ming.mak ^
STATIC_STDCPLUS=yes ^
ARCH=x86-64 ^
OPTIMIZE=MAXSPEED ^
FEATURES=HUGE ^
DIRECTX=yes ^
OLE=yes ^
POSTSCRIPT=yes ^
gvim.exe xxd/xxd.exe vimrun.exe
totally_nameless
05.08.2016 21:29-2У вас самый адекватный комментарий. Мог бы плюсануть, обзательно плюсанул бы.
От себя добавлю, что vim использую каждый день и считаю, что каждый должен уметь в нем работать немного. Это как уметь пользоваться топором, молотком и отверткой. Однако собирать истребитель с их помощью все же не стоит.
ЗЫ: у меня на работе очень много emacs апологетов утверждающих, что с помощью плагинов его можно превратить в полноценное IDE и при этом они ищут определение функции grep-ом.
poxu
06.08.2016 01:31+1Статьи от том, "Почему vim круче чем все остальное" постоянно появляются потому, что людям свойственно делиться с другими людьми интересными находками и новым опытом.
Статей про наоборот нет потому, что пользователи всего остального как правило не владеют вимом настолько, чтобы иметь возможность cравнивать и никакого желания овладевать не имеют.
Почему апологеты vim напоминают вам религиозных проповедников вопрос сложный.
Предполагаю, что вас посадили перед монитором, и стали настойчиво уговаривать прочитать побольше статей про вим.
Может быть даже поймали на улице, достали планшет и стали читать вслух, чем чёрт не шутит.
Напоследок хотелось бы сказать ещё пару слов об очевидном.
Использование IDE на рабочем месте это стандарт, отказ ей пользоваться может встретить непонимание — как минимум будут регулярно говорить, что тебе нужно немедленно начать использовать интегрированную среду разработки, потому что она улучшит твою продуктивность на порядок.
В топик про то, как пользоваться вимом для разработки на конкретном языке с конкретными советами, как его настроить и безо всяких призывов перестать использовать IDE, вполне может прибежать какой-нибудь фанатик и заявить, что надо использовать его любимую
VS, или что там ещё потому, что лучше неё нет НИЧЕГО и не может быть НИКОГДА.
Вот и вы предлагаете пользователям вима оставить свою фанатичную апологетику.
И пишите это как коментарий к статье. Понять вас можно только одним способом — вы предлагаете таких статей не писать.
Так что требовать запрета vim вы наверное не собираетесь, а вот статьи не писать уже попросили, хотя могли бы их банально не читать.
alsii
08.08.2016 13:56Делиться с другими своими находками — это замечательно! Есть много статей вроде «10 эффективных способов работы с IDE Xyz» и они обычно вызывают положительные отклики. Но вот адресованы такие статьи прежде всего тем, кто уже использует данную IDE". Видимо есть подобные статьи и о vi. Но эта публикация совсем иного рода! Она явно предназначена для тех, кто vi не пользуется, да и описываемые в ней техники для пользователей vi вполне заурядны.
И в заголовое автор выносит вопрос, который, как мне кажется, существует исключительно в его воображении. Да, vi безусловно своеобразен на фоне других инструментов для редактирования текста, но причины этого своеобразия вполне [исторически] объяснимы и понятны. И они не делают vi лучше или хуже. Он просто другой. И мне кажется, что адекватные люди вполне это понимают, а неадекватные не заслуживают того, чтобы им что-то объясняли.
И мне кажется странным, что пользователи vi чувствуют необходимость «оправдываться», отвечая на вопросы, подобные тому, что поставлен в заголовке. Такой вопрос вообще не заслуживает ответа на него.
Я вижу, что Vi как иструмент не нуждается в защите или продвижении. У него есть сложившееся community. Он развивается. У него ежегодно появляются новые поклонники. Вот поэтому я и предлагаю не писать ТАКИХ статей.
Возможно, конечно, я не вижу каких-то важных деталей. Возможно приверженцы vi сталкиваются с какими-то формами профессиональной дискриминации. Возможно им платят меньшие зарплаты или отказывают в приеме на работу. Может быть есть профессиональные сообщества, в которые закрыт доступ активным пользователям vi. Может быть. Мне о таких фактах неизвестно. В этом случае, стремление доказать, что «мы не хуже» выглядит вполне оправданным. Вот только форма в которой это реализуется, не кажется мне эффективной. Остается лишь радоваться, что мы еще не дошли до квот для сотрудников использующих vi и зарезервированных для них мест на парковках.Delphinum
08.08.2016 14:03приверженцы vi сталкиваются с какими-то формами профессиональной дискриминации
Не было еще у меня такой работы, на которой меня не просили пересесть с Vim на другой, «более популярный» и «правильный» редактор.
poxu
08.08.2016 15:12+2Итак, на основании того, что у вима есть сложившееся community, он развивается и у него ежегодно появляются новые поклонники вы предлагаете не писать статей, которые объясняют чем вим хорош, тем людям, которые не имея существенного опыта работы с ним, считают, что пользоваться этим редактором может только какой-нибудь чудак?
Представьте себе, что на хабре появилась статья о том, чем Intellij IDEA лучше блокнота. Или чем git лучше svn. Или чем PostgreSQL лучше MySQL. Таких статей конечно быть не может, потому что у IDEA, у git, да и у PostgreSQL есть сложившиеся community и они как инструменты не нуждаются в защите или продвижении. Но вы представьте, что их кто-то всё таки написал. И вот в комментариях к одной из таких статей автору предлагают их больше не писать. Ну, потому что описанные в статье техники заурядны и пользователи IDEA о них в курсе. И потом выражаеют радость от того, что мы ещё не дошли до квот для сотрудников, использующих git и зарезервированных мест на парковках для пользователей PostgreSQL.
Хорошо, всё-таки, что нет таких статей. А то действительно, сначала кто-нибудь написал, что nodejs в определённых случаях ничем не хуже java, а потом его по программе обеспечения равных возможностей к тебе в контору взяли, а в конце концов его у окошка вместо тебя посадили, потому что ему солнечный свет нужен в больших, чем тебе, количествах.
P. S. Одной из главных мыслей данной статьи, кстати, является мысль о том, что вим действительно своеобразен, но его своеобразие вызвано не историческими, а сугубо практическими причинами. Причинами, которые действительно объяснимы и понятны и делают вим лучше, а не просто другим.
daihatsu
08.08.2016 15:21-3Я думаю что дело в том, что автор излагает с той позиции, что «вим элитарен, а те, кто со мной не согласен — тупое быдло».
poxu
08.08.2016 15:28+2Автор излагает с позиции "вот вим, это хороший, удобный и современный редактор, который многое может — не надо думать, что все, кто им пользуются — тупые ретрограды".
daihatsu
08.08.2016 15:32-1Я пользуюсь vim. То есть я со стороны вимистов.
Но вижу в текстах автора вижу отрицательную психоэнергетику…poxu
08.08.2016 15:38+2Какая ещё психоэнергетика? Мы же с вами интеллигентные, образованные люди. Давайте говорить грамотно — вибрации тёмной стороны силы.
В общем я их не заметил. Если не сложно, киньте цитату пожалуйста.
alsii
08.08.2016 15:58Вот об этом я и пытаюсь написать. Автор ломится в открытую дверь. Разумные люди не считают пользователей vi/vim тупыми ретроградами, а неразумные не заслуживают, чтобы для них писались статьи. Ну это как сейчас жители юго-восточной Азии начнут писать статьи с заголовками: «Ну почему, почему эти $%&@ азиаты едят палочками?».
alsii
08.08.2016 15:50-1«тем людям, которые не имея существенного опыта работы с ним, считают, что пользоваться этим редактором может только какой-нибудь чудак» объяснять что-то бесполезно.
«чем Intellij IDEA лучше блокнота» — неправильная постановка вопроса. Можно написать «чем IDE лучше текстового редактора», да и то это будет некорректно. Про git и svn уже ближе, но и тут вопрос «что лучше» некорректен. Нельза сказать, «что лучше». Можно указать на различия. Оценку же корректнее оставить за читателем. Как вариант, можно использовать экспертные оценки и весовые коэффициенты.
Что же касается именно хабра, то он все же остается сообщесмтвом профессионалов и мне кажется, что статьи не лучшее место для оценочных суждений. Пусть в статьях будет информация, а мнениями можно обменяться в комментариях.
Относительно причин своеобразия vi позволю себе процитировать автора статьи: «Реальной причиной такой реализации кажется то, что терминалы вроде этого не имели стрелок». Действительно, клавиатуры были унаследованы от пишущих машинок, клавиш для движения курсора не имели, а двигать его было нужно. Использовали то, что есть. Потом такие клавиши на терминалах появились. И что характерно, разработчики vi дополнили код и сейчас «стрелки» в vi прекрасно работают. Мне кажется, что это показывает, что разработчикам vi вовсе не кажется, что «отрывать руку от клавиатуры» это что-то ужасное. Еще раз, vi особенный не в силу какого-то «особого замысла», а просто потому, что разработчики были вынуждены использовать доступные им ограниченные возможности. И они блестяще справились с этой задачей. Мне кажется, что будь в их распоряжении отдельные клавиши для перемещения курсора, функциональные клавиши, блок дополнительной цифровой клавиатуры, они бы ими сразу воспользовались.
AMDev
04.08.2016 21:30+2Мне очень нравиться, когда для демонстрации возможностей vi/vim используются gif изображения, взглянув на которое за мгновение понятна идея той или иной команды или последовательности команд. Тут можно глянут пример.
Возможно статья была более эффектная гифками. Спасибо за статью!
bodqhrohro
04.08.2016 23:30+1Мда… Пролистал статью и комментарии. Многое так толком и не рассмотрено.
1) Сломаны копья в сраче «мышь vs. слепой десятипальцевый метод™», но не упомянуты ни трекпоинты («клиторы»), ни навигация тачпадом большими пальцами — оба без увода рук с основной позиции. Равно как и плагин для вима EasyMove для быстрого прыжка в любое видимое место без особого задротства.
2) Vim головного мозга в терминальной стадии с внедрением клавиатурной навигации везде подряд (в особенности в браузеры, там с этим просто). Тормозные хинты портят UX не менее, чем в 90-х портили тормозные и громоздкие мышки. Также картина неполная без срача «клавиатура vs. тачскрин» касательно мобильных устройств и применения альтернативных клавиатур (не QWERTY) на десктопе.
3) Мнения людей в возрасте, заработавших RSI от мышевозни либо наоборот — от долгого лежания рук в основной позиции на неэргономичной клавиатуре.
4) Опыт скриптования среды и написания собственных плагинов для Vim/Emacs и IDE. Также макросы vs. сниппеты vs. мультикурсор.
5) Ресурсопотребление (ну а что, программист без 16 GB рамы и SSD с нынешними-то зарплатами себя не уважает :->).
nuald
05.08.2016 03:03Мои пять центов к дискуссии. Использовал и использую vi(vim) и emacs много лет, но они не являются моими основными текстовыми редакторами:
- emacs — если надо редактировать по ssh что-то посложнее чем «Hello world»
- vi — если нет выбора, или что-то совсем простенькое, как например, комментарии к коммитам git-а
Почему emacs > vi для меня — просто меньше нажатий (отредактировал, Ctrl-X, Ctrl-S vs i, отредактировал, Esc, :wq).
Основной текстовой редактор — Sublime Text, и причина проста — очень быстрый полнотекстовой поиск. Практически все языки программирования высокого уровня позволяют использовать динамические вызовы кода, и это означает, что при рефакторинге надо искать текст тоже, не только прямые вызовы методов. К сожалению, многие IDE имеют с этим проблемы, так что проще использовать полный поиск.
Более того, все приведенные примеры в статье ориентируются на массовые изменения кода, и это подразумевает только одно — код написан с высокой степенью дублирования. Если писать код правильно, используя принцип DRY, массовые изменения практически не нужны. А где они нужны, можно просто воспользоваться multi-cursor или обычным find-replace. Конечно, приходят на ум унылые динозавры типа старой Java, где надо было писать много, но в современной Java это практически не нужно.
Мышки, потоки сознания — это все субъективно. Например, в MacBook Pro очень хороший тачпад, и руки не сильно отрываются при его использовании. И если программист хороший, он сразу пишет хорошо, ему не нужно отрывать руки от клавиатуры, чтобы править что-то выше или ниже. На крайний случай, можно вставить TODO в текст и подправить позже.Crandel
05.08.2016 10:40Grep/Ag никто не отменял, очень быстро ищут, а если использовать Projectile, Helm и Company(Все для Emacs) все ищется только в текущем проекте, с учетом .gitignore и upper/down case
BOPOHA
05.08.2016 05:31Почему emacs > vi для меня — просто меньше нажатий (отредактировал, Ctrl-X, Ctrl-S vs i, отредактировал, Esc, :wq).
отредактировал, Ctrl-X, Ctrl-S = отредактировал + 4 нажатия
i, отредактировал, Esc, :wq = i, отредактировал, Esc, :x = отредактировал + 4 нажатия
В чем разница?
BOPOHA
05.08.2016 05:41например просто юзкейс добраться на сервере до докрута домена отдаваемого апачем
(просто узнать, если не подредактировать) :
httpd -S | grep domain.tld ## что то типа port XXXX namevhost domain.tld (/path/to/config.conf:792)
vim /path/to/config.conf
:792
что-то сделать
:x
примерно тоже в emacs? в пределах погрешности измерения?
Проще просто сказать "фломастеры на вкус и цвет разные".
yamatoko
05.08.2016 12:20почему vi, а не vim?
bodqhrohro
05.08.2016 19:00В статье рассмотрена парадигма редактирования vi в целом — хоть в Vim, хоть в Emacs, хоть в плагинах/режимах для IDE… Но многие, что ожидаемо, расценили возглас в заключении по поводу редакторов по умолчанию в IDE как привычный призыв вимеров не использовать IDE и развели по этому поводу очередное пустопорожнее бурление.
Noahzgard
05.08.2016 12:30Мне всегда было интересно, почему никто ради интереса не возьмёт двух крутых чуваков, одного адепта vim'а и одного мастерски владеющего VS, JB, Eclipse. И просто подготавливаем проект, который надо немного отрефакторить там и там, чуть чуть поправить тут, несколько опечаток там, дописать несложные функции тут. И дядя в белом халате с секундомером рядом. Это же поставило бы точку раз и навсегда.
Delphinum
05.08.2016 12:33+1Может потому, что невозможно будет подобрать для этого эксперимента подходящий проект и набор объективных задач?
daihatsu
05.08.2016 13:02+1Для посекундного теста — нужны программисты одного уровня подобранные с такой же точностью.
Я решил эти споры для себя проще:
Изучил vim.
И…
Так и не сделал выводов.
Иногда использую vim-редактор, иногда использую классический редактор.
Иногда использую навороты, превращающие vim в IDE, иногда использую IDE.
Как минимум — vim сопоставим и ничуть не хуже.
Но — однозначно прикольнее:
Я работаю в редакторе из которого вы даже выйти не сможете.
Для языков программирования для которых есть шикарные IDE — например как JetBrains IDEA для Java — там смысла нет использовать vim.
Но таких шикарно приспособленных к языку IDE очень мало. Для других языков программирования IDEA далеко не так шикарен как для Java, к примеру.
Скажем, для Go никаких преимуществ IDEA нет, а vim летает там, где IDEA по 5 минут грузится…
saboteur_kiev
05.08.2016 14:25Засекать с момента запуска редактора, или уже с момента, когда документ открытый?
VS, JB или Eclipse десяток-другой секунд только открываться будет.
Не нужно мерять IDE и текстовый редактор.
писькомерство можно сделать между vim, far, notepad++, и может быть особо продвинутыми SED-овцами.daihatsu
05.08.2016 17:35-1Программисткие редакторы (включая вим, Atom, Sublime и т.п.) — довольно продвинуты.
Рефакторинг, к примеру, для вима, то, чем в свое время взяла IDEA — нынче это уже нормально и для вима (с соответствующим плагином).
Та же крутая IDEA крута под Java — так как у IDEA свой разбор синтаксиса.
А вот функционал IDEA для Go, к примеру, ничуть не круче vim, так как синтаксический анализ и в IDEA и в vim базируется на одном и том же gocode.
Засекать можно когда угодно. IDEA может запросто начать тормозить в разгар работы, при открытии очередного диалога.bodqhrohro
05.08.2016 19:26Предоставите подборку инструментов рефакторинга, плагинами для Vim или с CLI, для разных языков, учитывающие их синтаксис?
daihatsu
07.08.2016 15:39-1Еще раз:
Для Java соревноваться с IDEA — глупо.
Для Go — ставите в vim плагин являющийся стандартом де-факто vim-go, читаете к нему доку, оставляете то, что автор vim-go советует. Доставляете общеупотребимые популярные плагины для vim (easymotion, figurative и т.п.).
Другие языки меня не интересуют.
MinamotoSoft
05.08.2016 14:09-1после фразы: Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно
можно не читать. Дальше все от религии.
quwy
05.08.2016 14:09Боже, и эти люди запрещают мне ковыряться в носу.
Давайте добавим педаль в стандартную комплектацию ПК, ведь на клавиатурах некоторых терминалов для IBM/360 нет стрелок! (логика на грани фантастики)bodqhrohro
05.08.2016 19:28Педали вместо модификаторов — вполне здравое решение. Проблема сугубо в обустройстве рабочего места.
aso
06.12.2016 18:26+1Что мешает использовать другие светофильтры в обычных светодиодах, ведь в подсветка имеет практически сплошной спектр?
Подсветка имеет «практически сплошной спектр» только при использовании ламп накаливания.
ЛДС-ки и любые LED-ы — дают дискретный «псевдобелый» спектр.Bronx
06.08.2016 02:52Пример того, как время, сэкономленное на вводе текста командами, макросами, хоткеями, IDEями с рефакторингами и проч., явно идёт людям не впрок.
daihatsu
07.08.2016 15:44Рефакторинг давно уже есть в vim и др. подобных настраиваемых редакторах.
Да, когда-то давно им могли похвастаться только такие штуки как JetBrains Intellij IDEA.
Но с тех пор утекло 15 лет…
suguby
05.08.2016 18:18-1вот это холивар! моё маслице в огонь: клавиатура — ужасный интерфейс между челом и компьюром.
Отсюда все споры/разногласия и высказывания «смотрите как в нашем редакторе быстро можно сделать ххх» — примерно как совет плывущим в валенках поменять их на сапоги, мол быстрее получается.
Клавиатура для начинающего — рай, все буковки видны, тыкай сколько хочешь, не запутаешься. И скорость не нужна, тут бы с экраном разобраться…
Клавиатура для профи — ад, прямо чуствуешь как мысль спотыкается об эти клавиши. Вспомните то чувство, когда приходишь в гости, а там незнакомая клава (с большим энтером и, не дай бог, кнопкой ресет под delete). Знаю многих прогеров, которые носят клавиатуры с собой, потому что привыкли (делать это быстро, а не искать «где же тут долбанный бэкслеш?!»)
Альтернативы? Были и есть. Вот например:
Но все равно клавиатуру не вытеснить — инерция сознания. Научившиеся не хотят переучиваться, новеньких натаскивают на существующее оборудование.suguby
05.08.2016 18:27еще аккордных клавиатур
и никак не могу найти картинку, когда клава разделена на две части, левая стационарная, а правая — мышка с аккордной клавой %) то есть руки вообще перемещать не надо.
bodqhrohro
05.08.2016 19:38Причём так натаскивают, что даже запихивают QWERTY на маленькие мобильные девайсы. Если в аппаратном исполнении это худо-бедно было комфортным решением для двух рук, то даже на смартпэдах превращается в извращение, отчасти скрашиваемое костылями типа автоисправления по словарю и Swype. Но народ терпит из-за возможности смотреть видео в 16:9 и видеть больше постов на экране одновременно. Особенно удручающим это выглядит на фоне постепенного вытеснения голосовых звонков текстовой перепиской. Хотя альтернатив полно, взять хоть MessagEase, не считая ещё пристыковывающихся аппаратных решений.
daihatsu
07.08.2016 16:02+1Да что вы говорите? Интерция мышления?
Нету никакой инерции. Отдельные личности всегда будут «не как все». До сих пор выпускаются даже клавиатуры без стрелочек (Happy Hacking Keyboard, Pro-версия, не Lite).
А аккордные клавиатуры вымерли — потому что это очень неудобно.
И только поэтому. Инерция мышления тут не при чем.
Varkus
05.08.2016 21:19+2По разным причинам пришлось bash-код писать прямо на «железке» через терминал в vi
40 файлов, около 200 тыс. строк = 4 месяца
теперь на клавиатуре я херачу работаю элегантнее любого пианиста
коллеги сначала сочувствовали, теперь завидуют
tower120
06.08.2016 16:10-3Не убедили.
Абсолютно все приведённые примеры умеют делать современные IDE. Плюс в них есть ещё и InteliSence с контекстной кодогенирацией.
Если мне нужно печатать текст — мне его нужно печатать, а не думать о том "как его печатать".
daihatsu
07.08.2016 15:53+2Еще один «не читал, но осуждаю»?
В vim есть на выбор несколько плагинов с «intellisence» и сниппетами (кодогенирацией)… (таковые есть и для Atom, Sublime, Emacs и пр.) Уж поверьте — современные редакторы мало чем отличаются от IDE.
А, например, для используемого мною языка Go (я могу говорить более предметно, так как в курсе темы) — этот самый intellisence в одной из лучших IDE мира IntelliJ IDEA ничуть не лучше, чем в vim, потому как в качестве базы использует все тот же алгоритм, реализованный в gocode нашим соотечественником.tower120
07.08.2016 17:33-1А vim и проект студии откроет, и скомпилирует и продебажет?
daihatsu
07.08.2016 17:40Для Java я написал сразу же: лучший выбор для Java — это продукты JetBrains.
Для Go дебаг в vim ничем не отличается от дебага в IDEA — он и там и там оццтой.
Про другие языки — не в курсе.tower120
07.08.2016 17:50Ну так и нафига оно надо тогда? Если все уже и так есть в IDE.
daihatsu
07.08.2016 18:18+1Вы не внимательно читали:
В одной из самых лучших в мире IDE Jetbrains IDEA ничего из этого не реализовано для Go лучше или хуже, чем в vim. Ровно так же. Поскольку основа ровно та же — gocode.
Посему выбор определяется личными предпочтениями. Мне например, нравится работа без мыши и без тормозов — поэтому не IDEA, а vim.
Ваш вопрос можно перефразировать:
А зачем тогда вообще 10 разных IDE если есть уже одна?
А зачем тогда вообще 10 разных операционных систем если есть уже одна?
Список продолжать?
Если бы vim не отличался бы специфическими клавиатурными режимами — никто бы и стал бы писать здесь столько комментариев (ну представьте, что мы обсуждаем IDEA vs Eclipse — вам бы пришло в голову писать «а зачем тогда нужен IDEA, если есть Eclipse».tower120
07.08.2016 18:40-3А зачем тогда вообще 10 разных операционных систем если есть уже одна?
Как по мне то из этих десяти для десктопа только одна и рабочяя только.
А зачем тогда вообще 10 разных IDE если есть уже одна?
По моему — она тут фактически тоже одна (для каждой конкретно взятой платформы).
XCode для маков
VS для виндовсов
Android Studio для андроидов
блокнот — для PHP.
вам бы пришло в голову писать «а зачем тогда нужен IDEA, если есть Eclipse.
Не пришло бы — для меня есть только IDEA.
Посему выбор определяется личными предпочтениями.
Мне кажется реально предпочтений особо не каких быть не может. Ровно как и в выборе языка.
Если скажем Android нативно работает только с Java, по другому родной интерфейс вы не получите.
Аналогично с Windows C# C++/CLI.
Как вы будете работать с UWP проектом в IDEA/Eclipse я не представляю.
daihatsu
07.08.2016 18:52+1С одной ОС к примеру произошло следующее:
MS до последнего (пока не начала заметно терять рынок) — не менялась…
С одной IDE — та же ситуация.
varanio
07.08.2016 22:22для PHP — Phpstorm (IDEA со специфичными добавками для php), а не блокнот
tower120
07.08.2016 22:25-1Он такую кашу в Intelisence выдает что с тем же успехом можно блокнотом пользоваться.
daihatsu
08.08.2016 07:14Если Intellisence плохо работает, значит у JetBrains нет успехов на этом поле — и как раз использование vim целесообразно.
Но позвольте, все же с вами не согласиться по поводу качества PHPStorm.
Delphinum
07.08.2016 19:46+1А зачем проект студии ему открывать? Я вам, возможно, открою секрет, но проект Java это просто набор файлов и конфигов к ним. На счет скомпилирует и продебажет, конечно, это может любой редактор, который умеет вызывать системные утилиты.
tower120
07.08.2016 20:04Стало быть IDE — излишества.
Delphinum
07.08.2016 20:08IDE = редактор + семантический анализатор + плагины.
Vim = редактор + плагины.tower120
07.08.2016 20:14Так таки IDE круче?
Delphinum
07.08.2016 20:21Ну так конечно, семантический анализатор + кучка связанных с ним плагинов это довольно заманчиво.
daihatsu
08.08.2016 06:24+1Если есть адекватный синтаксический анализатор.
Для Java — есть. Поэтому JetBrains IDEA — круче.
Для Go — и vim и JetBrains IDEA используют один и тот же код для разбора исходников (это gocode) — поэтому разницы нет.
IIvana
07.08.2016 04:51-7ОМГ, все 650 комментов ниасилил. Нет, я верю, что есть умельцы, которые с космической быстротой редактируют текст в этих вимах и емаксах… Но я потыкал последний полчаса и снес нахрен, и больше в эту сторону никогда не посмотрю даже. Почему?
1) нафиг надо изучать. У меня рабочие места по всему городу у заказчиков, проводник/блокнот есть везде, этого добра — нигде.
2) я весьма неплохо управляюсь мышью — можете мне поверить. Если не верите — поиграйте полгода в третий Квейк, где от скорости позиционирования прицела рейлгана зависит ваша жизнь — будете мышью так орудовать, что те, кому вы демонстрируете последовательность действий, будут просить вас показывать помедленнее.
3) был коммент про то — что они там. романы что ли в виме своем пишут? Например, когда я пишу на хаскеле, мне хватает блокнота (и не ++, а обычного виндового блокнота!). Потому что например 250 строчек у меня — полноценный интерпретатор Лисп-диалекта, и это с лексером, парсером, эвалюатором и вводом/выводом в консоль/файл. И скорость набора строки мне фиолетова, потому что думать приходится в сотни раз дольше, чем непосредственно набирать текст кода.
ЗЫ а вообще, продолжая посыл статьи, можно развить идею. Набор текста программы? Прошлый век! Надо сразу писать в АСТ, минуя убогое текстовое представление. Клавиатура? Прошлый век! Изобретена во времена палеозоя вместе с первой печатной машинкой и с тех пор принципиально не изменилась. Надо голосовой набор. А лучше — мысленный. Сидишь, думаешь — «о, напиши мне оптимальный алгоритм решения. Как не знаешь, в интернет слазь, тупая машина! Да не так, тут надо другой код!..» — и так со скоростью мысли будут создаваться шедевры программистского искусства ))))Varkus
08.08.2016 12:52какой-то win-поток сознания, в моём же понимании vi больше nix редактор. Вы видимо темой ошиблись.
nikitasius
07.08.2016 22:31+3испытываете шок и отвращение от того что должны нажать «i»
Лучшее, что можно придумать. Вот ты редактируешь, а вот ты… работаешь с документом. Я на серверах всегда использую vi.
daihatsu
08.08.2016 07:08Был у меня знакомый, который на каждое предложение использовать соответствующий софт, отвечал: vim же есть.
Производительность его труда была отвратительной.
Я это не к тому, что vim плох. А к тому, что все от человека зависит.
Alsym
08.08.2016 12:02-3Вимеры как вегетарианцы. Нравится есть траву? Супер! Только зачем остальной мир призывать к этому, тем более в таком тоне («никудышный редактор кода своей IDE»)?
И еще, сколько строчек кода вы пишете в день? 10? 100? 1000? Я думаю, большинство пишет меньше 100 строчек в день. В основном читаешь (код, документацию) или делаешь debug. То есть, зачем меня должны волновать все эти свистульки vi (или IDE), даже если они быстрее и круче?
Flammar
09.08.2016 15:21По моему впечатлению, современный Microsoft Word по степени удобства уже вполне похож на vim: чтобы сделать что-нибудь, что в 2003 версии делались парой кликов мыши по пунктам меню, проще всего пойти пойти в консоль Visual Basic и набрать команду там, благо автодополнение хорошо работает.
alitvinenko
09.08.2016 15:46-1Личный опыт:
использую Vim/vi только на серверах. Если нужно поправить или дописать конфиги, просмотреть какой-то файл или что-то найти (хотя зачастую less хватает).
Пользоваться Vim/vi для полноценного кодинга — это просто приколы мазохистов. тут IDE конечно же выигрывает.
А почему Vim/vi а не какой-нибудь mcedit или другой редактор? Да не знаю, просто привык и не вижу смысла использовать что-то другое. Те действия которые я выполняю в vim/vi не такие уж важные и глобальные чтобы менять свою привычку. Да и если нет vim, то уж vi на сервере точно будет установлен.
maxshopen
09.08.2016 23:32Офигеть, я думал холивары «vi» vs «все остальные» в далеком прошлом, ан нет, люди продолжают впустую тратить своё столь драгоценное время
st3
10.08.2016 13:26По-моему, любую статью про vim надо начинать с того, что не обязательно пользоваться кнопкой ESC.
Потому что есть способы намного удобней:
- Ctrl-[ (еще удобнее если настроить, чтобы кнопка CapsLock работала как Ctrl)
- добавить в конфиг, например:
" позволяет вместо ESC использовать двойное нажатие "j"
inoremap jj
Когда узнал эти возможности – пользоваться vim стало намного приятнее.
Не надо сразу учить миллиард команд и тд, в первую очередь надо узнать как никогда не пользоваться кнопкой ESC в vim. Это решает.
Delphinum
10.08.2016 14:10-1По-моему, любое обсуждение про «что угодно» нужно начинать с ознакомления с этим «чем угодно», а не выплевывания собственных предположений и слухов о том, как это «что угодно» работает )
nazargulov
10.08.2016 14:51-1Ctrl+C/X/V, дабл-клик мыши, выделение мышкой, Home, End, Del, Backspace, Enter.
Вот и все, что я знаю про редактирование текста.
А в vi есть прекрасная команда :q!Delphinum
10.08.2016 15:08Вот вы удивитесь, когда узнаете про различные сочетания Ctrl/Alt/Shift и left, right, выделение мышью, Backspace, Del, а так же про трипл-клик
nazargulov
10.08.2016 15:53Вы забыли Shift+up/down. С Atl не понял. Crtl/Shift + стрелочки это локальные такие правки, фичи. Чаще всего использую где поле ввода в одну строку, например URL в браузере или работа в пределах пары строк.
Но полноценное боевое положение рук при редактировании текста/кода это левый мизинец на Ctrl и мышка в правой руке. Навигация по Crtl+f.
П.С. кто может закиньте пару плюсов в карму. А то внезапно раз в час могу комментить.Delphinum
10.08.2016 16:09С Atl не понял
Многие редакторы с нажатым Alt (некоторые по Ctrl) воспринимают выделение мышкой как блочное.
Но полноценное боевое положение рук при редактировании текста/кода это левый мизинец на Ctrl и мышка в правой руке
Может вы мне откроете секрет, как вы одной рукой текст печатаете? Или все сводится к копи-пасте?nazargulov
10.08.2016 17:11-1Я печатаю двумя руками как и все. Положение рук Ctrl + мышка это аналог «командного режима» в vi. Тот самый серфинг текста и блочные правки. Особенно удобно в сочетании с трекпадом Apple или трекпоинтом IBM.
Ха, так и знал что вместо плюса какая-то злобная душонка закинет минус.Delphinum
10.08.2016 17:23Положение рук Ctrl + мышка это аналог «командного режима» в vi
Так вот оно что ) А народ на Esc еще жалуется )) Ну спасибо, хоть вы толком объяснили.
Bytamine
10.08.2016 22:25+2Пользуюсь vim и прекрасно себя чувствую. Вы все раздражительные. Это от мышки.
alexkuzko
Статья очень понравилась, узнал много нового для себя и полюбил vi еще сильнее.
VasilyBykov
Для всех сторонников vim рекомендую книгу Drew Neil Practical Vim. В книге собраны советы, позволяющие ускорить редактирование в vim.
saboteur_kiev
Действительно, некоторые примеры в статье — просто шикарны. Но если бы автор не писал так неуважительно в сторону IDE, статья была бы лучше. Сравнивать IDE и Vi некорректно.