2013-05-29 5 views
2
  1. AutoComplPop автоматически выбирает выбор. Я люблю это очень сильно.Vim: Как сделать AutoComplPop, Snipmate, SuperTab работать вместе?

  2. SuperTab позволяет мне установить функцию <Tab>. Я всегда делал следующее.
    let g:SuperTabDefaultCompletionType = "<c-n>" Таким образом, если AutoComplPop выставляет много вариантов, нажатие <Tab> может выбрать следующий выбор.

  3. Snipmate реализует некоторые функции фрагментов TextMate в Vim.

Если я установил их вместе, возникли некоторые проблемы.

Например, когда я печатаю cl и нажимаю <Tab> в test.py. Снайпер работает. Однако, когда я набираю cl во второй раз, AutoComplPop выбирает варианты, включая class. Если я нажимаю <Tab>, он выбирает выбор с именем class, а Snipmate не работает.

Итак, любые решения, позволяющие AutoComplPop, Snipmate, SuperTab работать вместе?

ответ

4

SuperTab кажется выброс, здесь: его целью является не переопределить <Tab> ключ, но, чтобы обеспечить завершение с помощью этого ключа <Tab> в качестве триггера (с лежащей в основе логики примерно аналогичной АСР-х).

Вы, кажется, используете этот плагин очень надуманным образом IMO.

Это отображение позволяет использовать <Tab> для выбора следующего пункта в меню завершения:

inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<C-g>u\<Tab>" 

Он вдохновлен this Vim wiki page, которые я рекомендую.

+0

Спасибо. SuperTab + ACP отлично работает. Но, SuperTab, ACP и Snipmate конфликтуют. Ваше решение не может заставить Snipmate работать нормально. В настоящее время я использую только Snipmate + ACP и использую «CTRL + N», чтобы выбрать следующий элемент в меню завершения. Но я все еще хочу использовать '' для выбора следующего элемента. – Like

+0

Мое решение точно делает это и полностью устраняет необходимость в SuperTab, который, похоже, вы используете неправильно. Я тоже использую snipmate и ACP, и это сопоставление хорошо работает в моем тестировании: ACP действительно заканчивается просто отлично, и я могу '' через предложения, пока snipmate работает отлично. – romainl

+0

Я удаляю SuperTab и повторю попытку. Нажатие '' может выбрать следующий элемент без Snipmate. Если я использую ACP и Snipmate вместе, когда ACP появляется в меню завершения, и я нажимаю '', в моем коде есть вкладка (4 пробела). Я замечаю, что snipmate.vim имеет фрагмент кода. 'if pumvisible() ..." закрыть меню завершения и вызвать feedkeys ("\ ") '. Какую версию snipmate вы используете? – Like

Смежные вопросы