Почему, ну почему, эти #?@! придурки используют vi?

Предлагаю читателям "Хабрахабра" перевод статьи "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: потрясающая команда "точка"

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


image


Весь код начинается с этого, не так ли? Теперь было бы неплохо удалить символы точки с запятой и добавить пустые тела функций. С курсором находящимся в положении как на картинке выше вы можете нажать "A" чтобы перейти прямо к вводу в конце строки:


image


Обратите внимание на курсор режима ввода в конце строки. Теперь вам надо удалить ";" с помощью [BACKSPACE] и набрать "[ENTER] { [ENTER] } [ENTER]", чтобы создать пустое тело функции, как в любом другом текстовом редакторе.


image


Теперь жмём эскейп, чтобы выйти в командный режим:


image


А теперь надо все это повторить с оставшимися двумя. Как это сделать? Легко: нажимаем 'j' чтобы переместить курсор на строку вниз и затем '.', чтобы повторить редактирование (от нажатия "А" до [ESC]). Если вы нажмете 'j.j.', то получите следующее:


image


Просто 'j.j.'! Ключом здесь является архитектура команд vi вместе с тем, что [BACKSPACE] является частью редактирования как обычный набор текста и тем, что операции редактирования обладают высокой повторяемостью. Подумайте, сколько ваших ежедневных правок являются повторяемыми? Ага, я так и думал.


Заблуждение №2: дело не в регулярных выражениях

Vi/Vim прекрасно справляются с обработкой регулярных выражений. Все более-менее серьезные текстовые редакторы поддерживают регулярные выражения — поиск, замену и так далее, но только vi (из тех что я знаю) может использовать их сложные комбинации вроде "поиска и замены второго включения "begin" после строки содержащей "proc", или что там еще может придти вам в голову.


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


  • Одно- или двухкнопочные команды для перемещения именно туда куда вам надо в строке или на экране.
  • Команды вроде 'd' или 'c' которые будучи скомбинированы с командами перемещения позволяют напрямую изменять интересующий вас кусок кода с возможностью повторения редактирования простым нажатием '.'
  • Руки всегда в удобном положении на клавиатуре. Редактирование одинаково комфортно и на ПК и на ноутбуке.

Пример №2: умные диапазоны

Давайте рассмотрим следующий типичный пример. Это просто вызов функции встроенный в некое сложное выражение:


image


Как вы можете видеть, курсор находится в начале вызова функции. А теперь представьте, что мы хотим убрать его оттуда и назначить некоторой локальной переменной. Для начала нам надо выделить вызов функции, скопировать и удалить его, напечатать имя переменной, переместиться на строку вверх для объявления этой переменной. Следуя обычной модели редактирования вы бы начали играться с Ctrl-Right и left/right пока не сделали бы все как надо. Но не с vi/vim. Команда перемещения '%' позволяет перемещаться от открывающей скобки (или другого группирующего символа) до соответствующей закрывающей скобки — но если курсор не находится на одном из этих специальных символов, vim идет вправо до первого такого символа, а затем перемещает курсор на соответствующий ему закрывающий. То есть, в нашем случае, курсор переместиться прямо на закрывающую скобку вызова функции!


Зная, что команда 'c' удаляет текст на всей протяженности следующего за ней перемещения (а так же копирует его в буфер обмена), мы можем просто набрать 'c%' и получить следующее:


image


Наш вызов функции скопирован в буфер обмена и мы готовы ввести имя переменой. Неплохо для двух кнопок! После ввода имени переменной и нажатия [ESC]:


image


Теперь в командном режиме мы можем нажать 'O' для создания строки над текущей и перехода в режим ввода, а затем объявить переменную:


image


Теперь нам надо вставить вызов функции, а так как он уже в буфере обмена мы можем вставить его нажав Ctrl-R, а затем " (немного не интуитивно, но это комбинация для вставки из стандартного буфера обмена ), дальше ";" и [ESC]:


image


Заблуждение №3: надо быть психом и/или гением чтобы использовать это

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


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


Пример №3: манипуляции с разграниченными блоками

Еще один простой пример. Работает только в vim, так как использует одну из специфичных для него команд перемещения. Скажем, вы находитесь внутри блока ограниченного угловыми скобками, что не редкость в наши дни XML:


image


Как выделить текст внутри чтобы копировать/изменить/удалить его? В обычных текстовых редакторах вы вынуждены убрать руки из текущего комфортабельного положения и воспользоваться стрелками, или того хуже мышью. Любой из этих вариантов не удобен, особенно на ноутбуке. Как сделать это в vim? Вы просто используете одну из команд перемещения по объектам текста, каждая из которых начинается с 'i' или 'a' (эти символы так же используются как команды редактирования и поэтому могут следовать только после 'd' или 'c' команд) 'i>' означает текущий блок ограниченный угловыми скобками, где 'i"' от 'inner'. Так что вы можете набрать 'di>' чтобы удалить весь текст внутри угловых скобок:


image


Вы можете использовать '(' или ')' чтобы выделить текущих блок ограниченный скобками (или даже '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}' делает то же самое) и объединим с командой '>', которая выравнивает область обозначенную следующей за ней командой перемещения. Представьте себе такой код:


image


Как часто вам встречается такая задача? Да, вы конечно можете вставлять с авто-выравниванием (']p' в vim), но вдруг вы забыли, или получили такой код не копипастом, а потому что удалили кусок кода выше. В общем, вам просто надо его выровнять. В других редакторах вы перемещаете курсор, нажимаете [Tab] или сочетание клавиш для авто-выравнивания. Но не в vim, просто три клавиши '>aB' "выровнять блок" и вы получаете это:


image


Круто, не так ли? Никаких метаний с курсором и выделением текста, просто говорите, что именно вам нужно и 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.


* оригинальная статья опубликвана 16.05.2007


Пример №6: визуальная природа

И как последний пример, чтобы вам не казалось, что vi — это только загадочные нечитаемые команды, рассмотрим некоторые более наглядные возможности (вообще это возможности уже vim, а не vi) Одна из них: при включенной подсветке поиска (выключена по умолчанию, но обычно всегда включается командой ":set hlsearch") когда вы ищите подстроку, все ее включения подсвечиваются. К примеру у вас есть такой html код:


image


Если вы нажмете '*', будет произведен поиск по слову, на котором находится курсор ('div'), и в результате мы получим:


image


Как вы видите, курсор переместился и все включения подсвечены.


Давайте рассмотрим кое что еще. Мы уже видели команды вроде 'd', или 'c', которые действуют на область в соответствии со следующей командой. Но если мы хотим сделать процесс более наглядным, мы можем использовать визуальный режим: нажмите 'v', передвиньте курсор и вы увидите, что его начальное положение подсвечено, затем наберите команду, чтобы увидеть результат. Команды поиска работают здесь точно так же. Если вы нажмете 'V' вместо 'v', то выделяться будут целые строки. Нажмите 'V', а затем 'k'(вверх) после этого:


image


Как вы видите, две строки подсвечены как выделенные. Скажем, вы хотите продолжить выделение до открывающего 'div' (он подсвечен желтым). Нажмите 'N' (предыдущее совпадение) и получите это:


image


Теперь мы можем сделать все, что придет в голову, например, набрать 'gU', чтобы перевести весь текст в верхний регистр (и вернуться в командный режим):


image


Ну а теперь давайте поговорим о правильной "обобщенной концепции" vi/vim.


**Правильная концепция №1: крутая кривая обучения

Это факт, что научиться эффективно использовать vi/vim непросто. Придется потратить от нескольких недель до нескольких месяцев и первый опыт не будет приятным. Мне кажется, это главная причина, почему модель редактирования vi непопулярна и никогда не станет популярной. Вам надо перевести, выучить и отработать около 30 команд, прежде чем вы начнете выигрывать в скорости у пользователей других редакторов. Хотя в большинстве случаев это однокнопочные команды (почти все имеют простые мнемоники, облегчающие запоминание), это все равно непростая задача. Очень легко сдаться и вернуться в привычный редактор. Но я не знаю никого, кто выполнив эти условия, вернулся бы к старым привычкам.


Заключение

Делайте, что хотите. Не учитесь пользоваться vi/vim, если считаете, что это требует слишком много усилий и не окупится. Изучите emacs вместо vi. Или продолжайте использовать никудышный редактор кода своей IDE. Но, в любом случае, никогда больше не заявляйте, что пользователи vi придурки. Я надеюсь, что преуспел в объяснении, почему он им (нам) так нравится и вы должны были, по крайней мере, оценить его мощь, даже если и не хотите его использовать.


Если вы захотите поближе познакомится с vi, вот несколько полезных ссылок:



И, конечно:



P.S.
Спасибо за информацию об опечатках и неточностях пользователям alan008, xaizek, kvaps, Vizrok, kipelovets, tlv (в порядке поступления сообщений)

Поделиться публикацией
Комментарии 769
    +7
    Статья очень понравилась, узнал много нового для себя и полюбил vi еще сильнее.
      0
      Для всех сторонников vim рекомендую книгу Drew Neil Practical Vim. В книге собраны советы, позволяющие ускорить редактирование в vim.
        0

        Отличная книга, прочитал за две недели отпуска и остался крайне доволен информацией оттуда.

        +6
        Действительно, некоторые примеры в статье — просто шикарны. Но если бы автор не писал так неуважительно в сторону IDE, статья была бы лучше. Сравнивать IDE и Vi некорректно.
        +24
        Очень хорошая переводить спасибо
          +44
          Во вселенной, где не изобрели мышь, vi, конечно, рулит.
            +10
            А вы часто используете мышь в текстовом редакторе? Для чего?
            (нет, не сарказм — я использую лишь изредка трекбол, поэтому мне очень интересно)
              +58
              Для моментального позиционирования текстового курсора в нужное место.
                +10
                Я бы не назвал необходимость переносить руки из привычного для слепой печати положения на мышку и потом возвращать назад «моментальным позиционированием». Лично мне это всегда доставляет жуткий дискомфорт и очень сильно выбивает из потока.
                  +1
                  А если у меня привычное положение — одна рука на клаве, вторая на мышке?
                    +15
                    Если вы печатаете одной рукой, то да.
                      +8
                      Тогда вы либо не используете «слепой десятипальцевый», либо занимаетесь не написанием текстов, а чем то еще.
                        +21
                        Либо у него три руки.
                          +20
                          ну так программирование, администрирование, веб-браузинг != написание текстов
                            –8
                            Что есть по вашему «программирование»?
                              +2
                              для начала, изучение предметной области и того, как сейчас решается задача, которую нужно автоматизировать

                              затем рисование схем, всё более детальных, как это работает и как должно рабоать

                              потом автоматическая кодогенерация по этим схемам, а также разработка UI

                              и потом наконец ручные правки, отладка
                                –3
                                Ручные правки должны выполняться одной рукой?
                                  +7
                                  Могут выполняться одной рукой. Часто они эффективно выполняются мышкой (например, в IDE прокрутить колёсиком среди методов и выбрать другой).

                                  А почему вы игнорируете комментарий об исследованиях Apple на тему «клавиатура или мышка быстрее»?
                                    +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.

                                    Это по вашему называется исследованием? Вынужден вас огорчить, исследование, это когда приводятся предусловия, описывается процесс тестирования, озвучивается статистика, делается вывод. Здесь я вижу только: «мы там у себя протестировали и вот что решили...» — слишком уж похоже на старый добрый подход маркетологов. Не убедительно.
                                      +6
                                      Ваши «а я попробовал и у меня получилось так» ещё менее убедительны. Тут хоть какие-то исследования, претендующие на объективность, которые кстати покрывают и ваш случай — сами субъекты уверены, что стали быстрее, хотя сторонний наблюдатель регистрирует, что это не так.

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

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

                                      Ну и сколько я за вимерами не наблюдал, все они в реальности выполняют комплексную зачачу не быстрее меня. Было несколько бывших коллег, которые упорно пытались cd/ls/vim, а я в то же время бегал по директориям в mc и нажимал F4 для редактирования — и был впереди. Все они, как и вы, утверждали, что я ничего не понимаю, и должен, чтобы стать эффективнее, меньше отрывать руки от десятипальцевой клавиатуры и изучить vim.
                                        –1
                                        Ваши «а я попробовал и у меня получилось так» ещё менее убедительны

                                        Поэтому я и не привожу статистики, вы меня вынуждаете своими маркетинговыми статьями.
                                        Тут хоть какие-то исследования, претендующие на объективность

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

                                        А кто эти субъекты? Программисты, дизайнеры, бухгалтера? Кого исследовали?
                                        Аппл утверждает, что вам это только кажется

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

                                        Я и не говорил, что стал работать быстрее.
                                        Было несколько бывших коллег, которые упорно пытались cd/ls/vim

                                        Предложите им воспользоваться mc или nerdtree, а не заниматься ерундой.
                                          –3
                                          >Я могу выплюнуть в интернет аналогичное «исследование», это не сделает его объективным.

                                          А вы точно многомиллиардная корпорация с высоким уровнем доверия людей?
                                            +3
                                            А вы точно многомиллиардная корпорация с высоким уровнем доверия людей?

                                            По вашему мнению любое слово многомиллиардной корпорации с высоким (спорное утверждение) уровнем доверия людей должно восприниматься догматически? Бедный хабр… (
                                              –1
                                              Да к этом огрызку нет доверия, как него его и к апплу в целом. Было бы это статьёй в реферируемом журнале — я бы даже слушать никого не стал. Но к личным ощущениям анонима, пишущему писюльки на хабр, доверия ещё меньше.
                                                0
                                                Если нет особых альтернатив, то почему бы и нет?
                                                Даже если бы были — доверие мнению, отличному от вашего, пороком не является. Так что не такой уж хабр и бедный
                                                  0
                                                  Если нет особых альтернатив, то почему бы и нет?

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

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

                                                      Если нет особых альтернатив, то почему бы и нет?

                                                      Видимо высказывалось.
                                                      +2
                                                      Поясните, кстати, как может быть объективным любое утверждение, опирающееся на субъективное восприятие людей.

                                                      Объективные показатели — это что-нибудь вроде человеко-строк кода в час. Хотя это само по себе вообще не критерий чего бы то ни было (ну разве что программистам платят за количество выданных на-гора строк)
                                                        0
                                                        Поясните, кстати, как может быть объективным любое утверждение, опирающееся на субъективное восприятие людей

                                                        Никак. Я разве утверждал обратное?
                                                          0
                                                          Ваши слова?-

                                                          > Тут хоть какие-то исследования, претендующие на объективность, которые кстати покрывают и ваш случай…

                                                          Тут сплошь вопросы вкуса, так что у каждого своя правда, и объективности как бы нет и не нужно.
                                                            0
                                                            Ваши слова?

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

                                                            Так я никому не навязываю свою правду.
                                                              0
                                                              Промахнулся — не вам отвечал, mille pardon.
                                                              0

                                                              Это мои слова.


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

                                                  +2
                                                  Поэтому я и не привожу статистики, вы меня вынуждаете своими маркетинговыми статьями.

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

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

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

                                                  А кто эти субъекты? Программисты, дизайнеры, бухгалтера? Кого исследовали?

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

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

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

                                                    Думаю под «реальной аргументацией» вы имеете ввиду статистическое исследование? У меня такового нет, и ни у кого нет. Если вы такое найдете, обязательно дайте мне знать, буду благодарен.
                                                    И вообще я теперь очень хочу запретить вимерам писать про то, какой вим хороший и как они стали быстро работать, пока в каком-нибудь университете не проведут такое исследование

                                                    Нужно не столько запрещать, сколько требовать от заявителя доказательств. Этого достичь проще, нежели пытаться что то запрещать.
                                                      +1
                                                      Нужно не столько запрещать, сколько требовать от заявителя доказательств. Этого достичь проще, нежели пытаться что то запрещать.

                                                      Да! А он отвечает:

                                                      Я и не пытался. Если вы выбрали для себя удобный инструмент, я только рад за вас. Пользуйтесь им и даже не думайте смотреть в сторону других инструментов (я серьезно).


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

                                                  Интереснее другое: насколько это важно не машинистке, а программисту.
                                                    –1
                                                    Да они видимо, кроме всего прочего, пытаются намекать, что не только печатать без мышки быстрее, а и инет в браузере серфить, и видимо фоточки править в фотошопе, и дизайн рисовать в кореле или что там используют, и так далее.
                                                  0
                                                  Вы правите текст одной рукой?

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

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

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


                                                      Итак, высказывание о переброске руки реально очень сомнительно. Я вчера весь день за собой следил, это не медленнее, чем дотянуться до ctrl+c или esc или смены раскладки (у меня это caps lock)

                                                        0
                                                        Итак, высказывание о переброске руки реально очень сомнительно

                                                        Повторю еще раз, для особо сомневающихся — ваши сомнения не имеют никакого отношения к объективной реальности. Засеките время переброса руки и тыке по иконке в быстром меню и время нажатия клавиш, на пример, 'gc.
                                                        У меня получилось (только на переброс руки с клавиатуры на мышь и обратно) ~ 1.1 секунды
                                                        Против ~ 0.5 секунды
                                                          0
                                                          Повторю еще раз, для особо сомневающихся — ваши сомнения не имеют никакого отношения к объективной реальности.

                                                          Я тоже могу повторить раз 10 для непонятливых: ваше субъективное понятие быстроты или трудоемкости не имеет отношения к реальности. Просто потому что это чисто субъективные понятия. Ваши.

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

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

                                                          Засеките время переброса руки и тыке по иконке в быстром меню и время нажатия клавиш, на пример, 'gc.

                                                          При чем тут это? Макросы обычных редакторов никто не отменял. Весь сыр-бор разгорелся из-за позиционирования курсора, а не тыканья мышкой по иконкам вместо клавиатурных комбинаций.
                                                            0
                                                            Просто потому что это чисто субъективные понятия. Ваши

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

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

                                                            А если у меня привычное положение — одна рука на клаве, вторая на мышке?

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

                                                  Что это за стиль такой?

                                                  Можно еще мышкой по экранной клаве тыкать.
                                                    +1
                                                    Что это за стиль такой?

                                                    Возможно это стиль «Программирование мышкой».
                                                      +1
                                                      Это может быть автоподсказка при вводе, которая работает по префиксу. Но тут преимущество мыши неочевидно.
                                                +1
                                                А я бы так ответил
                                                1. изучение предметной области
                                                2. поиск библиотек или проектов, реализующих отдельные аспекты задачи (может быть даже почти всю задачу), и их изучение, включая чтение документции сборку, запуск, небольшую модификацию и отладку примеров
                                                3. соединение этих библиотек вместе и написание необходимого соединительного кода
                                                4. отладка, отладка и еще раз отладка того что получилсь :)
                                                  0
                                                  Прекрасно. Из всего вышеперечисленного для чего вы используете редактор или IDE?
                                                    0
                                                    2,3,4
                                                      0
                                                      Как с помощью редактора/IDE вы ищите проекты и библиотеки?

                                                      По 3 и 4 пунктам — вы пишите текст одной рукой?
                                                        +3
                                                        По пункту 2 — компилирую, провожу эксперименты и отлаживаю в IDE.
                                                        Текст набираю двумя руками — но программирование это не та сфера, где нужно набирать много текста. Большая часть времени — это медитация над исходниками, документацией и результатами работы программ.

                                                        Пожалуй 50% рабочего времени я руками вообще ничего не делаю. Правая рука просто лежит рядом с мышкой и клавиатурой на столе, левая на левом краю клавиатуры. Где-то 35% кручу колесо и щелкаю мышью и только 15% набираю и исправляю текст.
                                                          0
                                                          Ну так я веду речь о написании текста. К чему эти аргументы вида — а программирование это не только написание текста — я все никак не могу понять (
                                                            +3
                                                            Ну так набор текста занимает незначительную часть общего времени, чтобы экономить миллисекунды.
                                                              +2
                                                              Ну так не экономьте миллисекунды, если у вас набор текста занимает незначительную часть времени. Я ведь не против.
                                                              0

                                                              Так вот интересно, какой текст в больших объёмах набирают поклонники Vim. Романы пишут, что ли? Мне правда интересно.

                                                                +1
                                                                Поставьте себе счетик нажатия на клавиши клавиатуры и мыши. Очень удивитесь — какую огромную долю занимают цифро-буквенные нажатия, то есть как много пишет/исправляет средний программист.
                                                                  0

                                                                  Это надо считать только при наборе кода. Между набором непосредственно кода программы много времени уходит на браузер и прокрастинацию, к сожалению.

                                                                    0
                                                                    Серфинг не считается? Или вы программу простыней набираете?
                                                                      0
                                                                      А как сёрфинг связан с Vim?
                                                                        0
                                                                        Напрямую. Эхх… Очередной хейтер, который знаком с Vim на уровне «двоюродный коллега один раз запускал и ему не понравилось» (
                                                                          0
                                                                          Я уже писал здесь, что использую Vim постоянно для задач, которые в нём выполняются лучше всего. Линуксом пользуюсь чуть более восьми лет, Vim'ом примерно столько же. Зачем вы переходите на личности? Мне по-прежнему неочевидна связь сёрфинга и редактора текста. В Emacs есть встроенный браузер, но он, очевидно, не подходит для современных сайтов, ориентированных под Webkit/ES5/Мышь/Тач. Для Vim я ничего такого не видел. Если вы намекаете на Vimperator и Vimium (для Chrome), то они тоже являются лишь дополнениями, но никак не связаны с редактированием текста.
                                                                            0
                                                                            При чем тут серфинг и браузеры? Я разве говорю об интернет-серфинге? Серфить можно и исходные коды проекта, и документацию, и тесты, и еще много чего.
                                                                              +1
                                                                              Впервые встречаю это слово в таком значении. В эклипсе для навигации эффективнее использовать и мышь, и клавиатуру. Чаще всего мне требуется найти вызов метода по проекту и перейти к определению. Как опять же писалось тут, сомнительно, что Vim сможет определить правильную перегрузку функции или выбрать правильный метод для объекта, если есть несколько одинаково названных методов в разных классах (например, run() или start()). Когда происходит вызов такого метода, нужно учитывать тип объекта, для которого он вызывается, чтобы найти определение. Для определения типа нужно как минимум распарсить код и найти определение переменной, иногда вывести её тип (как в случае с ключевым словом auto в C++), иногда отрезолвить цепочку typedef'ов. Eclipse справляется с этим без проблем, а что делать в Vim? И это я ещё не трогаю рефакторинг, без которого в большом проекте будет нелегко.

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

                                                                                Но ведь оно для описания действий прекрасно подходить, разве нет?
                                                                                а что делать в Vim?

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

                                                                                Набор текста это не только печатание (как многие тут считают), это и микросерфинг и макросерфинг по проекту. Vim с этим прекрасно справляется.
                                                                                средства удобного и надёжного контроля кода?

                                                                                О каких средствах идет речь?
                                                                                  0
                                                                                  >Но ведь оно для описания действий прекрасно подходить, разве нет?

                                                                                  Возможно, я лишь сказал, что не встречал его в таком значении.

                                                                                  >серфинг в Vim больше сводится к другой области управления (более мелкой или более специфичной)
                                                                                  >микросерфинг и макросерфинг по проекту

                                                                                  Непонятно, что же это такое. Открытие разных файлов и переход между ними? По-моему, это не так полезно, как семантическая навигация.

                                                                                  >О каких средствах идет речь?

                                                                                  Рефакторинг и Quick Fix (автоматическая генерация кода и исправление типичных ошибок), в основном, иногда анализ ресурсов на предмет соответствия коду, как в Android Studio проверка соответствия типа view из XML типу в коде и в Eclipse проверка наличия определения контрола в ui.xml, если он определён в аннотации @UiField (это для UiBinder из GWT). Автоматический рефакторинг позволяет не беспокоиться, что где-то что-то не исправилось как ожидалось, либо изменилось что-то, что не должно было. Возможно, он не идеален и тоже может накосячить, но я с таким пока не сталкивался.
                                                                                    0
                                                                                    Непонятно, что же это такое.

                                                                                    Микросерфинг это, к примеру, замена блока кода, переход к аргументам функции, переход к началу слова и т.д. Этих действий в процессе набора исходных кодов выполняется уйма.
                                                                                    Открытие разных файлов и переход между ними? По-моему, это не так полезно, как семантическая навигация

                                                                                    Смотря для каких целей. Я раньше обожал семантическую навигацию, потом полюбил хорошо структурированные проекты и необходимость в ней как то отпала. За последний год я использую ее реже, чем операцию коммита изменений.
                                                                                    Рефакторинг

                                                                                    Я об этом уже много раз писал, потому отвечу коротко — я рефакторю что то настолько редко (если раз в день переименую один метот, то это будет событием), что мне достаточно грепнуть по проекту и за 5 минут все закончить.
                                                                                    Quick Fix

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

                                                                                    Для этого предпочитаю тесты и онлайн сервисы проверки исходных кодов.
                                                                  0
                                                                  Программы пишут. Не одну функцию в день, а реальный функционал.
                                                                    +2
                                                                    Вот хотелось бы посмотреть на процесс. Не исключено, что я просто тугодум и не умею писать простынями, а вместо этого больше думаю, чем печатаю. Поэтому и скорость набора не является для меня критичной, и поэтому интересно увидеть, как работают другие. Видел стрим на twitch, где разработчик Crea исправлял баг, там собственно ввода было минимум, больше навигации по коду.
                                                                      0
                                                                      а вместо этого больше думаю, чем печатаю

                                                                      А это взаимоисключающая деятельность?
                                                                      Вот хотелось бы посмотреть на процесс

                                                                      Где то на хабре я выкладывал ссылку на видео. Можете поискать если интересно.
                                                                        0
                                                                        Для этого нужно иметь как минимум двухядерный мозг. Есть такое интересное явление как «Эффект дверного проёма» гуглится на гиктаймс первой же строчкой.
                                                                          0
                                                                          Для этого нужно иметь как минимум двухядерный мозг

                                                                          Нет, достаточно использовать такой инструмент, который не потребует от мозга вмешиваться в процесс печатания. Это называется «печатать на скорости мысли».
                                                                    +2
                                                                    Вообще-то статья именно о преимуществах vi/vim при редактировании а не наборе текста. В больших объемах набирать plain text вообще безразлично в чем, да хоть в notepad.

                                                                    Мощь vim проявляется именно при редактировании (изменении, исправлении, форматировании, небольшом дополнении) в командном режиме.
                                                    0
                                                    не используете «слепой десятипальцевый»

                                                    Можно подумать, вы программируете код в редакторе со скоростью 500 символов в секунду! Никогда не знал, что в программировании важна скорость ввода текста!

                                                      –2
                                                      А при чем тут скорость ввода текста? Вы вообще мой комментарий прочитали?
                                                        +1
                                                        Программист регулярно серфит по исходному тексту, заменяет, ищет и пр.

                                                        Так что да — каждое нажатие клавиши имеет значение и оптимизация работы по работе с исходником (не важно vim это или Ctrl+Shift+Right) освобождает больше времени для «чисто подумать» над кодом или почитать Хабр.

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

                                                        Исключение разве что текстовый редактор acme, который специально заточен на мышетекстовое управление.

                                                        https://habrahabr.ru/post/208482/
                                                          +2
                                                          Дело не в скорости как таковой. Просто после овладевания слепым десятипальцевым методом на приличном уровне меньшая часть мозга задействована на то, чтобы что-то напечатать. Напечатать что-то – это вообще не задача. Вам не нужно переводить взгляд. Не нужно задумываться, где какие кнопки. Не нужно позиционировать руки над клавиатурой. Это куча мелочей, которые выбивают из потока. Вы вообще не отвлекаетесь. Вы просто смотрите в экран, а там сам собой появляется текст, о котором вы думаете. И вот это как раз важно. Полагаю, мастерское владение vi/vim может дать схожий эффект. Не знаю. Не владею :)
                                                        +10
                                                        Если одна рука на asdw, а вторая на мышке — тогда удобно. Для печати, на мой взгляд, не очень.
                                                        +35
                                                        Ну если вы писатель, то да. А если программист?

                                                        Я вот обычно сижу, думаю над кодом, неспешно прокручиваю его колесом мыши… иногда делаю переходы по дереву классов, или контекстные переходы типа «go to definition» — тоже мышью… время от времени переключаюсь на чтение документации опять-таки ничего не пишу, а только читаю и кручу мышью… иногда переключаюсь на браузер, там да — нужно набить фразу в поисковике, хотя часто можно сделать копи-паст мышью (например имя функции или сообщение об ошибке), а нередко прямо в программе в контекстном меню встроена команда «найти в гугле» (и думаю вскорости эта команда будет во всех ридерах и IDE).

                                                        И только иногда, когда вдруг в голове складывается полное понимание того, что нужно написать — откладываю мышь в сторону и пишу какой-нибудь кусок кода. Уже сразу обеими руками на клавиатуре.
                                                          +4
                                                          А как вы позиционируете текстовый курсор в нужное место? Вопрос без сарказма, мне правда интересно. Вот я вижу точку на экране, в которую ткнул бы мышью — что вместо этого я должен сделать в виме/емаксе? Самый быстрый способ, до кторого я пока додумался — вызвать поиск и набрать сочетание символов из этого места, уповая, что оно уникально. Но даже если оно таки уникально, выходит, по-моему, не быстрее тычка мышкой, а если их таких оказалось несколько — так и тем более.
                                                            –1
                                                            А как вы позиционируете текстовый курсор в нужное место?

                                                            В Vim для этого есть normal mode.
                                                            Вот я вижу точку на экране, в которую ткнул бы мышью

                                                            При работе с текстом, автор оперирует синтаксическими конструкциями, а не точками на экране. Для них в Vim есть множество команд перевода курсора.
                                                              +1
                                                              Ну ок, и какая команда для «спозиционируй мне курсор на начало четвертого формального параметра пятью строками ниже»?
                                                                +1
                                                                У меня это ss который дергает easymotion.
                                                                  –1
                                                                  Как ни крути — это будут разные комбинации. А позицинирование мышью — универсально.
                                                                    0
                                                                    Позиционирование мышью тоже требует различных сокращений мускулатуры, что с того?
                                                                      0
                                                                      Когда ходите — вообще караул. Это автоматизированное, рефлекторное действие. Одинаковое, универсальное. В отличие от. Есть баланс этих инструментов.
                                                                        +2
                                                                        В отличие от

                                                                        Очередное безосновательное заявление. Вот он я, и у меня работа с easymotion так же рефлекторно.
                                                                          0
                                                                          Очередное безосновательное заявление

                                                                          Отнюдь. Каждый говорит за себя.
                                                                            0
                                                                            Ну естественно для вас работа с easymotion будет сложной и долгой. Только мы не сравниваем опытного пользователя (на пример) emacs с новичком Vim, ведь так?
                                                                              0
                                                                              Я говорю об универсальности метода, а не том, насколько его освоил кто бы то ни было.
                                                                                0
                                                                                Говорить об универсальности метода как ссылаться на использование только ed, так как он есть даже в атмосфере. Универсальность не имеет значения.
                                                              0
                                                              Клавиши перемещения курсора прямо на буквах — руки не нужно переносить. Можно возразить, что курсором медленно позиционировать. Но учитывая время перемещения рук до мышки, позиционирование курсора и обратно на клавиатуру, перемещение сразу с клавиатуры может быть более быстрым. Ведь если нужно переместить на пять строчек вверх и 30 символов влево достаточно нажать клавиши вверх и влево по одному разу. А можно еще и через слова прыгать! А время нажатия определяет перемещение. Кажется удивительным, но после тренировки точность перемещения за одиночное нажатие клавиши управления курсором достаточно высока.
                                                                +5
                                                                > Ведь если нужно переместить на пять строчек вверх и 30 символов влево достаточно нажать клавиши вверх и влево по одному разу.

                                                                Это как?

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

                                                                И в этом вообще была моя главная проблема с Вимом, да и с Емаксом, до некоторой степени. Как редакторы-то они мощные и легко уделают любое IDE, без дураков. Более того, ниже товарищ пишет, что-де вот то да сё в Эклипсе удобнее чем в Виме — да, вполне может быть, что конкретное «то» и «се» действительно удобнее в IDE, но это только для каких-то совершенно определенных вещей, которые предусмотрели разработчики данного IDE, а в Виме из стандартного набора можно что хочешь собрать, о чем разработчики, возможно, и в страшном сне не помышляли. Но проблема в том, что эти преимущества Вима проявятся в полной мере только на какой-то нетривиальной задаче редактирования, возникающей раз в месяц, а то и реже. Допустим, я подумал, загуглил, еще подумал и нашёл способ, как сделать это в Виме супер-пупер-эффективно. С учётом времени на раздумья и гугление, я бы давно уже сделал то же самое в IDE, потыкав куда надо мышкой, конечно. Но теперь-то я уже умею в Виме и в следующий раз сразу быстро и эффективно сделаю, да? Нет. Ибо задача нетривиальна и понадобится её решать опять через месяц, за который я благополучно забуду своё нынешнее решение начисто. В результате опять думать, опять гуглить, и опять быстрее было бы потыкать мышкой в иде. Та же картина, кстати, и для ещё одной иконы опенсорса, написанной много лет назад, но до сих пор превосходящей и затмевающей — системы TeX. Всякий знает — ну или хотя бы слышал — что набирать формулы в TeX гораздо быстрее, чем в Word, и это факт. Вот только мало кто сидит и день за днём, час за часом долбит одни и те же формулы — прежде надо эксперименты поставить, расчёты провести, тексты написать, синтаксис формул опять успеешь забыть, опять гугль, опять дотянулся проклятый Кнут… (TeX крут, тем не менее, просто его истинная крутизна в другом.)
                                                                  0

                                                                  в TeX хотя бы можно накопипастить из ранее созданных документов или из интернета.

                                                                    0
                                                                    Ага, мне тоже кажется, что в основном этим он и хорош. Или когда твою статью не принимают в один журнал — пошёл на сайт другого журнала, скачал их стилевой файл, пересобрал документ с ним, послал туда. Теоретически как бы и в Ворде как-то так тоже можно, но на практике потом затрахаешься вручную править форматирование практически везде.
                                                                    +2
                                                                    С TeX проблема в том, что не существует вменяемого конвертера из TeX в Word. Именно поэтому я так и не смог перейти ни на TeX, ни на LyX — ведь всюду требуется исключительно Word. Куда я потом этот TeX-документ дену? Да даже среди научных издательств крайне мало таких, которые ещё принимают TeX-документы, и даже они пишут, что предпочтительнее всё же Word.
                                                                    В этом плане Markdown гораздо юзабельнее — там нет проблем с конвертированием, у него глаже кривая обучения, а благодаря расширениям он крайне богат возможностями.
                                                                      0
                                                                      Не знаю, у меня Word ни разу не требовали, всегда хотели либо PDF, либо PDF + исходник в TeX.
                                                                        0
                                                                        Зависит от предметной области. Я, например, сталкивался с чисто биологическими журналами и журналами по биоинформатике. Первые требуют почти исключительно doc/docx, изредка принимают PDF или odt. Вторые обычно принимают doc/docx и TeX.
                                                                    +1
                                                                    Клавиши перемещения курсора прямо на буквах появились потому, что давным давно в старых терминалах передавались в основном печатаемые символы, и стрелки не передавались. Так появилось перемещение курсора буквами. Просто исторически сложилось.
                                                                    +1
                                                                    Вот я вижу точку на экране, в которую ткнул бы мышью — что вместо этого я должен сделать в виме/емаксе?


                                                                    В vim можно использовать easymotion
                                                                    А в emacs или avy или ace-jump-mode.
                                                                    Все они работают на похожем принципе:
                                                                    1. нажимаете хоткей, затем вводите первую букву слова на которое надо перепрыгнуть
                                                                    2. редактор подсвечивает все слова начинающиеся с выбранной буквы
                                                                    3. выбираете на какое именно слово прыгнуть

                                                                    Так можно за 3-4 нажатия клавиш переместиться в любое место на экране.

                                                                    Разумеется можно переходить не только к началу слова, но и в произвольное место.
                                                                      +1
                                                                      Я последнее время еще полюбил vim-sneak/evil-snipe
                                                                        +1
                                                                        нажимаете хоткей, затем вводите первую букву слова на которое надо перепрыгнуть

                                                                        Круто. У нас CodeGuide предполагает все формальные параметры начинать с буквы «A», как раз подойдет — скажем, ф.п. штук пять и нужен последний.
                                                                        Так можно за 3-4 нажатия клавиш переместиться в любое место на экране.

                                                                        Оно того стоит, если тронуть мышь — пол-секунды?
                                                                          +1

                                                                          Ну во-первых можно прыгнуть на вторую букву, во-вторых пока количество формальных параметров на экране меньше чем 26, вы все равно в три keystroke попадете на букву А.
                                                                          Я не знаю, удобнее ли это чем мышка для тех, кто хорошо владеет мышкой, я мышкой владею плохо, мне EasyMotion намного удобнее.

                                                                            0
                                                                            > все формальные параметры начинать с буквы «A»

                                                                            Вроде, как раз с этим проблем быть не должно — посмотрите по ссылкам выше avy, у него, по-моему, на картинках понятнее всего объяснено, как это работает. Очень интересный принцип, доберусь до емакса — обязательно попробую.
                                                                              +1
                                                                              Оно того стоит, если тронуть мышь — пол-секунды?


                                                                              А это каждый решает сам для себя. Редактор предоставляет возможность перемещаться с помощью мыши и клавиатуры, что больше нравится — то и используйте.
                                                                            0
                                                                            UPD: УПС: опередили выше про avy
                                                                            В emacs есть https://github.com/abo-abo/avy
                                                                            Очень удобно. Работает, даже если открыто несколько виртуальных окон
                                                                              0
                                                                              Вим\Емакс это не какие-то суровые редакторы для перфокарт. Там тоже есть гуй и поддержка мышки. И даже в консоли типа iterm2 есть поддержка мышки.
                                                                                0
                                                                                Для vim есть замечательный плагин vim-easymotion (на самом деле его аналоги есть почти в любом редакторе). Единственный минус — начинает работать только если хорошо развит навык слепой печати.
                                                                                  0

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

                                                                                  +1
                                                                                  Мышь, может, и не моментально, — а вот тачпад (или айбиэмовский прыщик) — очень даже моментально.
                                                                                    –1
                                                                                    Всяко пошустрее, чем комбинации вида «прыгни-ка к первому вхождению символа „f“», если их там много. Да и позиционирование мышью — непосредственное. Это просто удобнее.
                                                                                      +2
                                                                                      Где-то год назад я программировал одну исследовательскую хрень с использованием gaze tracker (прибора, определяющего точку на мониторе, куда смотрит юзер). Была мысль попробовать запилить установку текстового курсора по хоткею прямо в точку взгляда. Напрямую водить указатель мыши взглядом было уныло — точность позиционирования так себе, и из-за шумов в измерениях он еще дрожит, как рука алкоголика. Но поставить где-то в пределах трёх нажатий на стрелки от нужной позиции, возможно, удалось бы. К сожалению, девайс у меня отняли раньше, чем руки дошли попытаться чего-то сделать в данном направлении…
                                                                                        –1
                                                                                        Это вы ThinkPad'ом никогда не пользовались.
                                                                                        Его трекпоинт позволяет делать это, вообще не отрывая руки от клавиатуры.

                                                                                        Я уж молчу о том, что в моем понимании «моментальная навигация» — это прыгнуть к нужному классу/файлу/функции в проекте или исходниках библиотеки (и потом обратно, а лучше — и вовсе в отдельном окне показать), а не в пределах экрана-двух на регулярках ерзать.
                                                                                        +4
                                                                                        :set mouse=a
                                                                                          0
                                                                                          Спасибо!
                                                                                          Уже добавляю ":set mouse=" в свой .vimrc :-)
                                                                                          0
                                                                                          моментального? рука перемещается на мышь — рука с мышью перемещается в нужное место — рука с мыши возвращается на клавиатуру.
                                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                                              –6
                                                                                              Вы понимаете значение слова «моментально»? Одна-две секунды это не моментально.
                                                                                                –1
                                                                                                1/125 секунды — тоже. И?
                                                                                                  –4
                                                                                                  И зачем тогда говорить, что это моментально? Для красивого словца?
                                                                                                    0
                                                                                                    Зачем тогда саркастически спрашивать «вы понимаете значение млова „моментально“» и сравнивать с 1-2 секундами, если это значение не определено в числах?
                                                                                                      –2
                                                                                                      Затем, чтобы люди таки научились пользоваться своим лексиконом, а не занимались демагогией, выплевывая в комментарии терминологию, не имеющую никакого отношения к реальности.
                                                                                                        +2
                                                                                                        Демагогией здесь занимаетесь вы, с претензией на объективность.
                                                                                                        Слово «моментально» в контексте разговора, очевидно, означает, что продолжительность промежутка в абсолютных значениях не имеет роли, т.к. пренебрежительно мала по сравнению с другими действиями. Ваши попытки переходить к абсолютным числам выглядят нелепо.
                                                                                                          0
                                                                                                          что продолжительность промежутка в абсолютных значениях не имеет роли

                                                                                                          Когда человек привык отвлекаться от основной деятельности на 1-2 секунды, для него это не имеет роли. Мы говорим о Vim, редакторе, который позволяет пользователю писать программы «со скоростью мысли», а в его контексте термин «моментально» играет огромную роль.

                                                                                                          Перенос руки с клавиатуры на мишь и обратно — это не моментально.
                                                                                                            –1
                                                                                                            Когда человек привык отвлекаться от основной деятельности на 1-2 секунды, для него это не имеет роли. Мы говорим о Vim, редакторе, который позволяет пользователю писать программы «со скоростью мысли», а в его контексте термин «моментально» играет огромную роль.

                                                                                                            Мы говорим о том, имеет ли значение скорость ввода как таковая.

                                                                                                            Перенос руки с клавиатуры на мишь и обратно — это не моментально.


                                                                                                            Слово «моментально» в контексте разговора, очевидно, означает, что продолжительность промежутка в абсолютных значениях не имеет роли, т.к. пренебрежительно мала по сравнению с другими действиями. Ваши попытки переходить к абсолютным числам выглядят нелепо.
                                                                                                              –1
                                                                                                              Мы говорим о том, имеет ли значение скорость ввода как таковая

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

                                                                                                              Повторюсь, если бы это делалось моментально, то это не имело бы значение, но это не так.
                                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                  0
                                                                                                                  Жаль что подобного рода результаты диалога, с полным съездом собеседника, не отражаются в карме
                                                                                                +1
                                                                                                за компом сижу много, но, чтобы найти глазами курсор, зачастую надо пошерудить мышкой. Плюс, позиционирование ее у меня выглядит как затухающее колебание на 1-2 периода. Это я вот сейчас специально попробовал. В виме либо перескоки на несколько строк автоматом руки делают, либо быстрее поиском, он тоже начинает автоматически набираться
                                                                                                  +1
                                                                                                  Народ говорит, что работа с мышкой должна быть моментальной. Вы что то не то делаете!
                                                                                                    –1
                                                                                                    У меня включен поиск курсора по Ctrl, видно сразу.
                                                                                                0
                                                                                                В gvim это, к сожалению, есть. Очень хочу научиться эту возможность отключать — бесит, когда переключаешь мышью окно и курсор оказывается в непредсказуемом месте.
                                                                                                  +6
                                                                                                  :set mouse=c
                                                                                                    0
                                                                                                    В этом режиме вставка из системного буфера обмена стала даже удобнее. А вот как скопировать в буфер я так и не понял (по крайней мере в windows ). Видимо придется документацию почитать…
                                                                                                0
                                                                                                А что вы делаете, если нужно что-то сделать с текстом с планшета, где мышь отсутствует, ткнуть пальцем можно примерно в 3-5 соседних символов, а клавиатура тачпадовская?
                                                                                                  0
                                                                                                  Если приходится редактировать много текста в описанном окружении, то сделать, на самом деле, можно только одно: достать чернил и плакать.
                                                                                                    0
                                                                                                    А если нужно поправить совсем немного текста, вы запускаете IDE или блокнот?
                                                                                                    vi — это notepad++ в среде *nix
                                                                                                      0
                                                                                                      Sublime Text?
                                                                                                        0
                                                                                                        Его даже в репах официально нет. Вообще нет.
                                                                                                  +1
                                                                                                  Рекомендую взглянуть на плагин EasyMotion.
                                                                                                    0

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

                                                                                                      0
                                                                                                      В Vim для этого есть плагин easymotion. В нём перемещение к тексту состоит из двух-трёх нажатий на клавиши: 's' (перейти в режим поиска), далее символ, к которому нужно переместиться. Эти символы на экране подсвечиваются. После этого надо нажать последнюю клавишу, чтобы переместиться к этому символу. Например, перемещение к первому на экране определению C++-функции: 's{a'. Это быстрее, чем нашарить мышь, спозиционировать курсор и щёлкнуть, вернуть руки на место.
                                                                                                      +15
                                                                                                      Разработка и набивка текста это разные вещи, продуктивность набивки текста обычно не влияет на скорость разработки, а на качество может повлиять только отрицательно. Посыл изначально не верный, текстовый редактор это не правильный инструмент для программиста, это просто редактор текста.
                                                                                                        +5
                                                                                                        Вот хотел сказать примерно то же, но не рискнул. Я редко больше 1000 строк редактирую за весь день, а чаще — пару сотен. Моя продуктивность явно не упирается в набор текста.
                                                                                                          +9
                                                                                                          Это ключевой аргумент, именно поэтому vimеры его старательно игнорируют.
                                                                                                            0
                                                                                                            Скорость набора текста вообще не является аргументом. Но вот удобство набора — таки является. Вимом это делать удобнее. Вот как-то так.
                                                                                                              –4

                                                                                                              Вимом не только не удобнее, им вообще ничего делать невозможно. Как-то вот так.

                                                                                                                +3
                                                                                                                Как можно сделать столько ошибок в простой фразе «Я ничего не умею делать вимом»? ;)
                                                                                                              +3
                                                                                                              Во-первых, это не ключевой аргумент. Ключевой аргумент — комфортность работы. Когда пальцы привыкли делать достаточно сложные действия нажатием 2-3 клавиш, пользоваться другими способами мучительно.

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

                                                                                                            Более того, набивка текста вообще не влияет на скорость разработки, так как разработка — это в первую очередь построение абстрактных моделей и схем (для их представления другим разработчикам). Процесс разработки не связан ни с одним редактором или IDE. Не следует путать терминологию
                                                                                                          –1
                                                                                                          Работать с мышкой ооочень доооооолго, вы попробуйте обходиться без неё. В свое время почти полностью отказался от неё (sublim + vi mod в браузере + awesome wm). Сейчас крайне бесит, что в некоторых программах без мышки никак.
                                                                                                            +17
                                                                                                            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.
                                                                                                              +1
                                                                                                              Дайте линк, а?
                                                                                                                +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.
                                                                                                                +5
                                                                                                                Вот мне тоже хотелось бы линк на исследование. То, что кинул Evengard, извините не исследование, а такое же ИМХО автора, нет ни метода исследования, ни характеристики групп, не количества испытуемых, ничего (насколько я понял их контекста, они набирали рандомных людей, так я и так вам скажу, что по-началу мышка интуитивнее и быстрее).

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

                                                                                                                ps. Я не утверждаю, что все должны пользоваться вимом, пользуйтесь чем вам удобнее. Но говорить, что мышка быстрее клавиатуры, это, извините, нонсенс.
                                                                                                                  +4
                                                                                                                  Пруфы? Пфф… Кому нужны пруфы когда есть вбросы?!
                                                                                                                    +3
                                                                                                                    В статье как раз говорится о том, что клавиатура интуитивнее.
                                                                                                                    Только меня смущает, что статья из тех времён, когда у большинства людей вообще не было мышек?
                                                                                                                      0
                                                                                                                      Ну если искать на 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.
                                                                                                                      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.
                                                                                                                      В статье приводятся все необходимые подробности: и количество испытуемых (63 человека), и наборы экспериментов, и используемое оборудование, и выполняемые задачи. Даже определялся прогресс — как сильно люди могут улучшить результаты в ходе тренировок скорости работы с данными девайсами.
                                                                                                                        0
                                                                                                                        я прошу прощения, но вы прочитали эту статью? В ней проводятся 4 эксперимента, суть каждого из них — позиционирование на экране. В 1 эксперименте, например, нужно было двинуть курсор в рандомно появляющийся белый квадрат. Это здорово, но немного не по теме, которая обсуждается здесь.
                                                                                                                        +1
                                                                                                                        Конечно не исследование, так, хрень на постном масле. Всем гораздо интереснее было бы узнать, во что вы ни разу не поверите, а во что — поверите :)

                                                                                                                        И раз уж взялись меряться писькой с мышкой, приведите, пожалуйста, эти три волшебные клавиши, которыми вы в виме скопируете и вставите в произвольное место файла произвольную строку текста. Вот давайте, для определённости, пусть ваш текстовый курсор стоит в позиции 0, 0, скопируйте нажатием трёх клавиш 37-ю строку и вставьте в 12-ю строку между 27-м и 28-м символами. Напоминаю, у вас есть три нажатия по одной клавише, время пошло :)
                                                                                                                          0
                                                                                                                          Конечно не исследование, так, хрень на постном масле

                                                                                                                          Совершенно верно.
                                                                                                                          эти три волшебные клавиши, которыми вы в виме скопируете

                                                                                                                          Могу в одну клавишу. Какую вам хочется? Давайте на m. Все, сделал.
                                                                                                                            +3
                                                                                                                            вы правы, тремя кнопками (с настройками по-умолчанию) не обойтись. Вот последовательность
                                                                                                                            :37 enter
                                                                                                                            v$hy
                                                                                                                            :12 enter
                                                                                                                            27lp

                                                                                                                            Если вы новичок в виме, то да, над каждой командой нужно думать, уйдет много времени. Если все в пальцах, то получается быстрее (тем более, если визуально 28 символ не сильно отделен). Опять же, я не призываю пользоваться вимом, пользуйтесь чем угодно. Но клавиатура в подобных задачах быстрее. Другой вопрос нужны ли эти выигрыши в скорости (вопрос почти как про преждевременную оптимизацию). За себя я могу сказать, что мне просто нравится работать таким образом.
                                                                                                                              0
                                                                                                                              Вот уже больше похоже на правду. Итого 19 нажатий (это включая три шифта, который тоже кнопка). При этом еще зачастую спецсимволы и знаки препинания, которые на традиционной клавиатуре расположены по-идиотски, из-за чего их не каждый раз удается с первой попытки набрать вслепую. На самом деле, тремя кнопками тут не обойтись с любыми настройками, даже если у нас заранее заготовлен макрос для копирования и вставки строки — его, как минимум, надо вызвать (пусть будет одно нажатие), скормить ему три двузначных числа с разделителями (8 нажатий) и нажать ентер, итого 10. Мышью быстрее будет, другой вопрос, нужен ли этот выигрыш в скорости :) А если еще объединить мышь с хоткеями (к примеру, сделать, что когда ничего не выделено, пусть Ctrl-C копирует целиком текущую строку), операцию можно произвести в четыре нажатия и два тычка. Потратим время на движение мыши, да, но и его можно частично сэкономить, двигая мышь в точку назначения, пока нажимаем Ctrl-C.

                                                                                                                              Исследование у меня тоже вызывает вопросы. Какие операции они замеряли, какие у них в системе хоткеи, как организован гуй? Я вот думаю, хорошо бы ввести новую дисциплину специальной олимпиады по программированию, типа «бег по тексту с препятствиями». Команда задро… спортсменов может использовать любой редактор/IDE, обмазать его какими угодно модами и расширениями, тренироваться сколько хочет по затаскиванию мыши или запоминанию клавиатурных комбинаций. Потом всем командам раздают набор типовых заданий (заранее им неизвестный, чтобы не могли специально под него хоткеи заточить) и вперёд. Тогда рано или поздно станет понятен выбор чемпионов. А пока получается один субъективизм, кого-то сильнее бесит за мышку тягать, кого-то — клавиатуру топтать.
                                                                                                                          0
                                                                                                                          А миллионы мух знаете что выбирают?

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

                                                                                                                          Вопреки исследованию — Apple не собирается горячие клавиши вырезать из своих продуктов. Их там — огромное количество. Горячие клавиши очень активно применяются в MacOS уже много десятилетий.
                                                                                                                        +1
                                                                                                                        О! Я фактически зашел, чтобы прочесть эту фразу…
                                                                                                                          +1
                                                                                                                          Ну, во-первых, набирать мышью текст очень удобно, надо только приделать к ней пять-шесть кнопок, написать простенький спецдрайвер, и вводить двоичные кода символа.

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

                                                                                                                          Во-вторых, если взять устройство где нет ни мыши, ни клавиатуры, в смысле дешёвый android-планшет, выяснится, что Vim Touch — самый удобный редактор для работы с исходными текстами для такого устройства, не требует установки Hacker´s Keyboard, как текстовые редакторы c «традиционным» управлением с клавиатуры, позволяет нормально перемещатся по тексту не занимаясь спортивным попаданием в нужное слово, ну и вообще.
                                                                                                                            0
                                                                                                                            upd. Я не забыл об экранных клавиатурах, но для ввода мышью это, подозреваю, наиболее неудобный способ, поэтому я описал более-менее реалистично реализуемый способ быстрого ввода текста с многокнопочной мыши. Насколько я знаю эксперименты по вводу текста с пятикнопочного устройства были, и показали неплохой результат, хотя конечно, кодировку символов для такого придётся заучить. Вспомнил старую новость о проводившихся в Штатах (или Британии) соревновании по скорости ввода между старичками радистами с морзянкой и тинейджерами с телефонами и T9. Выиграло, предсказуемо, отнюдь не подрастающее поеоление.
                                                                                                                              +1
                                                                                                                              Насчёт пяти-шести кнопок это у вас тэг «Сарказм» отвалился или серьёзно опыт использования подобных штук имеете? Я подозреваю, что это была бы удобная приблуда к мобильнику/планшету, но что-то не видать их пока на рынке.
                                                                                                                                0
                                                                                                                                Изначально выше у меня тег сарказм (я бы не сказал, что он отвалился, как по мне он явно между слов и зачёркиваний проглядывает), хотя про реальный опыт использования подобных устройств (правда не совмещённых с мышью) я читал. А насчёт написать подобную «клавиатуру» для android — это идея. Надо будет попробовать.
                                                                                                                                  0
                                                                                                                                  Хотя нет, не подумал, возможностей мультитача для аккордной клавиатуры явно не хватит, и пяти настоящих кнопок ни на одном моём устройстве нет. Так что только в реальном железе, моего энтузиазма для воплощения такой идеи не хватит.
                                                                                                                                    0
                                                                                                                                    Да, это очевидно требует физического железа, вероятно, на задней стороне или отдельным гаджетом под вторую руку. Надеялся, что уже сделал кто.
                                                                                                                                      0
                                                                                                                                      Железная реализация будет убыточной, если только эффект от использования не будет настолько разительным, что подтянутся основные массы смс-писателей. Октодон, например, что-то подобное (хоть и не совсем) в железе сделать пытался, но на кикстартере набрали только 1/15 необходимой суммы. Видимо, мало кто не хочет переучиваться, носить с собой и цеплять к телефону ощутимого размера (и цены) девайс. Да что там девайс — даже сложные клавиатуры вроде основанных на Т9 или Hacker's Keyboard, или MessagEasy особым спросом не пользуются. Для большинства они без надобности, а для остальных они не предоставляют достаточных преимуществ, чтобы на них переходить, и начинать рассматривать мобильный девайс как средство создания контента, а не потребления.
                                                                                                                                      На мой взгляд, ситуация не изменится, пока и если не появится способ вводить и редактировать произвольный (не словарный) текст с приемлемой скоростью вслепую с экранной клавиатуры. Из тех клавиатур, что я видел, слепой ввод и редактирование не обеспечивается ни одной. Попытки делаются обычно в направлении увеличения размера кнопок и применения техник вроде Т9 или жестов (в т.ч. для команд редактирования). У MessagEase есть даже возможность убрать все надписи с кнопок для работы в «слепом» режиме. Но по-настоящему вслепую печатать не получается из-за необходимости отрывать палец от экрана, прицеливаться и попадать даже в эти крупные кнопки: промахи — не редкость. А вот клавиатур, где не было бы необходимости отрывать палец от экрана совсем я ещё не видел. Хотя кажется, что двигаться надо бы в этом направлении.
                                                                                                                                0
                                                                                                                                Надо понимать, что мыши тогда были несколько похуже.
                                                                                                                                  +1
                                                                                                                                  Мышь — это интуитивный инструмент, в этом его плюс. Но он не быстрый. В любом редакторе нормальные профи (не только в vi/vim) используют «горячие клавишы» и минимизируют использование мыши.

                                                                                                                                    –2
                                                                                                                                    Вот только на самом деле это неправда
                                                                                                                                      –1
                                                                                                                                      «жы-шы» :(
                                                                                                                                        0
                                                                                                                                        Обычно мне пофиг на минусы, но сейчас реально интересно. Минусующий считает, что «клавишы» — это правильное написание, или что из правила «жи-ши» есть исключения, или что взрослому человеку не должно быть стыдно за «клавишы»?
                                                                                                                                          0

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

                                                                                                                                      +1
                                                                                                                                      vim очень помогает в случаях когда нужно кодировать, деплоить и тестировать быстрее скорости мысли. А еще там поиск по регуляркам из каробки. И зразу есть консоль. И если у вас linux-server, то там 100% есть vim. И плагинов много. И свои можно писать. Да, использование vim это обычно легаси, но он того стоит. И файлы в 100500 строк сразу открывает.
                                                                                                                                        0
                                                                                                                                        vim очень помогает в случаях когда нужно кодировать, деплоить и тестировать быстрее скорости мысли.
                                                                                                                                        Задеплоить, а потом думать «а что же это я такое задеплоил?!»?
                                                                                                                                        И если у вас linux-server, то там 100% есть vim.
                                                                                                                                        ну, не знаю, в десктопной ubuntu я его каждый раз ставлю, может в серверной иначе. По-моему, nano уже потихоньку его вытесняет в качестве дефолтного редактора.
                                                                                                                                          0
                                                                                                                                          Люди еще и в Far Manager пишут код. Когда проект на столько хорошо знаком, что дальше некуда.
                                                                                                                                            0
                                                                                                                                            Основной 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 тоже).
                                                                                                                                              0

                                                                                                                                              Нету никакого форкнутого GNU nano, есть только просто nano.

                                                                                                                                        0
                                                                                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                                            0
                                                                                                                                            Для меня это была первая ссылка в гугле, а вообще полным полно таких обсуждений.
                                                                                                                                            Меня как с дества еще исправляли — так до сих пор помню
                                                                                                                                            0
                                                                                                                                            То чувство, когда chas-correct добавляет недопонимание.
                                                                                                                                            +46
                                                                                                                                            Я ничего против не имею любителей vi — прекрасные люди и зачастую специалисты.
                                                                                                                                            Вот только не понимаю зачем вы постоянно оправдываетесь в том какой редактор вы используете (а часто еще и заходя дальше на тему — это же не просто редактор это нечто большее)…

                                                                                                                                            Я искренне не понимаю зачем набирать ceHello[ESC] чтобы потом нажать '.' и превратить это просто в Hello — почему сразу не набрать это гребанное хелло?
                                                                                                                                            Вот и в этой статье в очередной раз описывается как вы сами себе создаете проблемы чтобы потом решить их с помощью VI и в очередной раз что то доказать… ну а остальным сказать что их редактор никудышний, как это сделано в выводах статьи
                                                                                                                                              +1
                                                                                                                                              >Я искренне не понимаю зачем набирать ceHello[ESC] чтобы потом нажать '.' и превратить это просто в Hello — почему сразу не набрать это гребанное хелло?
                                                                                                                                              Это работает не так. ce значит замена от текущей позиции курсора до конца слова (если курсор в слове. Если курсор на пробеле, то заменится пробел. Если курсор на первом символе слова, то заменится все слово) сразу после ce vim переходит в режим ввода. [ESC] выводит из режима ввода. Т.е. после ceHello[ESC] в тексте слово под курсором будет заменено на Hello. Точка повторяет эти махинации.
                                                                                                                                                +5
                                                                                                                                                Вопрос ведь не в этом. Я даже не буду углубляться — но с помощью ctrl+c ctrl+v и двойного клика мышкой по слову для выделения — это делается не намного дольше (если не быстрее). А если к примеру нужно в большом тексте сделать 100 замен то перемещение с помощью hjkl будет вероятно даже дольше нежели выделение мышкой. А многие сейчас даже приведут примеры как в их редакторе это вообще можно сделать одним кликом по какой нибудь кнопке — «заменить все».

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