Snipmate используется, чтобы развернуть фрагменты, но перестала работать. Я изменил несколько несвязанных вещей в моем vimrc, но я не знаю, что вызвало это (и у меня нет резервной копии старого файла).Snipmate больше не раскрывается
Мое исследование до сих пор:
вкладку Нажатие не расширяется, а вместо этого вставляет пробелы, проверьте
:verbose imap
:i <Tab> * =TriggerSnippet()<CR> Last set from ~\vimfiles\bundle\snipmate.vim\after\plugin\snipMate.vim
Кажется разумным, интересно, что произойдет, если я печатаю
<C-R>=TriggerSnippet()<CR>
вручную? Тот же результат, пробел вставлен. Weird.- Я отредактировал в нескольких операциях
:echo
в исходном кодеTriggerSnippet()
, по-видимому, функция не выполнена вообще? - Введите
def
в файл Python, поместите курсор наf
или в поле рядом с ним введите:call TriggerSnippet()
. На этот раз функция действительно работает (видимость отладки echos), но нет расширения. Но, возможно, он действительно хочет, чтобы его вызывали из режима вставки, а не из ex. Запуск следующий фрагмент кода, который я нашел в this question дал пустой результат:
fun! GetSnipsInCurrentScope() let snips = {} for scope in [bufnr('%')] + split(&ft, '.') + ['_'] call extend(snips, get(s:snippets, scope, {}), 'keep') call extend(snips, get(s:multi_snips, scope, {}), 'keep') endfor return snips endf echo keys(GetSnipsInCurrentScope()) ----> []
Weird. Почему я могу запустить TriggerSnippets
через команду ex, но не через <C-R>=
? Что это означает, что нет определенных фрагментов? Еще важнее, как мне это исправить?
Что касается моей конфигурации, ничто в моем vimrc не упоминает Snipmate, я установил его через патоген на Vim 7.4 на Win7, он работал раньше. Я использую последнюю версию git (установленную вчера, и она сработала) Snipmate, и дерево git чиста (за исключением нескольких команд отладки, но без них они тоже не работают).
Редактировать: Обновлено после пояснения компилятора о s:
переменных.
Edit 2: Плагины Я установил с помощью Возбудитель: ctrlp-ру-Сличитель ctrlp.vim, джедай-ВИМ, pytest-ВИМ-компилятор, питон-режим, snipmate.vim, syntastic , ВИМ-EasyMotion, ВИМ-беглец, ВИМ-чувствительная, ВИМ-сыщик,
's:' переменные являются локальными для исходного файла, на который они ссылаются. Эта функция должна быть в файле, который имеет функцию, которая ранее определяла 's: snippets' и' s: multi_snips' –
Спасибо, застрял функция в правильный файл, не найдены фрагменты ('[]'). ': set snippets_dir' имеет 2 разделенных запятой пути, и это хорошо выглядит. –
Я знаю, что вы сказали, что изменения в '.vimrc' не должны быть связаны, но иногда вещи взаимодействуют неожиданными способами. Можете ли вы отправить свой '.vimrc' в свой ответ? –