Как не сдаваться на VIM?
Я начал программировать с помощью VIM.
У меня очень смешанные чувства. С одной стороны мне нравится идея, с другой - просто сложно запомнить все.
Итак, я принял подход обучения, фактически делая некоторые вещи (для Ruby on rails development).
К сожалению, в настоящее время нет шанса для меня быть более продуктивным, чем в другом текстовом редакторе обычный ". И, похоже, потребуется довольно много времени, чтобы привыкнуть к VIM.
Я заметил, что я часто не использую VIM-навигацию/поиск и замену способностей, но вместо этого просто передвигаюсь так же, как и в других редакторах.
Я стараюсь нажимать на себя, чтобы не открывать ничего в других редакторах, кроме VIM, поэтому я могу узнать его.
Но, честно говоря, вчера я отказался от и сделал последние 20 минут кодирования в GEdit.
ОБНОВЛЕНИЕ: Я хочу сказать, почему я дал - просто из-за того, что я закончу то, что мне нужно быстрее (это было поздно, и это было не лучшее время для изучения VIM). И действительно, мне понравилось использовать VIM. Но у меня всегда было чувство "there must a better way of doing this
", и я потратил много времени на это.
Итак, мой вопрос: , как я могу узнать и начать использовать VIM более продуктивно изо дня в день, при условии, что я хочу сделать какое-то настоящее кодирование при обучении?
Спасибо,
Дмитрий.
Ответы
Ответ 1
Помните следующее. В то время как есть физические пределы скорости ваших пальцев, по-видимому, существует немного ограничений на обработку, которую может выполнять ваш мозг. Таким образом, время, которое вы инвестируете в обучение vi (m), команды редактирования и сочетания клавиш будут выплачиваться с большим успехом со временем, так как скорость, с которой вы редактируете, улучшает нарушение физических ограничений скорости, с которыми вы столкнулись при использовании традиционного редактора. Например, чтобы удалить следующие пять слов в vi (m), введите 5dw
и вставьте 50 * символов, которые вы набираете 50i* ESC
.
Вы можете начать использовать vi (m) после изучения очень немногих команд: базовое перемещение, вставка, изменение, удаление, открытие новой строки и сохранение документа. Объединение этих команд вместе создает мощные комбинации. По мере их освоения вы будете искать больше.
Распечатайте справочный лист vi (например this или this или этот более обширный список) и всегда держать его рядом с вами.
Ответ 2
Я использую Gvim (режим GUI). Если вы забыли последовательность клавиш для какого-либо действия, вы можете вызвать его через GUI. Для большинства действий вы также можете увидеть необходимые ключи, так что Gvim также может служить быстрой ссылкой для Vim.
Конечно, другой текстовый редактор не волшебным образом сделает вас более продуктивным. Но если вам нравится использовать сочетания клавиш в основных редакторах, вам понравится Vim, потому что вы можете запускать довольно мощные действия с несколькими нажатиями клавиш.
Мне лично не нравится Vim, я предпочитаю основных редакторов. Но у Vim есть синтаксическая раскраска REST, и я нашел ее вполне пригодной для использования примерно через неделю.
Ответ 3
Начните использовать его, когда это имеет смысл: быстрые изменения в файлах конфигурации, сообщения фиксации, обновления README и т.д.
Скорость запуска может быть затруднена.
Когда вы будете разбираться в основах, изучите файл справки, если вы думаете: "Там должно быть что-то там для задачи, которую мне нужно сделать сейчас"....
Постройте знания постепенно... шаг за шагом...
До тех пор, пока вы не найдете один день, вы сделаете много изменений в VIM или обнаружите, что ваша инструментальная цепочка хорошо интегрирована с Vim.
Я лично использую то, что лучше всего работает, IntelliJ для Java, Emacs для clojure, Vim для скриптов perl и ruby,...
Ответ 4
Почему? Используйте любой редактор, который вам подходит и сделает вас наиболее продуктивным. Я использую vi для редактирования файлов конфигурации, потому что обычно это самый быстрый способ редактировать несколько строк, а затем выйти. Для серьезного программирования это либо TextMate (ruby), Emacs (python или ruby на платформах без TextMate), либо Xcode (objective-c).
Ответ 5
Я более статичный человек с типизированными языками, и вот моя история:
Для меня 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
Ответ 6
Я изо всех сил стараюсь не открывать что-либо в других редакторах, кроме VIM, поэтому я могу это узнать. Но, честно говоря, вчера я сдался и сделал последние 20 минут кодирования в GEdit.
Разработчик должен быть комфортно с окружающей средой, с которой он работает. Вот почему для разработчиков существует множество редакторов, разработанных разработчиками.
Пока редактор делает то, что вы хотите, так, как вы хотите, все в порядке: редактор - это просто средство для выполнения работы.
Итак, мой вопрос: как я могу узнать и начать использовать VIM более продуктивно изо дня в день при условии, что я хочу сделать какое-то настоящее кодирование при обучении?
Для VIM, к сожалению, моя рекомендация состояла бы в том, чтобы провести с ним несколько дней без какой-либо реальной работы, а просто учиться. Мне потребовалось около двух дней, чтобы узнать основные функции, необходимые для эффективного редактирования. Я знал, что редактор будет играть важную роль в моей повседневной работе, поэтому я вложил в нее почти неделю свободного времени, чтобы изучить VIM и Emacs.
Мой бывший коллега также сохранил обертку VIM в качестве обоев рабочего стола. Помогли в начале.
Ответ 7
Это может помочь: Почему, oh ПОЧЕМУ, делают эти #? @! орехи используют vi?
Ответ 8
Любой, кто хочет изучить Vim, должен проверить Open Vim. Это фантастический ресурс для любого новичка в Vim. В нем есть интерактивный учебник и различные режимы песочницы для игры с редактором. Получайте удовольствие!
Ответ 9
Я слышал очень хорошие вещи о SwaroopCH Книга Byte Of Vim. Еще не добрались до его чтения, но его книга Byte Of Python определенно отличная.
Ответ 10
Учитесь в своем ритме. Я думаю, вы должны начать осваивать основы:
- режимы: командная, нормальная и визуальная
- команды: paste, yank, delete.
Затем вы можете улучшить эти знания:
- узнать некоторые полезные команды в командном режиме (буферы списка, подстановка)
- научиться двигаться быстрее (начало/конец слова/строки/файла)
- поиск/подстановка шаблона
- Посмотрите на конфигурацию vim для людей и настройте свои
Выполняя это, всегда держите рядом с собой обходной лист vim. Основные команды легко запомнить (d для удаления, p для вставки, y для yank, я для вставки, для добавления,...).
Учитесь постепенно и оставайтесь на месте.
Ответ 11
Как насчет книг?
Эти превосходны:
И в конце концов, так что - так что вы не работаете с vim. Какая большая добавленная стоимость для vim, которая стоит трудности с ее изучением?
Ответ 12
Вот несколько новых советов от Yehuda Katz, основного члена команды Ruby on Rails, которая недавно переключилась на Vim: попробуйте использовать ее точно так же, как и любой другой редактор, чтобы вы могли продолжать быть продуктивными. Возможно, это означает, что сначала нужно использовать клавиши со стрелками или * gasp * mouse. Не пытайтесь сразу изучить все способы Vim. Скорее, пусть они идут медленно и естественно.
Полная статья замечательна:
Каждый, кто пытался убедить меня использовать Vim, был неправильным
Кроме того, попробуйте использовать привязки клавиш vi в других приложениях. Если ваша оболочка поддерживает перемещение vi, используйте это. Для просмотра веб-страниц попробуйте феноменальный плагин Vimperator Firefox.
Ответ 13
Возможно, некоторые пасхальные яйца помогут вам начать работу на правой ноге. Попробуйте следующее и наслаждайтесь прекрасным миром традиций с открытым исходным кодом и наследием скрытой глупости:)
- : help 42
- : помогите святому граалю
- : помощь
- : help map-modes (см. комментарий ниже таблицы about: nunmap)
- : помощь UserGettingBored
- : help spoon
- : help showmatch (прочитайте примечание)
- : Ni
(узнайте больше: посетите vim.org)
Ответ 14
vim требует много времени, чтобы привыкнуть и действительно быть продуктивным с
вот как я смотрю на это:
предположите, что ваш индекс производительности находится где-то между 1 и 10
когда вы начинаете использовать другой редактор, ваш индекс производительности равен 6 и может достигать 8.
когда вы начинаете использовать vim, ваша производительность равна 2, но вы можете достичь максимума до 10. Это просто требует времени.
Ответ 15
Вот как я узнал, когда переключился с 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 purists. Вы должны стремиться стать мастером своих инструментов, а не подчиняться им.