Хорошее руководство по скриптам VIM? [закрытый]
я использовал VIM в течение 10 лет, но никогда не занимался сценариями VIM (всегда субъективно полагая, что это одна из областей, где VIM был слабее Emacs).
недавно реализация " в скрипте VIM я могу выполнять команды нормального режима "заставила мой ум пойти" A-ha " и внезапно начать понимать, почему части скрипта VIM таковы.
normal ma10jd'a20kp
гораздо элегантнее, чем
Marker m = currentLocation();
advanceLines(10);
Buffer b = delete(currentLocation(), m);
advanceLines(-20);
insertBuffer(b);
теперь вопрос - Какой хороший ресурс для изучения vim скрипты откуда?
спасибо!
4 ответа:
лучший совет, который я могу дать, что Вы читаете:
:help usr_41.txt
что даст вам хороший обзор основ. Затем найдите некоторые вещи, которые вы хотите сделать, и создайте для них функции. В то время как вы делаете это, сделать интенсивное использование:
:help function-list
чтобы получить представление о том, что все встроенные функции. Большинство из них довольно похожи на другие языки сценариев (хотя и более жесткий синтаксис), поэтому любой опыт работы с текстом в python или что-то еще будет полезный.
кроме того, посмотрите на страница скриптов vim и Google чтобы получить примеры существующих сценариев, которые помогут расширить ваши знания.
наконец (и, вероятно, самое главное), не бойтесь спросить о stackoverflow или список рассылки Vim и там будет много поддержки для каких-либо проблем вы можете иметь.
Я в аналогичной ситуации. Он все еще находится в моем списке "читать", но я только что нашел скриптинг редактора Vim сегодня. Статьи из IBM DeveloperWorks обычно очень хороши, поэтому, вероятно, стоит проверить.
Эл дал тебе хороший ответ. Я бы также добавил vim.викия это имеет несколько советов, связанных с вашим вопросом.
на боковой ноте.
Я бы так не сказал
ma10jd'a20kp
более элегантным. Я вижу следующие проблемы:
- это довольно трудно поддерживать (что делать, если количество строк должно стать параметром?),
- люди любят переопределять ключи, которые они никогда не учились использовать (это может быть исправлено с ударом
:normal!
),- некоторые команды нормального режима имеют странное поведение на боковом корпусе (например,
<esc>
, когда курсор находится в первой колонке),- это портит метки a, и безымянный регистр -- другие сценарии, или даже пользователь может ожидать, что их значения не будут изменены вашим сценарием.