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

467

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

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

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

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

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

Trap
источник
7
Отсутствие необходимости переключаться между клавиатурой и мышью, безусловно, приятно. На Mac я использовал навигационные клавиши emacs (например, ctrl-A) даже в графическом редакторе, таком как BBEdit или Xcode, просто чтобы избежать лишних движений мышью.
Крейг С
236
Это полностью стоит усилий. Learn vim;)
Кайл Уолш
20
Вы можете изучить базовый vim (забудьте о vi) за пару минут, просто наберите vimtutor в терминале, и вы получите базовый уровень - все, что вы узнаете в течение следующих 20 лет, зависит только от вас. Мне просто любопытно, как VS2008, C # & R # помогают вам с проблемами, связанными с необходимостью тратить свою жизнь на перемещение между клавиатурой и клавишами со стрелками / мышью?
stefanB
43
Одна из лучших инвестиций, которые я когда-либо делал.
Johnsyweb
10
Я создал эту игру, чтобы помочь моему семилетнему племяннику научиться быстро передвигаться в Vim: бета-версия kikuchiyo.org позволяет атаковать врагов с помощью светового меча, «i» для левой атаки и «a» для правой: PI изучил Vim по тем же причинам, что и вы. Я обнаружил, что передвигаться по самой сложной части, к которой нужно привыкнуть. Надеюсь, что игра поможет вам быстрее, если вам нужна помощь :) Удачи! :)
kikuchiyo

Ответы:

249

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

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

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

Andrew Hendrie
источник
8
Да, я тоже всегда учусь чему-то новому. Все еще мой любимый редактор тоже.
Крейг С
20
Интересно, это хорошо или плохо. Если вы постоянно осваиваете новые вещи, кривая обучения ДЕЙСТВИТЕЛЬНО крутая, функции ДЕЙСТВИТЕЛЬНО скрыты, и нет никакого чувства мастерства. В любом случае, если вы хотели RISC, вы использовали vi вместо vim, верно?
Бастиб
7
@Paperflyer: у меня были те же мысли. Если вы все еще не справились с этим после 20 лет, это головная боль, я не уверен, что хочу
Дина
7
Как же так? Это означает, что, хотя у него так много функций, вы можете продолжать учиться, но вам не нужно изучать их все, чтобы быть более продуктивным.
Арда Си
5
"Почему, о, ПОЧЕМУ, эти чокнутые используют vi?" - Хорошая ссылка, специально для вопроса
184

Могу ли я жить без этого? С легкостью.

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

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

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

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

    $ sudo vi

  • Также GMail использует команды vi-ish для выбора и перемещения писем!

Вам не нужно быть мастером.

Просто учись

Основы:

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

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

Trampas Kirk
источник
Я всегда использовал «vi - это просто; вы используете клавишу ell для перемещения курсора вправо» как юмористический (я надеюсь) способ представить его. Но я использую это долгое время и не буду без. Не могу требовать 25+ лет для другой пары, тем не менее, так что никакого нового ответа от меня нет.
Джонатан Леффлер
16
Вот как я это узнал. Начните с минимума и постройте немного на нем каждый день. Потратьте время, чтобы узнать немного лучший способ достижения цели. См. «7 привычек редактирования текста» для вдохновения.
Ben
Gmail, экспериментальные сочетания клавиш поиска Google, сочетания клавиш Slashdot, man и менее всего используют привязки, подобные vim. Меня удивило, что я случайно выучил их, не зная vim! Даже Firefox использует / для инкрементального поиска (с немного отличающейся семантикой от Ctrl + F).
Адам Розенфилд
29
[:] [X] [Enter] совпадает с [:] [W] [Q] [Enter]
Виталий Федоренко
20
[Z] [Z] совпадает с [:] [X] [Enter]
Кос
138

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

Blorgbeard
источник
Если вам известна лучшая пояснительная ссылка, измените мою :)
Blorgbeard вышла
43
Vimtutor это именно то, учебник. Я делал это каждый день около 10 дней. В первый раз это заняло у меня около 30 минут, на следующий день - 20, а затем - 15. К концу недели я запечатлел большую часть своей команды. Я думаю, что вместо того, чтобы пытаться запомнить, повторение - лучший способ приблизиться к Vim. 15 минут каждый день в течение недели кажется очень маленькой ценой.
Майкл Экока
28
Как насчет того, когда мы закончим с VIMTUTOR? Какой следующий шаг, чтобы узнать больше?
приват-хафф
3
@privatehuff: прочитайте и примените семь навыков эффективного редактирования текста .
Фрэнк Кастерс
1
Вот Это Да! это было похоже на один из тех скрытых предметов в игре. Это было прямо в моей системе, и я не знал, что это существует. Один из самых полезных и быстрых уроков vim. Некоторое время используя vim, я все же выучил пару базовых трюков, о которых не знал. всем рекомендую. Также небольшое предложение: если вы используете vim на ноутбуке, который имеет сенсорную панель и поддерживает жесты, отключите его перед использованием vim, потому что при случайном прикосновении он может переместить курсор в неожиданные места, что иногда приводит к потере всего хорошего редактирования.
Барракуда
69

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

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

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

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

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

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

Радоваться, веселиться!

Райан Брайт
источник
7
Это имеет смысл в том, что многие люди упускают из виду. Практически любое повторяющееся задание имеет ярлык. Разработчики любят ярлыки. Как сказал rbright, если вы обнаружите, что выполняете шаг несколько раз, остановитесь и посмотрите, не задокументировали ли кто-нибудь ярлык.
AvatarKava
A) было одной из главных причин для меня использовать VIM - изначально я был парнем из Emacs, но не во всех системах он был, и иногда он работал медленно по сети или на загруженных серверах. VIM вездесущий, маленький и быстрый.
jpeacock
3
Мой редактор постоянно шутит. Я должен переключиться.
Грег Грэм
Я сказал вам: «Если вы программист, который редактирует много текста, тогда важно изучить редактор серьезных текстов». Хуже всего то, что кажется невозможным выучить два (гораздо меньше) внутри и снаружи почти по определению. Вы изучаете крайние случаи в какой-то момент, и знание того, как выполнить задачу X в одном, обычно не переводится. И всегда есть вещи, которые я делаю в «бахромчатых» редакторах - я все еще использую JEdit для JTidy, Code2HTML, например, для поиска по нескольким файлам. Ваша главная задача - это бросок костей, и там нет серебряной пули, но да, обязательно выучите один и играйте со многими. ; ^)
ruffin
1
@ruffin Это правда, вы не можете по-настоящему освоить два разных редактора одновременно: если вы освоите один редактор, вы будете бессознательно использовать множество его команд , а это значит, что вы, скорее всего, попытаетесь использовать та же команда, когда вы используете другой редактор. Сколько раз я проклинал свой браузер за то, что он не позволяет мне исправлять отступы с помощью простого <esc> >i{... Это действительно так же, как с сенсорным набором текста: вы учите одну раскладку клавиатуры и придерживаетесь ее, потому что вы никогда не сможете остановить ваши пальцы от ввода неправильных клавиш на другой раскладке.
cmaster - восстановить монику
36

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

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

Вот очевидный:

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

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

  1. Это не вдвое меньше усилий, чем вы думаете. Запустите репетитора Vim один раз ( vimtutorв командной оболочке или в Windows, запустите его из папки Vim в меню «Пуск»), и вы уже будете на пути к компетенции, и оттуда все упадет. Я Vimдостиг уровня, на котором я мог использовать на работе, не испытывая заметного снижения производительности в течение обеденного перерыва менее чем за неделю.

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

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

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

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

Rich
источник
12
Ха-ха № 2 по причинам, "не", чтобы узнать VIM так правильно. Все это время я сохраняю редактирование текста, я трачу на чтение о редактировании текста. Смешной.
Карл Флёрш,
Да, я хотел бы играть в долине звездной росы, используя hjkl ...
xis
32

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

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

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

Норман Рэмси
источник
RSI - единственная профессиональная опасность разработчиков. Я никогда не думал об этом, но держу пари, что это действительно хороший момент. С точки зрения мышц набирать аккорды намного сложнее. Я знал, что есть веская причина использовать vi!
DigitalRoss
1
Я использовал оба, я был "крещен" с vim и изучил emacs несколько месяцев назад. Я предпочитаю vim, потому что задачи разбиты - вы либо редактируете, либо вставляете, а не делаете то и другое. Это различие помогает мне думать о том, что я делаю, а также делает "нормальные" команды 1-2 нажатиями клавиш вместо 2-4. Я просто хотел бы, чтобы vim был основан на Лиспе (и нет, режим viper не поддерживает все мои стандартные функции vim. Да, я могу использовать свои собственные функции, но тогда я буду скучать по ним в любое время, когда буду касаться нового компьютера / системы)
Уэйн Вернер
1
@WayneWerner Я действительно устарел, но вы можете контролировать все свои версии, чтобы вы могли синхронизировать их через компьютеры.
ЮрийАльбукерке
@YuriAlbuquerque, на самом деле я очень серьезно задумался о создании сценария автоматической настройки среды, сохраняя все мои точечные файлы на github или что-то в этом роде.
Уэйн Вернер
17

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

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


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

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

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

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

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

  1. выйти из режима ввода ( Esc)
  2. введите двоеточие :
  3. типа в нижнем регистре , q!тоEnter

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

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

  1. bвернет вам слово ( Ctrl+ )
  2. wпринимает вас вперед слово ( Ctrl+ )
  3. 9w переносит вас вперед на девять слов
  4. dbудаляет предыдущее слово ( Ctrl+ Backspace)
  5. d3b удаляет три предыдущих слова
  6. 9j движется вниз на 9 строк
  7. / ornithopter Enterприведет вас к следующему экземпляру слова "ornithopter", nа затем иN к следующему и предыдущему появлению «орнитоптер» соответственно.
  8. :%s/confounded/dangfangled/ Enter заменяет каждый "путанный" на "болтливый" (например, find and replace all в MS Word)

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

изоморфизмы
источник
16

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

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

Гейб Моутарт
источник
12

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

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

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

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

Тео Ленндорф
источник
Существует визуальное расширение студии для пользователей ВИМ, увидеть его на visualstudiogallery.msdn.microsoft.com/...
Йоэль HALB
10

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

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

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

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

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

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

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

:)

OscarRyz
источник
Он спросил о преимуществах VIM, а не мнение.
Blaze349
@ Blaze349 Нет, он попросил услышать о людях, как это узнали (см. Оригинальный пост здесь), и это именно то, что я ответил. Этому вопросу уже почти 8 лет, и он прошел через несколько обзоров, и мой ответ соответствовал первоначальному. Примите это во внимание при комментировании.
OscarRyz
9

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

Крейг С
источник
6

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

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

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

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

RedBlueThing
источник
5

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

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

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

Courtland
источник
4

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

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

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

И прочитайте помощь

Майкл
источник
4
Я также считаю, что модель ввода Vi отлично подходит для защиты от синдрома запястного канала ...
CMS
клавиши со стрелками? попробуйте в .vimrc: map <вверх> <nop> map <down> <nop> map <left> <nop> map <right> <nop> imap <вверх> <nop> imap <down> <nop> imap < left> <nop> imap <right> <nop>
sjas
1
Я просто хотел бы отметить, что есть nanoгораздо более простой в использовании, чем vim, и он почти одинаково широко распространен.
MightyPork
4

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

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

  • он установлен почти на каждой системе * NIX

Colin
источник
8
почему ты поставил * вместо U?
Камран Бигдели
4
@kami: немного поздно, но вот,
пожалуйста
Действительно ли Vim "очень легкий" по сравнению с большинством других текстовых редакторов?
Бен
4

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

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

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

Николай Голубев
источник
4

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

thomasrutter
источник
3

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

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

Ellery Новичок
источник
3

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

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

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

Энди
источник
3

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

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

Изучение vi может помочь вам освоить другие инструменты, такие как «sed» и регулярные выражения в целом: вещи, которые обычно переносимы.

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

monojohnny
источник
2

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

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

Энди Уайт
источник
2

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

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

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

Джеймс Мишра
источник
2

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

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

Дана Робинсон
источник
2

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

Кроме того, если вы углубитесь в это, vim является сценарием. Возможности буквально бесконечны.

(Да, все это относится и к Emacs ...)

Ким Рис
источник
2

Я был счастлив в своем textpad и ecplise мире, пока я не должен был начать работать с серверами, работающими под Linux. Необходим удаленный сценарий и настройка файлов конфигурации!

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

Cesar
источник
2

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

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

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

анонимное
источник
2

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

jk ввод стрелок 0 $ w W b B УПРАВЛЕНИЕ КРЕДОЛОМ УПРАВЛЕНИЕ HML FX FX TX TX,; % gg G n N mX 'X' '

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

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

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

Хуан Ланус
источник
2

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

switchmode
источник
На китайском языке есть история, в которой говорится, что кто-то учил у учителя, как убивать драконов. После окончания учебы он никогда не сможет найти настоящих драконов для мясника. Я не говорю о vi, но мораль этой истории в том, что иногда изучение чего-то - просто трата времени.
Земля Двигатель
2

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

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

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

Чтобы получить помощь в изучении Vim, попробуйте ввести «vimtutor» в свой терминал и следуйте инструкциям. Есть также книга, которая особенно хороша для взлома Vim

Джейми
источник
2

Нет. Изучение vim стоит больше, чем усилия.

ojblass
источник