Я начал заниматься программированием с использованием VIM.
Пока у меня очень смешанные чувства . С одной стороны, мне очень нравится идея, с другой - просто сложно все запомнить.
Поэтому я воспользовался подходом обучения, фактически выполняя некоторые вещи (для Ruby on rails development).
К сожалению, у нет никаких шансов в аду для меня, чтобы был более продуктивным , как в другом " обычном " текстовом редакторе. И, кажется, потребуется довольно много времени, чтобы привыкнуть к VIM.
Я заметил, что я часто не использую возможности навигации / поиска и замены VIM, но вместо этого просто двигаюсь, как я бы делать в других редакторах.
Я изо всех сил стараюсь заставить себя не открывать что-либо в других редакторах, кроме VIM, поэтому я могу изучить это .
Но, честно говоря, вчера Я отказался от и сделал последние 20 минут кодирования в GEdit.
ОБНОВЛЕНИЕ: Я хочу сказать, почему я дал - только потому, что я закончил то, что мне нужно быстрее (это было очень поздно, и это было не лучшее время для изучения VIM). И действительно, мне очень понравилось использовать VIM. Но у меня всегда было чувство « должен быть лучший способ сделать это
», и я тратил много времени на поиск этого пути.
Поэтому мой вопрос будет: , как я могу научиться и начать использовать VIM более продуктивно изо дня в день, при условии, что я хочу делать реальное кодирование при обучении?
Спасибо,
Дмитрий.
Имейте в виду следующее. В то время как существуют физические ограничения на скорость ваших пальцев, кажется, что существует мало ограничений на обработку информации, которую может выполнить ваш мозг. Поэтому время, которое вы потратите на изучение команд и сочетаний клавиш vi(m), со временем окупится сторицей, поскольку скорость редактирования станет выше, чем при использовании традиционного редактора. Например, для удаления следующих пяти слов в vi(m) вы набираете 5dw
, а для вставки 50 * символов - 50i* ESC
.
Вы можете начать использовать vi(m) после изучения очень небольшого количества команд: базовое перемещение, вставка, изменение, удаление, открытие новой строки и сохранение документа. Соединяя эти команды вместе, вы получите мощные комбинации. Освоив их, вы будете стремиться к большему.
Распечатайте справочный лист по vi (например, этот, или этот, или этот более обширный список) и всегда держите его рядом с собой.
vim требует много времени, чтобы получить привык и действительно быть продуктивным с вот как я на это смотрю: предположим, ваш индекс продуктивности находится в диапазоне от 1 до 10 когда вы начинаете использовать другой редактор, ваш индекс продуктивности равен 6, а может доходить до 8. когда вы начинаете использовать vim, ваша продуктивность равна 2, но вы можете подняться до 10. это просто требует времени.
Я слышал очень хорошие отзывы о книге SwaroopCH Byte Of Vim . Я еще не дошел до того, чтобы читать это, но его книга Byte Of Python определенно превосходна.
Почему? Используйте любой редактор, который подходит вам лучше всего и делает вашу работу максимально продуктивной. Я использую vi для редактирования файлов конфигурации, потому что обычно это самый быстрый способ отредактировать несколько строк и затем выйти. Для серьезного программирования это TextMate (ruby), Emacs (python или ruby на платформах без TextMate) или Xcode (objective-c).
Вот как я узнал, когда я переключился с 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. Вы должны стремиться стать хозяином своих инструментов, а не рабом их.
Учитесь в своем ритме. Думаю, вам стоит начать осваивать основы:
Затем вы можете улучшить эти знания:
При этом всегда держите под рукой шпаргалку по vim. Базовые команды легко запомнить (d для удаления, p для вставки, y для восстановления, i для вставки, a для добавления, ...).
Учись постепенно и оставайся простым.
Вот несколько новых советов от Иегуды Каца, основного члена команды Ruby on Rails, который недавно перешел на Vim: Попробуйте сначала использовать его точно так же, как и любой другой редактор, чтобы вы могли продолжать работать продуктивно. Возможно, это означает, что поначалу придется продолжать использовать клавиши со стрелками или *gasp* мышь. Не пытайтесь освоить все возможности Vim сразу. Пусть они приходят медленно и естественно.
Полный текст статьи - отличное чтение:
Все, кто пытался убедить меня использовать Vim, были неправы
Кроме того, попробуйте использовать привязки клавиш vi в других приложениях. Если ваша оболочка поддерживает перемещение vi, используйте ее. Для просмотра веб-страниц попробуйте феноменальный Vimperator Firefox plugin.
Это может помочь: Почему, о, ПОЧЕМУ, эти #?@! психи используют vi?
Я больше склоняюсь к статическим типизированным языкам, и вот моя история:
Для меня 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
Я использую Gvim (режим GUI). Если вы забыли последовательность клавиш для какого-то действия, вы можете вызвать его через GUI. Для большинства действий вы также можете увидеть необходимые клавиши, так что Gvim может также служить быстрым справочником для Vim.
Конечно, другой текстовый редактор не сделает вас более продуктивным волшебным образом. Но если вы любите использовать сочетания клавиш в основных редакторах, вам понравится Vim, потому что вы можете вызывать довольно мощные действия несколькими нажатиями клавиш.
Мне лично Vim не нравится, я предпочитаю основные редакторы. Но в Vim есть синтаксическая раскраска REST, и примерно через неделю я обнаружил, что она вполне пригодна для использования.
Я изо всех сил стараюсь не открывать ничего в других редакторах, кроме VIM, чтобы я мог это изучить. Но, честно говоря, вчера я сдался и последние 20 минут кодировал в GEdit.
Разработчик должен чувствовать себя комфортно в среде, в которой он работает. Поэтому существует множество редакторов, разработанных разработчиками для разработчиков.
Пока редактор делает то, что вы хотите, так, как вы хотите, все в порядке: редактор - это просто средство для выполнения работы.
Итак, у меня будет следующий вопрос: как я могу учиться и начинать использовать VIM более продуктивно изо дня в день, при условии, что я хочу немного по-настоящему кодировать во время обучения?
Для VIM, к сожалению, я бы рекомендовал потратить несколько дней с ним, не выполняя никакой реальной работы, а просто обучаясь. Мне потребовалось около двух дней, чтобы познакомиться с основными функциями, необходимыми для эффективного редактирования. Я знал, что этот редактор будет играть важную роль в моей повседневной работе, поэтому я потратил почти неделю своего свободного времени на изучение как VIM, так и Emacs.
Мой бывший коллега также сохранил шпаргалку по VIM в качестве обоев рабочего стола. Помогло вначале.
Начните использовать его, когда это имеет смысл: быстрые правки конфигурационных файлов, сообщения о фиксации, обновления README и т.д....
Скорость запуска трудно превзойти.
Когда вы освоите основы, изучите файл справки, если вы думаете: "Там должно быть что-то для задачи, которую мне нужно сделать сейчас". ...
Накапливайте знания постепенно.... шаг за шагом...
Пока однажды вы не обнаружите, что большую часть редактирования вы делаете в VIM или что ваш набор инструментов хорошо интегрирован с Vim.
Я лично использую то, что лучше всего подходит, IntelliJ для Java, Emacs для clojure, Vim для perl и ruby скриптов, ...
Как насчет книг?
Эти отличные:
И в конце концов, ну и что - значит, вы не работаете с vim. Какова большая добавленная стоимость vim, из-за которой стоит сложность его изучения?
Возможно, некоторые пасхальные яйца помогут вам правильно начать работу. Попробуйте следующее и насладитесь чудесным миром традиций открытого исходного кода и наследием скрытой глупости :)
(подробнее: посетите vim.org)