Какой смысл в плагине viEmu для Visual Studio?
Это может звучать немного провокационно, но на самом деле это реальный вопрос. Не стесняйтесь редактировать, если вам не нравится тон.
Теперь, насколько я понимаю vi из моего короткого опыта работы с ним, как 10 лет назад, это примитивный текстовый редактор с одной редактируемой линией в нижней части экрана, созданной до того, как были изобретены полосы прокрутки, с некоторыми сумасшедшими ярлыками, чтобы преодолеть это ограничение.
Может кто-нибудь объяснить мне, как можно быть более продуктивным с этим, чем, скажем, с обычным редактором VS.NET? Более того, зачем кому-то использовать viEmu, который якобы превращает ваш VS.NET в древний vi?
Я хочу попробовать, но мне нужна мотивация, чтобы преодолеть кривую обучения.
11 ответов
На самой странице viEmu есть довольно хорошая статья, которая может помочь ответить на ваш вопрос: почему, о, ПОЧЕМУ, делайте эти #?@! чокнутые используют ви?
Я провел последние пару месяцев, пытаясь научить себя использовать vim "правильно", и теперь я с трудом выдерживаю использование других редакторов, потому что они кажутся недостаточно сильными и неуклюжими. Для случайного примера представьте, что у вас есть строка кода, которая выглядит следующим образом:
$welcomeMessage = "Welcome to SiteName!"; // shows at the top of homepage
В обычном редакторе, как бы вы изменили строку? Вам, вероятно, придется протянуть руку, схватить мышь и осторожно выбрать ее, или переместить курсор в первую кавычку и удерживать нажатой клавишу "Shift" и стрелку вправо, пока не дойдете до закрывающей кавычки.
В VIM, когда мой курсор находится между кавычками, я набираюci"
и он стирает все в кавычках и переводит меня в режим вставки, чтобы я мог ввести новое значение, которое я хочу. Моим рукам даже не нужно было двигаться из моей обычной позиции.
Подобных вещей так много, что, думаю, вам действительно нужно потратить время на использование редактора, чтобы понять, насколько он мощный. Поначалу он очень медленный и сложный в использовании, поэтому многие люди пробуют его в течение короткого времени и думают: "Это глупо, все намного сложнее", но через некоторое время вы начинаете думать с точки зрения движений, все это начинает становиться автоматическим, и это намного, намного быстрее, чем при использовании "обычного" редактора. Как я уже сказал, я не могу вернуться сейчас.
По правде говоря, вы никогда не видели, чтобы кто-то использовал Vi, кто действительно опытен в этом. Когда вы обычно используете Visual Studio, вы часто перемещаете руку к мыши, щелкаете по опциям, диалогам, классам и т. Д.
С ViEmu ваша рука никогда не покидает клавиатуру. Вы компилируете, переключаете файлы, выделяете группы текста, исправляете отступы, выполняете сложные движения в своем коде и выполняете поиск регулярных выражений за считанные секунды. Для людей, которые быстро набирают текст, это позволяет вам достичь скорости для задач, которые вы не смогли бы выполнить иначе.
Многие люди будут противостоять этому, говоря что-то вроде: "Большая часть моего времени на разработку тратится на размышления. Дополнительная скорость, которую я получаю от использования подобных инструментов, ничтожна".
Это не аргумент по моему мнению. Это правда, что для большинства больших задач программирования вы тратите гораздо больше времени на планирование и размышления, чем на самом деле бросаете код. Но это не значит, что возможность выразить себя через IDE в 2 раза быстрее не повлияет на вашу производительность как программиста.
У меня также были проблемы с пониманием того, почему люди выбирают vim в качестве редактора, хотя я использовал его время от времени, пока, наконец, не "понял". Я думаю, что большинство объяснений "почему?" не удается, потому что они не могут показать пару важных моментов. Чтобы объяснить эти моменты, сначала вам нужно понять, что в vim вы манипулируете текстом, в основном находясь в командном режиме. Т.е. по умолчанию ваши нажатия клавиш являются командами, и обычно они не вставляют текст, если только эти команды (например, ppend, isert, c hange) не переключаются в режим вставки. Это позволяет легко перемещаться по тексту и редактировать его, даже не касаясь мышью и не отводя рук от "позы редактирования".
Теперь решающими моментами являются:
- Команды Vim делятся на существительные, глаголы и модификаторы.
- Редактирование выполняется путем их объединения.
И это то, что дает Vim власть. Чтобы проиллюстрировать это, вот несколько наиболее часто используемых команд:
- Существительные: word, сущность, b lock, кавычки и фигурные скобки.
- Глаголы: с изменением, вставкой, фактически, удалением
- Модификаторы: внутри, вокруг, плохо
И чтобы проиллюстрировать, как вы можете их смешать:
- Хотите изменить слово? с ж
- То же самое, но курсор в середине слова? с ж
- Изменить текст внутри кавычек? c i ", также меняйте кавычки? c a "
- Удалить тело функции? я
- Удалить до первой запятой? д т ,
- Удалить до второй запятой? д 2 т ,
- Перейти к первой запятой? т ,
- Выберите слово? V я W
Также обратите внимание, как все команды красиво переводятся на естественный язык:
- D Elete Word
- могу измениться {
В vim, если вы выучите новый глагол, существительное или модификатор, вы можете легко смешивать и сочетать с тем, что вы уже знаете. Таким образом, изучая одну вещь, вы узнаете, как делать много разных вещей.
Еще одна замечательная вещь - vim запоминает, какие команды вы использовали, и вы можете повторить последовательность, просто нажав ., Для этого поста мне пришлось окружить много букв тегом . Но я сделал это только один раз, а затем просто просмотрел каждую букву и нажал .,
И это в основном то, что вам "нужно", чтобы понять всю мощь vim и стать опытным пользователем за одну ночь.
PS Если вам не нравится vim, потому что он основан на консоли и вам нужен современный текстовый редактор, тогда я советую заглянуть в Sublime Text editor, который является отличным редактором и также поддерживает режим vim.
PS2. Я также рекомендую сопоставить клавишу Esc с j j и k k, что значительно упрощает работу.
Вы не правы по поводу "одной редактируемой строки внизу экрана". Весь текст в окне редактируемый. И он делает прокрутку (все версии) и в случае gvim, имеет полосы прокрутки.
Может быть, вы случайно поместили его в "бывший режим". Это легко сделать и может сбить с толку.
Если вам нужно вдохновение или вы хотите увидеть кого-то, кто действительно знает, что они делают с Vim, посмотрите на калькулятор струн Гари Бернхардта Kata In Python, посмотрите на него! http://vimeo.com/8569257
Еще один ответ заставил меня задуматься о том, что смотреть какое-то умелое редактирование с использованием vim было бы довольно показательно, поэтому я выкопал это видео, показывающее основные и более продвинутые движения во время кодирования. Этот человек может быть даже немного эффективнее, используя некоторые оценки и т. Д., Но это дает представление.
Я думаю, что у них есть длинный и приемлемый ответ на ваш вопрос на сайте viEmu:
Еще один, еще более мощный пример: давайте возьмем команду "ce", которая состоит из "c" и "e". Команда 'c'hange удаляет диапазон, указанный в следующей команде движения, а также входит в режим вставки. Это то же самое, что и "d", но с той разницей, что он входит в режим вставки, а не остается в обычном режиме. Благо в том, что текст, который вы вводите в следующем (коротком) сеансе ввода, также является частью команды. Так что, если вы делаете "ceHello>", вы заменяете курсор от конца слова на "Hello" и "." Впоследствии команда будет работать точно так же: заменить до конца слова на "Hello".
От: http://www.viemu.com/a-why-vi-vim.html
Я установил viEmu ~ полгода назад. Но я должен сказать (возможно, без сильного опыта Linux), я никогда не использовал его. Слишком чуждо, слишком далеко, слишком сложно.
Так что, IMHO, viEmu, это большая техническая и историческая задача, но не более для 95% разработчиков.
В основном с Vi (или ViM) вы получаете быстрее, потому что вам не нужно прикасаться к мыши, а карта клавиш улучшена (это представляет стоимость кривой обучения, но стоит усилий) для выполнения любых манипуляций с текстом очень простым способом, как только это основы изучены.
Я думаю, тебе действительно стоит попробовать Вима.
Если вы быстро попробовали Vi десять лет назад, я могу понять, что вы не оценили это. Это не очень удобно с первого взгляда. На самом деле его настоящая сила раскрывается, когда вы начинаете чувствовать себя комфортно с движениями и начинаете создавать свои собственные настройки. Когда Vim знаком с вами, вы можете понять, почему он заслуживает изучения.
У меня нет опыта работы с VS.Net, но я думаю, что он имеет те же функции, что и любая другая IDE.
Я обнаружил, что изучение всех ключевых команд редактора в моей IDE было достаточной заменой Vi. Такие вещи, как переименование, отступ, форматирование, перемещение строк и тому подобное.
Таким образом, я думаю, что главная победа будет для кого-то, кто уже знает Vi, чтобы быть продуктивным без изучения VS.Net.
Но с другой стороны, Vi обладает некоторыми поистине эзотерическими, но мощными функциями, которые, вероятно, не могут сравниться с вашим стандартным редактором IDE.
Я на самом деле использую VS только для отладки в эти дни. Кодирование с помощью vim (настоящий vim, а не viemu) - просто лучший опыт.
Теперь я не собираюсь утверждать, что использование одного над другим имеет какое-то значение для производительности - в конце концов, я трачу большую часть своего времени, пытаясь выяснить, как решить проблему - ввод кода является легкой частью.