Хорошее руководство по скриптам 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 51

4 ответа:

лучший совет, который я могу дать, что Вы читаете:

:help usr_41.txt

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

:help function-list

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

кроме того, посмотрите на страница скриптов vim и Google чтобы получить примеры существующих сценариев, которые помогут расширить ваши знания.

наконец (и, вероятно, самое главное), не бойтесь спросить о stackoverflow или список рассылки Vim и там будет много поддержки для каких-либо проблем вы можете иметь.

узнайте Vimscript трудный путь стоит проверить тоже.

http://learnvimscriptthehardway.stevelosh.com/

Я в аналогичной ситуации. Он все еще находится в моем списке "читать", но я только что нашел скриптинг редактора Vim сегодня. Статьи из IBM DeveloperWorks обычно очень хороши, поэтому, вероятно, стоит проверить.

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

на боковой ноте.

Я бы так не сказал ma10jd'a20kp более элегантным. Я вижу следующие проблемы:

  • это довольно трудно поддерживать (что делать, если количество строк должно стать параметром?),
  • люди любят переопределять ключи, которые они никогда не учились использовать (это может быть исправлено с ударом :normal!),
  • некоторые команды нормального режима имеют странное поведение на боковом корпусе (например,<esc>, когда курсор находится в первой колонке),
  • это портит метки a, и безымянный регистр -- другие сценарии, или даже пользователь может ожидать, что их значения не будут изменены вашим сценарием.