Категория: Open Source


Многие из инструментов Unix дошли до нас практически в неизменном виде. Одной из подобных замшелостей является допотопный редактор VIM, который за 30 лет своего существования так и остался на уровне поделия для людей мнящих себя специалистами. Фактически, эти самые специалисты смогли создать редактор абсолютно не пригодный для использования нормальными людьми.

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


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

Клавиатура в VIM используется не по назначению. Нельзя использовать алфавитные клавиши без модификаторов для выполнения действий, особенно если нет строки состояния, в которой человек может хотя бы увидеть, в каком режиме находится редактор. А VIM по-умолчанию не имеет строки состояния (представьте себе автомобиль без панели приборов), и включить её пользователю очень непросто. Кроме того, получается, что VIM заставляет пользователя работать с клавиатурой компьютера так же, как мы работаем с клавиатурой сотового телефона. То есть, на одну и ту же клавишу навешано несколько действий и человеку нужно постоянно следить за контекстом, чтобы точно знать, что произойдет при нажатии - выполнится ли команда, или напечатается буква.

Кроме того, VIM увеличивает количество нажатий на клавиатуру. В нормальных редакторах для выполнения действия достаточно либо одного обычного нажатия, либо одного "полуторного" нажатия (то есть, одновременного нажатия модификатора и клавиши). В VIM для аналогичного действия надо нажимать гораздо больше клавиш - выйти в командный режим, нажать ":", ввести обычно двухбуквенную команду, нажать Enter.

Далее копи-паста с Хабра, на тему "я крут - потому, что я за пару месяцев освоил то, что может освоить любой пятикласник за несколько минут".

Цитата:
Пока вы не потратите по крайней мере месяц на ознакомление с VIM, вы, несомненно, будете его ненавидеть. Именно по этой причине большинство пользователей работают с Vim около дня, после чего к его использованию больше никогда не возвращается. Эти люди даже представить себе не могут, какой невероятной скоростью и гибкостью он обладает. Нужно всего-лишь найти в себе силы и преодолеть те трудности , которые встретятся вам на протяжении всего того времени, что вы знакомитесь с Vim.
Гораздо полезней найти в себе силы и прослушать курс по Cisco ICND, чем изучать несколько месяцев возможности текстового редактора.

Огромное количество режимов
Цитата:
Да, так и есть. Vim является необычным и нестандартным текстовым редактором (он намного лучше остальных!). Переход, скажем, с TextMate на Vim является более сложным процессом нежели переход с TextMate на Espresso. Всегда помните это. Особенно тогда, когда ты будешь рвать волосы на своей голове от того, что в Vim не появляется текст, который ты набираешь.
Вообще, можно провести простой тест. Человек, использующий VIM, может первый раз включить TextMate, и сделать основные действия по редактированию текста в нём. Человек, использующий TextMate ничего не сможет сделать в VIM при первом запуске, даже выйти из него. По мнению Линуксоидов это однозначно свидетельствет о том, что VIM лучше!

Цитата:
Несмотря на то, что в Vim есть огромное количество режимов, мы рассмотрим лишь три из них, которые являются наиболее важными. Но прежде, чем мы начнём, запомните, что в Vim одна клавиша может выполнять различные функции в зависимости от того, в каком режиме мы находимся. Что ещё больше приводит в замешательство — заглавные буквы выполняют другие функции, нежели буквы в нижнем регистре.
[quote]В командном режиме нажатие на i вызовет режим вставки. Однако, нажатие на I передвинет курсор в начало строки. Может это очень странно звучит, но именно в этом и заключается его невероятная мощь.

Прелестно! Про общепринятые сокращения (нанесенные даже на клавиатуру) говорить вообще не приходится. По F1 помощь не посмотришь, по F10 из программы не выйдешь, по F2 не сохранишь файл, по Esc не отменишь текущее действие. Кстати, клавиша Esc изначально не проектировалась для ввода Escape последовательной. Это позже из-за дополнительного кода 27, совпадающего с кодом клавиши Esc, Escape-последовательности стали называться Escape-последовательностями.

Цитата:
Командный режим. По умолчанию Vim находится именно в этом режиме. Вы можете рассматривать его, как режим, который ждёт команду и переключает редактор в соответствующий режим.
Режим вставки. вы можете перейти в него путём нажатия клавиши i в командном режиме. Этот режим предназначен главным образом для вставки текста (из буфера, или же методом печати). Когда все необходимые вам действия будут завершены, следует перейти назад, в командный режим.
Визуальный режим. Вам следует рассматривать его, как режим, с помощью которого вы можете производить навигацию по тексту. И не только… В обычном редакторе, для того, чтобы удалить пять строк текста, вам нужно выделить их с помощью мыши, а затем нажать на клавишу Backspace. Для того, чтобы сделать подобное в Vim, вам нужно выполнить всего несколько действий: нажать V для перехода в визуальный режим, набрать 5j, чтобы выделить искомые пять строк и, наконец, нажать d, чтобы выделенный текст удалить.

Я знаю, что всё это звучит очень странно, но это действительно удобно и очень быстро. Как лапша быстрого приготовления. Только намного вкуснее…
Тут автор забыл съеюморить боянистую шутку про четвертый тайный режим работы "пищать и все портить".

Цитата:
Vim — редактор времён наших предков
Вы часто могли слышать от своих знакомых вопросы типа «Разве Vim не является унылым старьём времён DOS?».
Да, на самом деле они правы. Его разработка ведётся вот уже на протяжении 30 лет. И да, он старше меня. Но несмотря на всё это, он находится в состоянии активной разработки. Последний релиз, версии 7.3, был выпущен в августе 2010 года.
За 30 лет развития так и не удалось создать человеческий интерфейс. Если бы развитие компьютеров пошло по unix-way, то компьютерами не могло бы пользоваться 99% людей.

Цитата:
Я обожаю сниппеты в TextMate

Однажды, вы обнаружите, что Vim не имеет «из коробки» такой функциональности, как сниппеты. Однако, вы можете добавить эту функциональность путём установки плагина под названием snipMate.
Тоесть чтобы начать полноценно работать нужно еще что-то гуглить, докачивать, читать мануалы по установке и решать плеяду различных проблем связанных с несовместимостью версий плагинов, битностью системы, используемой локалью, нестандартными путями до файлов и тд.

Цитата:
Я не могу использовать «стрелочки»

Это наглая ложь. В Vim вы спокойно можете их использовать так, как вам удобно. Обычно, функциональность этих самых «стрелочек» берут на себя клавиши h, j, k, l, которые передвигают курсор влево, вниз, вверх и, соответственно, вправо. Так обстоят дела по некоторым причинам:

Отсутствие выбора. Представьте, что вы вернулись на несколько десятков лет назад, когда у ПК «стрелочек» не было. Вместо них навигация по документу осуществлялась с помощью этих клавиш.
Меньшая подвижность. Я так не люблю отвлекаться. Представьте, что вам нужно выделить часть текста и для этого вы должны… отвлечься и потянуться за мышкой. Подход Vim позволяет мне не отвлекаться на неё лишний раз и держать руки постоянно над клавиатурой.
Ну и нахера?! На всех ПК уже как 20 лет есть эти стрелочки! Что разработчики хотят этим сказать? Что они по прежнему ориентируются на пользователей у которых на клаиатуре нет стрелочек?

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

Цитата:
Vim не предлагает что-то новое и необычное
Вы знаете, мне это не особо и нужно. У каждого редактора есть свои сильные стороны. Со временем вы поймёте, что Vim является очень быстрым и гибким редактором. Если же какой-то функциональности вам определённо не хватает, то вы можете установить плагин, коих сейчас тысячи.
Многие новички замечали тот факт, что Vim позволяет очень быстро заменить значение, находящееся в кавычках. Таким же великим чудом это было и для меня. Предположим, что у нас есть следующий фрагмент кода:
puts "Hello, world!"
В обычном редакторе, для того, чтобы изменить значение, находящееся в кавычках, нам нужно его выделить, а затем набрать новое значение. В Vim данный процесс упрощён до невозможности. Просто наберите ci", а затем смело вводите новое значение.
Просто ёбаный ужос! Поистине просто, а главное интуитивно понятно!

Цитата:
Мой vimrc пуст
Это действительно ужасает. Когда вы впервые запустите Vim, то обнаружите, что в его состав входит лишь бомж-пакет: никакой подсветки кода, ни форматирования… вообще ничего! Если же вы использует кастомную сборку Vim, то там должен быть vimrc, в который будут заложены базовые настройки.
Главный девиз Unix. "Вместо того, чтобы работать - сиди и настраивай!"

http//stopLinux.org.ru/uploads/images/news_2012/vim_vs_visual_studio.png