Как не отказаться от VIM?

Я начал заниматься программированием с использованием VIM.
Пока у меня очень смешанные чувства . С одной стороны, мне очень нравится идея, с другой - просто сложно все запомнить.

Поэтому я воспользовался подходом обучения, фактически выполняя некоторые вещи (для Ruby on rails development).
К сожалению, у нет никаких шансов в аду для меня, чтобы был более продуктивным , как в другом " обычном " текстовом редакторе. И, кажется, потребуется довольно много времени, чтобы привыкнуть к VIM.

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

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

Но, честно говоря, вчера Я отказался от и сделал последние 20 минут кодирования в GEdit.

ОБНОВЛЕНИЕ: Я хочу сказать, почему я дал - только потому, что я закончил то, что мне нужно быстрее (это было очень поздно, и это было не лучшее время для изучения VIM). И действительно, мне очень понравилось использовать VIM. Но у меня всегда было чувство « должен быть лучший способ сделать это », и я тратил много времени на поиск этого пути.

Поэтому мой вопрос будет: , как я могу научиться и начать использовать VIM более продуктивно изо дня в день, при условии, что я хочу делать реальное кодирование при обучении?

Спасибо,
Дмитрий.

15
задан j0k 17 May 2013 в 14:44
поделиться

14 ответов

Имейте в виду следующее. В то время как существуют физические ограничения на скорость ваших пальцев, кажется, что существует мало ограничений на обработку информации, которую может выполнить ваш мозг. Поэтому время, которое вы потратите на изучение команд и сочетаний клавиш vi(m), со временем окупится сторицей, поскольку скорость редактирования станет выше, чем при использовании традиционного редактора. Например, для удаления следующих пяти слов в vi(m) вы набираете 5dw, а для вставки 50 * символов - 50i* ESC.

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

Распечатайте справочный лист по vi (например, этот, или этот, или этот более обширный список) и всегда держите его рядом с собой.

24
ответ дан 30 November 2019 в 23:58
поделиться

vim требует много времени, чтобы получить привык и действительно быть продуктивным с вот как я на это смотрю: предположим, ваш индекс продуктивности находится в диапазоне от 1 до 10 когда вы начинаете использовать другой редактор, ваш индекс продуктивности равен 6, а может доходить до 8. когда вы начинаете использовать vim, ваша продуктивность равна 2, но вы можете подняться до 10. это просто требует времени.

0
ответ дан 30 November 2019 в 23:58
поделиться

Я слышал очень хорошие отзывы о книге SwaroopCH Byte Of Vim . Я еще не дошел до того, чтобы читать это, но его книга Byte Of Python определенно превосходна.

2
ответ дан 30 November 2019 в 23:58
поделиться

Почему? Используйте любой редактор, который подходит вам лучше всего и делает вашу работу максимально продуктивной. Я использую vi для редактирования файлов конфигурации, потому что обычно это самый быстрый способ отредактировать несколько строк и затем выйти. Для серьезного программирования это TextMate (ruby), Emacs (python или ruby ​​на платформах без TextMate) или Xcode (objective-c).

5
ответ дан 30 November 2019 в 23:58
поделиться

Вот как я узнал, когда я переключился с Windows на Linux:

1) Я распечатал краткую справочную карту vim (pdf) и всегда держал ее рядом с моей клавиатурой.

2) Я начал с gvim и использовал простой режим (gvim -y или evim). Это заставляет vim вести себя как обычный редактор - он всегда находится в режиме вставки, а ключи отображаются для работы как обычный CUA редактор (например, CTRL-X / C / V для вырезания / копирования / вставки) . Вы по-прежнему можете получить доступ ко всем функциям vim с помощью CTRL-o, чтобы ввести одну команду Vim, после чего он вернется в режим вставки.

Через некоторое время мне надоело постоянно использовать CTRL-o или меню, и я переключился в правильный режим Vim. С тех пор я не оглядывался и теперь использую Vim для всего, даже в Windows. Я даже использую Vimperator в FireFox.

Также стоит взглянуть на Cream - это как легкий режим vim на стероидах.

Если вы считаете, что вам удобно использовать evim или cream, то нет причин, по которым вам нужно полностью переключаться в нормальный режим vim, что бы ни говорили сторонники vim. Вы должны стремиться стать хозяином своих инструментов, а не рабом их.

0
ответ дан 30 November 2019 в 23:58
поделиться

Учитесь в своем ритме. Думаю, вам стоит начать осваивать основы:

  • режимы: командный, нормальный и визуальный
  • команды: вставить, скопировать, удалить.

Затем вы можете улучшить эти знания:

  • выучить несколько полезных команд в командном режиме (список буферов, подстановка)
  • научиться двигаться быстрее (начало / конец слова / строки / файла)
  • поиск / замените шаблон
  • Посмотрите на конфигурацию vim людей и настройте свою

При этом всегда держите под рукой шпаргалку по vim. Базовые команды легко запомнить (d для удаления, p для вставки, y для восстановления, i для вставки, a для добавления, ...).

Учись постепенно и оставайся простым.

2
ответ дан 30 November 2019 в 23:58
поделиться

Вот несколько новых советов от Иегуды Каца, основного члена команды Ruby on Rails, который недавно перешел на Vim: Попробуйте сначала использовать его точно так же, как и любой другой редактор, чтобы вы могли продолжать работать продуктивно. Возможно, это означает, что поначалу придется продолжать использовать клавиши со стрелками или *gasp* мышь. Не пытайтесь освоить все возможности Vim сразу. Пусть они приходят медленно и естественно.

Полный текст статьи - отличное чтение:

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

Кроме того, попробуйте использовать привязки клавиш vi в других приложениях. Если ваша оболочка поддерживает перемещение vi, используйте ее. Для просмотра веб-страниц попробуйте феноменальный Vimperator Firefox plugin.

1
ответ дан 30 November 2019 в 23:58
поделиться
3
ответ дан 30 November 2019 в 23:58
поделиться

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

Для меня VIM был всем о hjkl движении в нормальном режиме + режиме intert. Я нашел это настолько эффективным, что хотел иметь его всегда и везде.

Потом я начал время от времени читать шпаргалки и вычленять лучшие жесты для запоминания (как-то отсортированные от наиболее часто полезных к менее полезным): b, w, x, gj, gk, gg, G, числоg, *, #, %, f/t/F/T, /, >>, <<, =, v, затем пометьте j/k, <</=/>>.

Затем я начал писать Makefiles ко всему и настроил Vim на импретирование. Итак, я делаю :mak и попадаю прямо на строку, где была найдена ошибка.

Затем произошло автозавершение (привязанное к TAB).

Затем проверка естественного языка z=.

Затем я написал обертку для переключения буферов. Открываю их с помощью :e filename.c и затем делаю Ctrl+l, Ctrl+h.

Мой конфиг находится в открытом доступе в git-архиве здесь: http://github.com/dpc/vim-config

5
ответ дан 30 November 2019 в 23:58
поделиться

Я использую Gvim (режим GUI). Если вы забыли последовательность клавиш для какого-то действия, вы можете вызвать его через GUI. Для большинства действий вы также можете увидеть необходимые клавиши, так что Gvim может также служить быстрым справочником для Vim.

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

Мне лично Vim не нравится, я предпочитаю основные редакторы. Но в Vim есть синтаксическая раскраска REST, и примерно через неделю я обнаружил, что она вполне пригодна для использования.

7
ответ дан 30 November 2019 в 23:58
поделиться

Я изо всех сил стараюсь не открывать ничего в других редакторах, кроме VIM, чтобы я мог это изучить. Но, честно говоря, вчера я сдался и последние 20 минут кодировал в GEdit.

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

Пока редактор делает то, что вы хотите, так, как вы хотите, все в порядке: редактор - это просто средство для выполнения работы.

Итак, у меня будет следующий вопрос: как я могу учиться и начинать использовать VIM более продуктивно изо дня в день, при условии, что я хочу немного по-настоящему кодировать во время обучения?

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

Мой бывший коллега также сохранил шпаргалку по VIM в качестве обоев рабочего стола. Помогло вначале.

4
ответ дан 30 November 2019 в 23:58
поделиться

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

Скорость запуска трудно превзойти.

Когда вы освоите основы, изучите файл справки, если вы думаете: "Там должно быть что-то для задачи, которую мне нужно сделать сейчас". ...

Накапливайте знания постепенно.... шаг за шагом...

Пока однажды вы не обнаружите, что большую часть редактирования вы делаете в VIM или что ваш набор инструментов хорошо интегрирован с Vim.

Я лично использую то, что лучше всего подходит, IntelliJ для Java, Emacs для clojure, Vim для perl и ruby скриптов, ...

6
ответ дан 30 November 2019 в 23:58
поделиться

Как насчет книг?

Эти отличные:

  1. Изучение Редакторы vi и Vim

  2. Карманный справочник редактора VI

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

1
ответ дан 30 November 2019 в 23:58
поделиться

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

  • :help 42
  • :help Holy Grail
  • :help!
  • :help map-modes (см. комментарий под таблицей о :nunmap)
  • :help UserGettingBored
  • :help ложка
  • :help showmatch (прочитайте примечание)
  • :Ni!

(подробнее: посетите vim.org)

1
ответ дан 30 November 2019 в 23:58
поделиться