2013-04-26 1 views
5

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

Я хочу, чтобы это поведение:

  • Когда я начинаю набирать слово, я хочу иметь окно, в котором предложить доработки;
  • В предлагаемом пополнении, я хочу использовать последние слова;
  • Я хочу иметь функции, найденные через ctags;
  • Я хочу иметь стандартные функции для языка, который я использую;
  • Я хочу иметь фрагменты;

Существует много плагинов, посвященных автозавершению для vim, и я потерян.

+3

Добро пожаловать в Vim; его обширное хранилище плагинов - это и благословение, и проклятие; что вы нашли, что вам понравилось, насколько важна одна особенность над другой ?! В конце концов, вам не придется самостоятельно запускать некоторые плагины; у всех предпочтения разные, и в Vim нет единого решения для всех. –

ответ

7

В настоящее время я использую YouCompleteMe ... Это очень хорошо, хотя я не знаю, можно ли настроить сортировку слов на основе последнего использования. Он имеет общие возможности нечеткого завершения, которые будут работать над любым типом файла (вы можете обнаружить, что нечеткое завершение является удивительным), но оно также содержит семантическое завершение для C/C++/Objective-C/Objective-C++ через libclang.

В частности, я собираю самые последние clang, libC++ и VIM из источников для настройки и установки VIM для использования моей среды python/ruby ​​/ etc и получения достойной поддержки C++ 11. Затем я компилирую YouCompleteMe из источников, хотя я сначала устанавливаю его через диспетчер плагинов. Мой текущий выбор - VAM, но есть другие, такие как Vundle и Pathogen.

+0

Я прочитал документ о YCM, и я ничего не видел о фрагментах. Я видел эту строку: «YCM устаревает следующие плагины Vim, потому что у нее есть все свои функции плюс дополнительно: autocomplpop», но в документе autocomplpop я видел эту строку ». Кроме того, вы можете сделать автоматическое всплывающее завершение триггера пользователя и snipMate, если параметры установлены. ". Я посмотрел исходный код YCM, и я ничего не видел о фрагментах. Есть ли способ поддержать фрагменты с YCM? – Dougui

+0

@Dougui Недавно я видел поддержку сниппетов. Возможные фрагменты также перечислены в меню завершения, это делается с помощью интеграции UltiSnips, YCM помогает отображать доступные фрагменты, это UltiSnips, который их предоставит. http://stackoverflow.com/q/14896327, https://github.com/Valloric/YouCompleteMe/pull/257 –

+0

Да, недавно была реализована поддержка ultisnips. Интеграция Ctags включена в список задач, но еще не выполнена. Я думаю, что этот плагин действительно подходит ближе всего к тому, что вы хотите. –

3

Попробуйте этот метод:

for plugin in plugins 
    try 
     install plugin 
     read doc 
     test plugin 
    catch 
     remove plugin 
    endtry 
endfor 

Кроме того, убедитесь, что вы прочитали и поняли :h ins-completion перед охотой вниз плагинов.

+0

Ваш код не работает в моем vim (v7.3)! но я даю вам преимущество! – Kent

+0

Хехе, как и ожидалось. – romainl

+1

не пытайтесь добавить этот код ... прочитайте его, и вы поймете. Это шутка. – Dougui

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