Skip to content

Instantly share code, notes, and snippets.

@erthalion
Last active December 20, 2017 10:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save erthalion/337744222e93e22174a64cf2689de94b to your computer and use it in GitHub Desktop.
Save erthalion/337744222e93e22174a64cf2689de94b to your computer and use it in GitHub Desktop.

https://tonsky.livejournal.com/314598.html

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

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

Для начала давайте оспорим тезис, что набор текста — редкая операция. По моим оценкам, набор и трансформации делятся скорее как 50%/50%

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

Так вот, не хочу никого расстраивать, но система команд получилась такой не из-за какого-то великого инсайта, а просто потому, что у автора был тормозной модем и он «хотел печатать быстрее, чем обновлялся экран»

Огромное количество софта было разработано в 90-е с дизайнами под совершенно другие условия, нежели мы имеем сейчас. Базы данных создавались для медленных шпиндельных дисков с микроскопическим количеством памяти, редакторы - под 80 колонок в терминале. Это не мешает им до сих пор развиваться, активно использоваться и успешно решать необходимые задачи.

В мире Vim выделить до кавычки и выделить до кавычки минус один символ — две разных задачи, в современном мире — одна, решающаяся одним инструментом — двиганием курсора.

Это крайне зависит от того, как вы думаете, когда работаете с кодом.

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

Visual mode вполне справляется с задачей мгновенной связи.

Но зато в Vim удобные «шорткаты» (команды, окей) и их много! Да, но в современных редакторах их не то чтобы сильно меньше.

По моим ощущениям во многих "современных редакторах" они либо менее настраиваемые/гибкие, но могу ошибаться.

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

Vim mode есть почти везде, даже на тостере.

У него, например, два буфера обмена ¯_(ツ)_/¯ и оба внутренние. Ни один из них не попадет в ваш системный, т.е. скопировать текст внутри Vim и вставить его еще куда-то не получится.

Да, два буфера это странно. Про невозможность скопировать - неправда.

он его будет набирать посимвольно, что медленно, смешно и хреначит все отступы к чертям. Да, только из-за этого есть специальный режим «paste mode» и да, его-то как раз легко забыть включить/выключить.

Для этого есть шорткаты.

В итоге я хочу подчеркнуть, что все-таки в тесте высказано именно "мнение", как верно сказано в начале, а не "факты".

@tonsky
Copy link

tonsky commented Dec 20, 2017

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

Ну это странный аргумент. Нечто, появившееся в 91 году, могло устареть, а могло и нет. То, что X не устарело, ничего не говорит о Y. И да, дата появления Vi — 1976, давайте не будем педантами, мои заметки не о конкретной реализации, а о истоках идеи.

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

Вроде бы вы написали то же самое, что и я. 50%/50% трансформации и ввод текста, остальное — навигация.

Огромное количество софта было разработано в 90-е с дизайнами под совершенно другие условия, нежели мы имеем сейчас. Базы данных создавались для медленных шпиндельных дисков с микроскопическим количеством памяти, редакторы - под 80 колонок в терминале. Это не мешает им до сих пор развиваться, активно использоваться и успешно решать необходимые задачи.

А у вас негров вешают. И что?

Visual mode вполне справляется с задачей мгновенной связи.

Ну это либо-либо. Либо супер-короткие невизуальные команды, либо через v ходить. Это же не нормальный режим, и я так понял его обычно не включают?

По моим ощущениям во многих "современных редакторах" они либо менее настраиваемые/гибкие, но могу ошибаться.

А что именно понимается под настраиваемостью/гибкостью? Примеры, которые никто не может повторить?

Vim mode есть почти везде, даже на тостере.

А) надо бегать и узнавать
Б) надо включать
В) не везде
Г) если есть, то это обычно навигация по hjkl и ну еще какой-то рандомный небольшой сабсет команд, на которые у автора хватило сил

Про невозможность скопировать - неправда.

Блин, там прям следующим предложением это написано в посте. Читайте, пожалуйста

Для этого есть шорткаты.

Ну да, создаем проблему и героически с ней боремся. Так победим!

@erthalion
Copy link
Author

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

Вроде бы вы написали то же самое, что и я. 50%/50% трансформации и ввод текста, остальное — навигация.

Навигация - это тоже работа с текстом, почему вы ее исключаете из рассмотения?

Visual mode вполне справляется с задачей мгновенной связи.

Ну это либо-либо. Либо супер-короткие невизуальные команды, либо через v ходить. Это же не нормальный режим, и я так понял его обычно не включают?

Я включаю - таким образом супер-короткие команды для выделения сразу показывают, что именно будет отредактировано (а остальные супер-короткие комманды обычно не нуждаются в визуализации, т.к. применяются сразу и дают обратную связь сразу).

Vim mode есть почти везде, даже на тостере.

А) надо бегать и узнавать
Б) надо включать
В) не везде
Г) если есть, то это обычно навигация по hjkl и ну еще какой-то рандомный небольшой сабсет команд, на которые у автора хватило сил

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

По моим ощущениям во многих "современных редакторах" они либо менее настраиваемые/гибкие, но могу ошибаться.

А что именно понимается под настраиваемостью/гибкостью? Примеры, которые никто не может повторить?

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

А у вас негров вешают. И что?
Ну да, создаем проблему и героически с ней боремся. Так победим!

Эти фразы я даже не рассматриваю, как конструктивные аргументы - они только подтверждают отсутствие фактов, и наличие персонального мнения.

@tonsky
Copy link

tonsky commented Dec 20, 2017

Навигация - это тоже работа с текстом, почему вы ее исключаете из рассмотения?

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

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

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

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

Есть ощущение, что вы как-то плавно перешли к спору «Vim лучший редактор по совокупности характеристик». Речь была не об этом, а о том, что:

  • устарел он или нет,
  • представляет ли его «особенный» способ редактирования текста что-то выдающееся

Эти фразы я даже не рассматриваю, как конструктивные аргументы - они только подтверждают отсутствие фактов, и наличие персонального мнения.

Это не конструктивные аргументы — это указание на дыры в ваших аргументах.

@erthalion
Copy link
Author

Навигация - это тоже работа с текстом, почему вы ее исключаете из рассмотения?

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

Но вопрос же в "Для начала давайте оспорим тезис, что набор текста — редкая операция." - на мой взгляд это надо рассматривать в совокупности навигация/модификация/создание нового кода, а не только модификация/создание нового кода.

Есть ощущение, что вы как-то плавно перешли к спору «Vim лучший редактор по совокупности характеристик».

Хм...немного - но в целом, было утверждение, что шорткаты везде развесистые, на что я хочу отметить, что в vim вы действительно можете сделать их для действительно всего (и это далеко не так в остальных случаях) и оптимизировать под себя в процессе.

Это не конструктивные аргументы — это указание на дыры в ваших аргументах.

Первый пример - утверждение о том, что vim устарел, т.к. создавался для медленного интернета. Мой контраргумент - много чего создавалось для условий, сильно отличных от современных, и это не повлияло на их полезность. Где здесь дыры?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment