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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

  • 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

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

Ответ 3

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

Ответ 4

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

Причина в том, что эти редакторы очень оптимизированы для выполнения тех задач, которые вы будете делать много. Например, рассмотрите возможность добавления одного и того же бита текста в конец каждой строки. Это тривиально в редакторе 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 и т.д.

Удачи!

Ответ 5

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

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

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

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

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

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

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

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

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

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

Ответ 6

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

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

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

Ответ 7

Вы можете получить хорошую функциональность из 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).

Ответ 8

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

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

Ответ 9

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

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

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

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

Ответ 10

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

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

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

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

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

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

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

:)

Ответ 11

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

Ответ 12

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

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

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

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

Ответ 13

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

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

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

Ответ 14

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

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

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

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

Ответ 15

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

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

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

Ответ 16

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

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

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

Ответ 17

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

Ответ 18

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

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

Ответ 19

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

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

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

Ответ 20

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

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

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

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

Ответ 21

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

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

Ответ 22

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

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

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

Ответ 23

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

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

Ответ 24

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

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

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

Ответ 25

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

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

Ответ 26

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

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

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

Ответ 27

Чтобы узнать, что 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 вначале. Тогда вы почти закончили.

Ответ 28

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

Ответ 29

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

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

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

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

Ответ 30

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