Какой смысл в плагине viEmu для Visual Studio? - PullRequest
23 голосов
/ 06 апреля 2009

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

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

Может кто-нибудь объяснить мне, как с ним можно работать более продуктивно, чем, скажем, с помощью обычного редактора VS.NET? Более того, зачем кому-то хотеть использовать viEmu, который якобы превращает ваш VS.NET в древний vi?

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

Ответы [ 11 ]

113 голосов
/ 06 апреля 2009

По правде говоря, вы никогда не видели, чтобы кто-то использовал Vi, кто действительно опытен в этом. Когда вы обычно используете Visual Studio, вы часто перемещаете руку к мышке, щелкаете по опциям, диалогам, классам и т. Д.

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

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

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

94 голосов
/ 06 апреля 2009

На самой странице viEmu есть довольно хорошая статья, которая может помочь ответить на ваш вопрос: Почему, о, ПОЧЕМУ, делайте эти #? @! чокнутые используют ви?

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

$welcomeMessage = "Welcome to SiteName!"; // shows at the top of homepage

В обычном редакторе, как бы вы изменили строку? Вам, вероятно, придется протянуть руку, схватить мышь и осторожно выбрать ее, или переместить курсор в первую кавычку и удерживать нажатой клавишу «Shift» и стрелку вправо, пока не дойдете до закрывающей кавычки.

В vim, когда мой курсор находится между кавычками, я набираю ci", и он стирает все внутри кавычек и переводит меня в режим вставки, чтобы я мог ввести новое значение I хочу. Моим рукам даже не нужно было двигаться из моей обычной позиции.

Есть много таких вещей, я думаю, вам действительно нужно потратить время на использование редактора, чтобы понять, насколько он мощный. Поначалу он очень медленный и сложный в использовании, поэтому многие люди пробуют его в течение короткого времени и думают: «Это глупо, все намного сложнее», но через некоторое время вы начинаете думать с точки зрения движений, все это начинает становиться автоматическим, и это намного, намного быстрее, чем при использовании «обычного» редактора. Как я уже сказал, я не могу вернуться назад.

26 голосов
/ 07 февраля 2014

У меня также были проблемы с пониманием того, почему люди выбирают vim в качестве редактора, хотя я использовал его время от времени, пока я, наконец, не «понял». Я думаю, что большинство объяснений "почему?" не удается, потому что они не могут показать пару важных моментов. Чтобы объяснить эти моменты, сначала вам нужно понять, что в vim вы манипулируете текстом, в основном находясь в командном режиме. Т.е. по умолчанию ваши нажатия клавиш являются командами и обычно не вставляют текст, если только эти команды (такие как a ppend, i nsert, c hange) вставить режим. Это позволяет легко перемещаться по тексту и редактировать его, даже не касаясь мышью и не отводя рук от «позы редактирования».

Теперь ключевые моменты:

  • Команды Vim делятся на существительные, глаголы и модификаторы.
  • Редактирование выполняется путем их объединения.

И это то, что дает Виму силу. Чтобы проиллюстрировать это, вот несколько наиболее часто используемых команд:

  • Существительные: w ord, s интенсивность, b блокировка, кавычки и фигурные скобки.
  • Глаголы: c change, i nsert, v isual, d elete
  • Модификаторы: i nside, a round, t ill

И чтобы проиллюстрировать, как их можно смешать:

  • Хотите изменить слово? с ш
  • То же самое, но курсор в середине слова? с а ш
  • Изменить текст внутри кавычек? c i ", также изменить кавычки? c a "
  • Удалить тело функции? * +1078 * д г * ** 1082 тысяча восемьдесят один * {* +1084 *
  • Удалить до первой запятой? * 1 086 * д * ** +1088 одна тысяча восемьдесят-семь * T ,
  • Удалить до второй запятой? * 1 094 * д * +1096 * 2 * +1098 * T * ** 1100 тысяча девяносто-девять *, * +1102 *
  • Перейти к первой запятой? т
  • Выберите слово? v я ш

Также обратите внимание, как все команды красиво переводятся на естественный язык:

  • d elete w ord
  • c Хэндж i nside {

В vim, если вы выучите новый глагол, существительное или модификатор, вы можете легко смешивать и сочетать с тем, что вы уже знаете. Поэтому, изучая только одну вещь, вы учитесь делать много разных вещей.

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

И это в основном то, что вам "нужно", чтобы понять силу vim и стать опытным пользователем за одну ночь.

P.S. если вам не нравится vim, потому что он основан на консоли и вам нужен современный текстовый редактор, тогда я предлагаю заглянуть в Sublime Text editor, который является отличным редактором и также поддерживает режим vim.

P.S.2. Я также рекомендую сопоставить Esc ключ с j j и k k , что значительно облегчает работу .

6 голосов
/ 06 апреля 2009

Вы ошибаетесь насчет "одной редактируемой строки внизу экрана". Весь текст в окне редактируемый. И это делает прокрутку (все версии) и в случае gvim, имеет полосы прокрутки.

Может быть, вы случайно переключили его в «режим ex». Это легко сделать и может сбить с толку.

4 голосов
/ 05 мая 2010

Если вам нужно вдохновение или вы хотите увидеть кого-то, кто действительно знает, что они делают с Vim, посмотрите на калькулятор струн Гари Бернхардта Kata In Python, посмотрите на него! http://vimeo.com/8569257

4 голосов
/ 01 мая 2009

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

http://www.youtube.com/watch?v=FcpQ7koECgk&feature=related

3 голосов
/ 06 апреля 2009

Я думаю, что у них есть длинный и приемлемый ответ на ваш вопрос на сайте viEmu:

Еще один, еще более мощный пример: давайте возьмем команду «ce», которая состоит из «c» и «e». Команда 'c'hange удаляет диапазон, заданный следующей командой движения, а также входит в режим вставки. Это то же самое, что и «d», но с той разницей, что он входит в режим вставки, а не остается в обычном режиме. Благо в том, что текст, который вы вводите в следующем (коротком) сеансе ввода, также является частью команды. Поэтому, если вы делаете «ceHello>», то вы заменяете курсор от конца слова на «Hello» и «.» Впоследствии команда будет работать точно так же: заменить до конца слова на «Hello».

От: http://www.viemu.com/a-why-vi-vim.html

У меня viEmu установлено ~ полгода назад. Но я должен сказать (возможно, без сильного опыта Linux), я никогда не использовал его. Слишком чуждо, слишком далеко, слишком сложно.

Так что ИМХО viEmu это большая техническая и историческая задача, но не более для 95% разработчиков.

2 голосов
/ 02 июля 2014

В основном с Vi (или ViM) вы получаете быстрее, потому что вам не нужно прикасаться к мышке и улучшается карта клавиш (это представляет стоимость обучения, но стоит усилий) для выполнения любой манипуляции с текстом в очень простой Однажды, что основы изучены.

Топ 10 вещей, которые пользователь должен знать о Vim

1 голос
/ 07 апреля 2009

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

1 голос
/ 06 апреля 2009

У меня нет опыта работы с VS.Net, но я думаю, что он имеет те же функции, что и любая другая IDE.

Я обнаружил, что изучение всех ключевых команд редактора в моей IDE было достаточной заменой Vi. Такие вещи, как переименование, отступ, форматирование, перемещение строк и тому подобное.

Так что я думаю, что главная победа - это то, что кто-то, кто уже знает Vi, будет продуктивным, не изучая VS.Net.

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

...