2015-03-27 3 views
2

Команда ab (iab и cab) может стать огромной заставкой. Однако пока неясно, когда оно будет запущено. Так, например, со следующими параметрами в _vimrc:Как и когда будет активировано отображение «: ab»?

iab sj <c-r>=strftime("20%y-%m-%d %H:%M:%S")<cr> 
cab cab drop C:\users\llinfeng\dropbox 

Для c и i быть «режим-индикатор», полный временный тег будет вставлен в то время как в режиме Insert если один нажимает <space> (или <ESC>, <C-[>) сразу после ввода sj. Для второго сопоставления полный каталог будет вставлен в режим Command-line, если вы нажмете \ (или <space>) сразу после ввода drop.

Таким образом, кажется, что для iab, следующие символы будут вызывать расширение аббревиатуры, определенный через iab:-отображения

  1. <space>
  2. <esc> (или бежать вообще)
  3. В идеале , можно догадаться, что ключ <tab> также вызывает такое расширение. . Однако, для моего случая (set expandtab tabstop=4 shiftwidth=4, то есть один «вкладки» ключ == 4 пробелов "), никакого расширения не было бы вызвано

Тогда для cab, нижеследующее может работать, чтобы вызвать расширение:

  1. \
  2. <space>
  3. ??

смущает т o я таков: что такое «закладывание в ядре», которое вызывает расширение аббревиатуры, определяемой через ab? И существует ли полный список ключей, которые могут вызвать такое расширение, как для режима Insert, так и для режима Command-line?

Спасибо!

Все самое лучшее,

-Linfeng

ответ

3

Это все исчерпывающе задокументированы в vimdocs:

В частности:

Аббревиатура распознается только при вводе символа без ключевого слова. Это также может быть <Esc>, который заканчивает режим вставки или <CR>, который завершает команду . Символ без ключевого слова, который заканчивает аббревиатуру, вставляется после расширенной аббревиатуры.Исключением является символ <C-]>, , который используется для расширения аббревиатуры без добавления дополнительных символов .

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

  • полный идентификатор (foo, g3, -1)
  • конечных идентификаторов (#i, ..f, $/7)
  • без идентификаторов (def#, 4/7$)

аббревиатуры

+0

Благодарим за то, что указали мне эту страницу. Раньше я не знал, что есть файл справки для 'abbreviation'. Все, что я знал, было о 'ab', для чего я нашел очень мало объяснений в файле справки. – llinfeng