Каковы преимущества обучения Vim?

Как программист, я провожу много часов на клавиатуре, и я занимаюсь этим последние 12 лет, более или менее. Если в течение всего этого времени я никогда не привык к этому, это раздражающие и почти бессознательные постоянные микроперерывы, которые я испытываю при кодировании, из-за некоторых из наиболее распространенных задач редактирования кода. Такие вещи, как простая копия и вставка из другой строки (или даже одной строки) или перемещение 1 или 2 строк вверх или вниз от текущей позиции, требуют слишком большого набора текста или использования клавиш со стрелками... и оно получает хуже, когда я хочу двигаться дальше - я в конечном итоге использую мышь. Теперь представьте себе тот же сценарий, но на ноутбуке.

Я всегда считал изучение VIM, но время, необходимое для его освоения, всегда заставляло меня отступить.

Я бы хотел услышать от людей, которые узнали об этом, и если это окажется одной из тех вещей, без которых вы не сможете жить.

На работе я использую VS2008, С# и R #, которые вместе делают код редактирования намного быстрее и проще, чем когда-либо, но даже я думаю, что мне не понравилось использовать мышь вообще.

И даже клавиши со стрелками.

471
задан Trap 28 февр. '09 в 2:27
источник поделиться

34 ответов

  • 1
  • 2

Я использую vi и vim также около 20 лет, и я все еще изучаю новые вещи.

Дэвид Рейнер Лучший из Vim Tips - отличный список, хотя он, вероятно, более полезен, когда вы знакомы с vim.

Я также хочу упомянуть сайт ViEmu, в котором есть отличная информация о vi/vim tips и особенно статья Почему, о, ПОЧЕМУ, эти орехи используют vi? (заархивированная версия)

250
ответ дан Greg Hewgill 28 февр. '09 в 2:31
источник поделиться

Могу ли я жить без него? Легко.

Это полезно? Да.

Причины для обучения

  • vi гарантированно существует во всех Unix-системах и существует на большинстве Linux. Такой широкий охват делает изучение того, что он стоит.

  • Гораздо быстрее использовать vi для редактирования sudo:

    $sudo vi

  • Кроме того, GMail использует команды vi-ish для выбора и перемещения сообщений по электронной почте!

Вам не обязательно быть мастером.

Просто изучите

Основы:

  • Как перейти из командного режима в режим вставки i
  • Как перейти из режима вставки в командный режим Esc
  • Как перемещаться по строке в командном режиме k
  • Как перемещаться по строке в командном режиме j
  • Как перемещаться по левому краю символа в командном режиме h
  • Как перемещаться по правому символу l
  • Как сохранить файл :w Enter (написать)
  • Как выйти без сохранения (в командном режиме) :q! Enter
  • Как отменить u
  • Как восстановить Ctrl + r
  • Вы можете комбинировать запись и выйти (в командном режиме): :wq Enter

Оттуда остальное просто сделает вас быстрее.

185
ответ дан Trampas Kirk 28 февр. '09 в 2:49
источник поделиться

Выполнение vimtutor заняло у меня всего 30 минут, чего было достаточно, чтобы познакомиться с vim. Это стоило каждой секунды.

138
ответ дан Сыч 28 февр. '09 в 2:31
источник поделиться

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

Причина в том, что эти редакторы очень оптимизированы для выполнения тех задач, которые вы будете делать много. Например, рассмотрите возможность добавления одного и того же бита текста в конец каждой строки. Это тривиально в редакторе Serious Text Editor, но в целом смехотворно громоздко.

Обычно функции vim killer считаются: A), что он доступен почти во всех Unix, с которыми вы когда-либо столкнетесь, и B) вашим пальцам очень редко приходится покидать домашнюю строку, а это значит, что вы сможете редактировать текст очень, очень быстро. Он также обычно очень быстрый и легкий даже при редактировании огромных файлов.

Однако есть много альтернатив. Разумеется, Emacs является наиболее распространенным примером, и это намного больше, чем просто расширенный текстовый редактор, если вы действительно вникнете в него. Я лично очень счастлив TextMate теперь после нескольких лет использования vim/gvim.

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

Если вы ничего не делаете, изучите основные элементы управления навигацией для vim и Emacs, так как они всплывают повсюду. Например, вы можете использовать элементы управления Emacs в любом текстовом поле ввода в Mac OS, в большинстве оболочек Unix, в Eclipse и т.д. Элементы управления vim можно использовать в less (1), на Slashdot, на gmail и т.д.

Удачи!

69
ответ дан Ryan Bright 28 февр. '09 в 3:05
источник поделиться

Это определенно стоит усилий.

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

Здесь очевидный:

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

И это менее известные причины для изучения Vim:

  • Это не так много усилий, как вы думаете. Пропустите через Vim tutor один раз (vimtutor в оболочке или в Windows запустите его из папки Vim в меню "Пуск" ) и вы уже будете на пути к компетенции, и все это будет вниз оттуда. Я был до уровня, на котором я мог бы использовать Vim на работе, без какой-либо заметной производительности в течение менее недели.

  • Это весело! Редактирование текста для меня сейчас похоже на игру. Я активно наслаждаюсь этим - это довольно смешно, когда вы об этом думаете.

Есть также две хорошие причины, чтобы не учиться Vim:

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

  • Опять же, это затягивает, и хотя вы не потеряете какую-либо производительность от фактического использования Vim, вы будете тратить часы на поиск хороших советов, чтобы сделать ваш Vim опыт еще лучше, и прочитав тег Vim в переполнении стека.

36
ответ дан Rich 06 мая '10 в 16:43
источник поделиться

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

Что касается того, как начать, просто погрузитесь и начните использовать vim для всего.

P.S. Дебаты emacs-vs-vi бесконечны. Я использую emacs уже 26 лет. Если бы я начал снова сегодня, я бы изучил vim, потому что (а) он стал лучше, и (б) есть намного меньше ключей-модификаторов (Ctl-Alt-V, кто-то), и пользователи vim, похоже, получают гораздо меньшую печатную травму.

32
ответ дан Norman Ramsey 28 февр. '09 в 6:48
источник поделиться

Вы можете получить хорошую функциональность из vim, изучив значения только 16 ключей: ijkdbw9:q!%s/nN Esc. Вы можете сделать голые кости только с i:wq Esc.

Первые два ключа, которые вам нужно знать: Esc выводит вас в режим команд (режим, в котором вы запускаете), и i выводит вас в режим вставки (обычный ввод).


Для сохранения вам нужно

  • выйти из режима ввода (Esc)
  • введите двоеточие :
  • введите строчный регистр w, затем Enter

Чтобы сохранить и закрыть, вам нужно

  • выйти из режима ввода (Esc)
  • введите двоеточие :
  • введите строчный регистр wq, затем Enter

Чтобы не сохранять и не удалять, вам нужно

  • выйти из режима ввода (Esc)
  • введите двоеточие :
  • введите строчный q!, затем Enter

Чтобы узнать больше, вы можете запустить vimtutor в командной строке. Это урок средней продолжительности, хорошо структурированный.

Помимо i и Esc: вы можете реплицировать или превзойти некоторые функции MS Word только с помощью jkwbd3:%s/nN.

  • b возвращает слово (Ctrl + )
  • w отправляет вам слово (Ctrl + )
  • 9w переносит вас на девять слов
  • db удаляет предыдущее слово (Ctrl + Backspace)
  • d3b удаляет три предыдущих слова
  • 9j перемещается на 9 строк
  • / ornithopter Enter возвращает вас к следующему экземпляру слова "ornithopter", затем n и n к следующему и предыдущему появлению "ornithopter" соответственно.
  • : %s/confounded/dangfangled/ Enter заменяет каждое "смешение" на "dangfangled" (например, find and replace all в MS Word)

Любой из них должен запускаться в режиме "команды" (Esc), а не вставить режим (i).

17
ответ дан isomorphismes 21 янв. '12 в 3:39
источник поделиться

Недавно я перешел на VIM, и я думаю, что это того стоит. Если вам нужно "просто сделать что-то", вы всегда можете оставаться в режиме вставки, где vim (в основном), как обычный текстовый редактор.

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

16
ответ дан Gabe Moothart 28 февр. '09 в 2:35
источник поделиться

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

Когда я много работал в средах UNIX, я не мог жить без него. Даже когда VIM не был установлен на машине UNIX, я мог бы хотя бы использовать vi. Вы всегда можете рассчитывать на это - даже если машина не ваша (это у клиента).

Теперь я программирую на С# и в основном работаю над средой Windows. Я установил VIM на свой компьютер... и мне это не нужно.

Оцените, действительно ли вам нужен VIM, и если он поддерживает вас в вашем "потоке работы". Попробуйте. Играть с этим. Если вы считаете, что вам это нужно, придерживайтесь его... кривая обучения очень крутая.

12
ответ дан Theo Lenndorff 28 февр. '09 в 2:41
источник поделиться

Я изучил vi, потому что должен был.

Мой сумасшедший учитель заставил нас научиться программировать на C, используя терминал для системы AIX.

Это была настоящая боль, но она того стоила.

Сегодня я использую только vi для быстрых изменений или небольших программ.

Когда мне нужно идти на проект, я скорее использую и IDE. В моем случае идея IntelliJ очень хороша в задаче, потому что я могу кодировать часы, не хватая мышью.

Я не знаю, сколько ярлыков имеет VS2008, но если они так же открываются, как Eclipse, я думаю, что у вас проблемы с vi.

Если вы НЕ редактируете код вне среды IDE, а в вашей среде IDE есть хорошие ярлыки, лучше изучите их, а затем идите и изучайте vi.

:)

10
ответ дан OscarRyz 28 февр. '09 в 3:05
источник поделиться

Я использовал vi/vim в течение более 25 лет. Если вы уже знаете какой-то редактор командной строки, то, возможно, вам не нужно изучать vi/vim. Но если вы не знаете каких-либо других редакторов командной строки очень хорошо, стоит изучить его. Очень легко быть продуктивным в vi/vim с небольшими усилиями.

9
ответ дан Craig S 28 февр. '09 в 2:33
источник поделиться

Я использую VIM в значительной степени исключительно сейчас.

Я использовал Vim для редактирования и VS Editor для отладки. Вероятно, это кажется немного сумасшедшим, но я нашел парадигму Vi (макросы, редактирование на основе домашнего ключа и т.д.), Что привело к повышению производительности, что редактирование в VS было красноречивым.

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

Кривая обучения для Vim, вероятно, преувеличена. Я думаю, как только вы войдете в него, это довольно интуитивно.

6
ответ дан RedBlueThing 05 марта '09 в 6:02
источник поделиться

Моя работа заставила меня забрать vim, и она быстро стала второй натурой. Теперь мои жалобы касаются IDE, у которых нет эмуляции vim или плагинов. Я замечаю, что ключ esc стал моим врагом за пределами vim.

В Visual Studio я нашел несколько эмуляторов для vi:

http://code.google.com/p/vim-visual-studio/

5
ответ дан Courtland 12 янв. '10 в 23:59
источник поделиться

Я узнал Вима. Это было не слишком много. Теперь я абсолютно люблю ci "ci (cw V: s/from/to/g

4
ответ дан thomasrutter 01 июня '09 в 8:02
источник поделиться

Два преимущества vi/vim:

  • он очень легкий

  • он устанавливается почти в любой системе * NIX

4
ответ дан Colin 28 февр. '09 в 2:50
источник поделиться

Во-первых, хорошие знания vi (m) позволят вам сэкономить время, которое вам нужно предпринять для экстренного редактирования конфигурационных файлов на сервере под управлением Seige. Он может задерживаться на laggy ssh-соединении.

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

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

И прочитайте справку

4
ответ дан michael 28 февр. '09 в 2:48
источник поделиться

Я поддерживаю очень большой проект linux на удаленном компьютере. Нет выбора для использования Eclipse или аналогичной IDE на базе GTK. Я работаю там 3 года. И я установил свой vim только для этого проекта. И все-таки настраивать.

Теперь я могу сделать что-то из Vim: source control, sql, debug, compile, browsing - действительно быстрый просмотр исходного кода 1Gb.

Visual Studio или Eclipse не смогли обработать все это. И если бы у меня был выбор, я бы изменил Vim на другой редактор или среду IDE.

4
ответ дан Mykola Golubyev 28 февр. '09 в 14:43
источник поделиться

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

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

3
ответ дан Ellery Newcomer 28 февр. '09 в 3:24
источник поделиться

Я в той же ситуации, что и вы, и как новичок для Vim я изначально нашел это немного сложным - кривая обучения кажется крутой. Из того, что я узнал всего за несколько часов, я уже чувствую, что я не смогу жить без него.

Здесь несколько ссылки, которые я нашел для полезных скринкастов Vim, чтобы показать вам на что он способен.

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

3
ответ дан Andy 28 февр. '09 в 19:18
источник поделиться

Да, определенно найдите время, чтобы узнать хотя бы немного "vi" и "vim". Он путешествует очень хорошо.

Вы никогда не застреваете, когда сталкиваетесь с системой Unix/Linux/Mac клиента, для которой у вас нет возможностей установки. Даже в Windows (если у вас есть возможности установки), "Vim" бесплатный и простой в установке. (В отличие от инвестирования вашей кривой обучения исключительно в нечто вроде UltraEdit, которое, хотя отличный редактор может быть недоступен для вас все время...).

Learning vi может настроить вас для изучения других инструментов, таких как "sed" и регулярное выражение: материал, который обычно передается.

Плюс, если вы хотите быть подходящим выродком, вам просто нужно знать "vi/m", или вы будете выглядеть как фейкер; -)

3
ответ дан monojohnny 23 нояб. '09 в 20:28
источник поделиться

Я думаю, что это определенно стоит времени и усилий, чтобы узнать vim. Для меня это делает типизацию и навигацию вокруг текста настолько эффективными, что трудно представить, как вернуться к emacs или комбинациям клавиш Ctrl + shift/Alt/Meta.

Не пугайтесь всех причудливых особенностей vim. Как только вы его достаточно используете, вы поймете, какие команды вы используете больше всего, и вы поймете, о каких вещах вы можете забыть.

2
ответ дан Andy White 28 февр. '09 в 2:58
источник поделиться

Vim, безусловно, стоит научиться частично суммировать то, что было сказано ранее здесь, - основные причины:

  • Vi/Vim можно найти в большинстве систем unix.
  • Vim позволяет легко кодировать, не отрывая руки от клавиатуры.
  • Если вы планируете настроить что-либо в системе на основе UNIX, вы собираетесь редактировать несколько небольших файлов конфигурации, поэтому вы захотите изучить редактор на основе терминалов, из которых vim является одним из лучших (извините emacs).
  • Vim компилирует/имеет предварительно скомпилированные двоичные файлы почти для каждой ОС. Нет необходимости публиковать "Мне нужна альтернатива textmate для [insert OS]", вместо этого у вас будет Vim!
  • Есть много хороших плагинов, чтобы добавить много функциональности, например, в редакторе cvs diffs, хотя некоторые из них требуют значительного количества мастеринга.

Также на стороне примечания, если вы считаете, что вам нужны привязки клавиш Vim, есть также IDE, которые включают в себя привязки vim в своих редакторах для простых команд, например Редактировать Komodo.

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

2
ответ дан Jamie 06 мая '09 в 1:23
источник поделиться

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

Одна вещь, о которой я не упоминал, заключается в том, что знание vi имеет дополнительное преимущество "geek cred" в некоторых кругах. Я могу подумать, по крайней мере, несколько человек, которые посмеиваются, когда видят, что новый программист запускает nedit, чтобы внести некоторые изменения в файл.

2
ответ дан Dana Robinson 28 февр. '09 в 3:09
источник поделиться

Я был счастлив в своем текстовом блоке и в мире ecplise, пока мне не пришлось приступать к работе с серверами под Linux. Был необходим удаленный скриптинг и настройка файлов конфигурации!

В начале было сложно, но теперь я могу легко настроить и настроить мои серверы.

2
ответ дан Cesar 28 февр. '09 в 8:50
источник поделиться

Я тоже откладывал обучение vi или vim в течение многих лет. На самом деле, я использую, чтобы высмеять "парней vi", которые всегда, казалось, делали пальцевую аэробику. Затем, когда я отошел от Windows и перешел на Linux в качестве моей основной ОС, мне пришлось больше познакомиться с vim. Это была кривая обучения, и она все еще есть. После 9 лет использования vim на ежедневной основе я все еще нахожусь в изучении новых и более быстрых способов делать что-то. То, что я привык думать как "аэробика пальцев", на самом деле оказалось чрезвычайно эффективным способом быть продуктивным. Теперь я могу сделать намного больше разработки кода во много раз меньше времени и усилий, чем когда-либо раньше vim. И, как я уверен, вы знаете, что vim работает на каждой платформе, поэтому вы всегда имеете ее, когда вам это нужно. Кроме того, если вам нравится графический интерфейс, у них есть версии GUI для большинства платформ. Лично, как и мышь, я не хочу видеть панель меню, полосы прокрутки и т.д., Загромождая мои окна редактирования.

Если вы решите дать vim вихрь, я бы очень рекомендовал книгу "Редактор Pocket Reference" O'Reilly. Это дешево, и это здорово, если вы просто изучаете vi (vim). Полные взорванные книги vim также хороши, но справочник на карманных компьютерах дает вам все основы для быстрой работы.

2
ответ дан user71918 01 июня '09 в 9:06
источник поделиться

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

Возможно, вам захочется узнать vim, потому что многие говорят, что это круто. Посмотрите, сколько ответов у вас на этот вопрос.

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

2
ответ дан Anonymous 28 февр. '09 в 20:00
источник поделиться

Чтобы узнать, что vi (m) быстро, нужно сначала понять весь дизайн. У Vim есть большой набор команд перемещения курсора, проверьте несколько (X - символ, # a цифра):

j k введите стрелки 0 $ w W b B ctrolD crtolU ctrolE ctrolY H M L fX FX tX TX,; % gg G n N mX 'X' '

и многое другое было бы скучно перечислить. Многие из них поддерживают счет перед командой, например, 4j для перемещения 4 строк вверх.

Теперь, вернемся к дизайну, вы набираете команду как d для удаления, за которой следует движение курсора, и команда применяется к фрагменту текста с позиции курсора до конца движения. Например, H перемещается в верхнюю часть экрана, dH удаляет верхнюю часть экрана, а cH меняет (заменяет) верхнюю часть экрана.

Этот дизайн достаточно мощный. Он также уменьшает или организует то, что вам нужно изучать. Окончательно первым шагом является изучение нескольких команд перемещения курсора. Скажем, 8 или 10 вначале. Тогда вы почти закончили.

2
ответ дан Juan Lanus 01 марта '09 в 16:53
источник поделиться

Нет. Обучение vim стоит больше, чем усилий.

2
ответ дан ojblass 01 июня '09 в 7:47
источник поделиться

Изучение чего-то нового всегда стоит того, ИМХО. Я предлагаю вам распечатать чит-лист и заставить себя использовать его день за днем ​​и днем.

2
ответ дан switchmode 05 марта '09 в 6:13
источник поделиться

Удивительная вездесущность Vim и еще более удивительная вездесущность Vi-клонов в целом, только на Unix-системах, достаточных для изучения.

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

Конечно, толпа Emacs говорит то же самое о стиле Emacs, но я отказался от изучения Emacs, потому что Vim был проще и выполнял эту работу для меня.

2
ответ дан James Mishra 28 февр. '09 в 2:59
источник поделиться
  • 1
  • 2

Другие вопросы по меткам