Vim Omni завершение: шаблон не найден

Ive пытался получить автоматическое завершение VIM, но, к сожалению, столкнулся с проблемами.

прямо сейчас я попытался просто начать с основ. попытка получить автоматическое завершение для работы с HTML-документами в первую очередь. Но даже это становится проблемой.

Я установил правильный DOCTYPE и даже указал разные, чтобы увидеть, будет ли он работать на Transitional, или Strict, или даже XHTML или HTML5, но никто не работает.

В htmlcomplete.Vim-файл действительно находится в каталоге "autoload".

в моем файле vimrc применяется правильная настройка:

filetype plugin indent on

но все равно это не работает, и никакие исследования мне не помогают, потому что единственными релевантными результатами являются проблемы с автоматическим завершением C++ в VIM. (который vim не полностью поддерживает в настоящее время, но он поддерживает автоматическое завершение HTML, как я знаю, потому что раньше он работал на нескольких экземплярах разных систем.)

как вы думаете, ребята, что мне делать дальше? Я не знаю, куда мне теперь идти..

независимо от того, что, когда я использую опцию "завершение omni". AKA (Ctrl+X, Ctrl+O), он всегда говорит:

Omni Completion (^O^N^P) Pattern not found

подсветка синтаксиса работает по умолчанию, даже без использования:

:syntax on/:syntax enable

он просто распознает тип файла, как и должен. это работает. Отступ начал работать с тех пор, как я раскомментировал "отступ плагина filetype". но я просто не могу заставить это работать правильно.

но, может быть, я упускаю суть здесь, и думаю об этом неправильно. Поэтому, пожалуйста, поправьте меня, если я ошибаюсь. Какую функцию я ищу, когда я набираю"

когда я использую команду "Ctrl+N" или "Ctrl+P" я получаю очень маленький (12 тегов) список возможных тегов, но это вручную, а не автоматическое обнаружение введенного "

Я смотрю не на то? Является ли завершение Omni не правильным вариантом, который я должен смотреть на настройку? Или это был другой плагин для обеспечения этой функциональности?

всякий раз, когда я смотрю в него, он всегда ссылается на "Ctrl+X + Ctrl+O" в качестве автоматического завершения синтаксиса, поэтому я предположил, что это функция, которую я узнал. но, возможно, я неправильный.

Так может кто-то помочь объяснить это лучше меня, мне точку в правильном направлении. Или дайте мне знать, что я на правильном пути (если я) и помочь мне решить эту проблему?

Спасибо, ребята. Заботиться.

как запрошено, вот информация:

файл vimrc находится здесь:http://pastebin.com/QfUDVvdP

моя версия 7.3 (он же vim73)

Я использую версию CLI, как я нахожу GVIM на самом деле более запутанным. но у меня оба. и они используют ту же среду выполнения vim.

Я не добавил больше плагинов или дополнительных feautres, так как это новая установка на Ubuntu 12.04, которая также является новой установкой. Единственное, что было изменено или добавлено это "smali.Vim " подсветка синтаксиса в папку синтаксиса, а также opa.Vim, а opajs.напор. также opacomplete.Vim в автозагрузку.

есть vimrc, и vimrc.крошечные, а также gvimrc в /etc/vim/ папка.

и все файлы для vim находятся в каталоге по умолчанию, /usr/share/vim/ vim73 /и/usr/share/vim/. Ни один из файлов не перемещается, не изменяется или не изменяется, кроме того, что уже было указано.

надеюсь, что это поможет.

2 ответов


прежде всего, Omni завершение никогда не работал (или работает) автоматически. Вы сказали, что всплывающее окно должно появляться при вставке '

http://vimdoc.sourceforge.net/htmldoc/version7.html#new-omni-completion

Я предполагаю, что у вас есть плагин для этого или что-то. Это не трудно реализовать. Запустите Vim без загрузки плагинов, чтобы проверить его из. Во всяком случае, к вопросу.

многие люди не знают, что Vim 7+ имеет достойная поддержка XML/XHTML / HTML языков (плагины не нужны!) с возможностью расширить его с помощью любого языка на основе XML, который вы хотите. Вы можете использовать преобразователи DTD/RNG, которые готовят определение Vim, которое используется для завершения omni.

например, моя установка Vim содержит поддержку языков HTML4 и XHTML с помощью по умолчанию:

$ rpm -ql vim vim-common | grep xml
/usr/share/vim/vim73/autoload/xml
/usr/share/vim/vim73/autoload/xml/html32.vim
/usr/share/vim/vim73/autoload/xml/html401f.vim
/usr/share/vim/vim73/autoload/xml/html401s.vim
/usr/share/vim/vim73/autoload/xml/html401t.vim
/usr/share/vim/vim73/autoload/xml/html40f.vim
/usr/share/vim/vim73/autoload/xml/html40s.vim
/usr/share/vim/vim73/autoload/xml/html40t.vim
/usr/share/vim/vim73/autoload/xml/xhtml10f.vim
/usr/share/vim/vim73/autoload/xml/xhtml10s.vim
/usr/share/vim/vim73/autoload/xml/xhtml10t.vim
/usr/share/vim/vim73/autoload/xml/xhtml11.vim
/usr/share/vim/vim73/autoload/xml/xsd.vim
/usr/share/vim/vim73/autoload/xml/xsl.vim
/usr/share/vim/vim73/autoload/xmlcomplete.vim
/usr/share/vim/vim73/compiler/xmllint.vim
/usr/share/vim/vim73/compiler/xmlwf.vim
/usr/share/vim/vim73/ftplugin/xml.vim
/usr/share/vim/vim73/indent/xml.vim
/usr/share/vim/vim73/syntax/docbkxml.vim
/usr/share/vim/vim73/syntax/xml.vim

трюк-это функция автоматической загрузки Vim. Вам нужно убедиться, что файл, который вы открываете, имеет правильное определение DOCTYPE. Поэтому используйте это для файлов HTML и XHTML, тогда Vim 7+ автоматически включит завершение XML/HTML omni для вас. Пример для HTML4:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html4/loose.dtd">
<html>
</html>

теперь попробуйте вставить тег тела, введите " bo " и нажмите Ctrl X O. Bang. Попробуйте добавить атрибут, введите " on " и нажмите его снова. Бинго.

Вы можете использовать Ctrl X O и другие особенности:

  • после "
  • внутри тега полные правильные атрибуты
  • когда атрибут имеет ограниченное число возможных значений, помогите завершить их!--26-->
  • полные имена сущностей (определенные в / xml-omni-datafile| и в текущий файл с "
  • при использовании после "

дополнительная информация (и возможная настройка пользователя с помощью собственного XML definitioins) здесь:

http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-xml-omni


Omnicompletion является правильной функцией и <C-x><C-o> это правильный путь. Кстати, вы должны прекратить называть это автозаполнением, потому что это далеко не автоматически.

вам ничего не нужно в ~/.vim/autoload, потому что htmlcomplete.vim уже в $VIMRUNTIME.

вкратце, учитывая то, что я знаю о ваших настройках, завершение должно работать.

но это не так. Пожалуйста, добавьте содержание ваши ~/.vimrc список установленных плагинов (и как/где они установлено) и сведения о Вашей версии Vim, платформе и если вы используете GUI или версию CLI.

редактировать

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

вы не должны ничего трогать в /usr/share/vim/ или /etc/vim/. Все ваши настройки должны войти в ~/.vimrc и ваши плагины должны идти в ~/.vim/.

~
  .vim/
    autoload/
      opacomplete.vim
    syntax/
      opa.vim
      opajs.vim
      smali.vim
  .vimrc

вы должны вернуть файлы и каталоги по умолчанию в исходное состояние, прежде чем идти дальше.

endedit