VIM Omni完成: Pattern Not Found

标签 vim

我一直在尝试使VIM自动完成工作正常进行,但不幸的是遇到了问题。

现在,我尝试着从基础开始。尝试先让自动完成功能在HTML文档上运行。但这甚至成为一个问题。

我设置了正确的DOCTYPE,甚至指定了不同的DOCTYPE,以查看它是否可以在Transitional,Strict甚至XHTML或HTML5上运行,但似乎都无法正常工作。

htmlcomplete.vim文件确实位于“自动加载”目录中。

在我的vimrc文件中,应用了正确的设置:

filetype plugin indent on

但这仍然行不通,并且没有大量的研究对我有帮助,因为唯一相关的结果是VIM中C++自动完成的问题。 (目前尚不完全支持该vim,但据我所知它确实支持HTML自动补全,因为我之前已经在不同系统的多个实例上使用了它。)

你们认为我下一步该怎么做?我不确定我应该从这里去哪里。

不管怎样,当我使用“全能补全”选项时。又名(Ctrl + X,Ctrl + O),它总是说:
Omni Completion (^O^N^P) Pattern not found

默认情况下,语法高亮不使用,甚至不使用:
:syntax on/:syntax enable

它只是根据文件类型识别它。这样行得通。
自从我取消对“文件类型插件缩进”的注释以来,缩进已经开始起作用。但我只是无法使它正常工作。

但是也许,我在这里遗漏了重点,并以错误的方式思考了这一点。所以,如果我错了,请纠正我。
我要寻找的功能是,当我键入“<”时,它将自动显示一个带有所有可能标记的下拉列表,并说我键入“<”,它将进一步细化为“div”,依此类推。是我在Vim中惯用的功能,没有任何配置,默认情况下。

当我使用命令“Ctrl + N”或“Ctrl + P”时,会得到很小的(12个标签)可能的标签列表,但这是手动的,不会自动检测到键入的“<”。

我在看错东西吗? Omni Completion不是我应该考虑配置的正确选项吗?还是这是提供此功能的其他插件?

每当我查看它时,它总是将“Ctrl + X + Ctrl + O”称为语法自动完成功能,因此我认为这是我所了解的功能。但也许我错了。

因此,有人可以帮我更好地解释这一点,为我指明正确的方向。还是让我知道我在正确的道路上(如果有的话)并帮助我解决此问题?

感谢你们。
小心。

根据要求,这里是信息:

The vimrc file is here: http://pastebin.com/QfUDVvdP

My version is 7.3 (aka vim73)

I am using the CLI version, as I find GVIM actually more confusing. but I have both. and they use the same vim runtime.

I have not added any more plugins or extra feautres, as this is a fresh install on Ubuntu 12.04, which is also a fresh install. The only thing that has been altered or added is "smali.vim" syntax highlighting to syntax folder, as well as opa.vim, and opajs.vim. also opacomplete.vim to autoload.

there is vimrc, and vimrc.tiny, as well as gvimrc in /etc/vim/ folder.

and all the files for vim are located in the default directory, /usr/share/vim/vim73/ and /usr/share/vim/. None of the files are moved, changed, or altered besides what was already specified.



希望能有所帮助。

最佳答案

首先,Omni Completion从未自动运行(或运行)。您说插入'<'时应该出现弹出窗口-默认情况下,这在Vim中不起作用。您必须按Ctrl X O组合键。至少它对我不起作用。

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

我想您有用于该插件的插件。实现起来并不难。在不加载任何插件的情况下启动Vim。无论如何,这个问题。

许多人不知道,Vim 7+对XML/XHTML/HTML语言(不需要插件!)具有的体面支持,并且有可能用所需的任何基于XML的语言对其进行扩展。您可以做的是使用准备Vim定义的DTD/RNG转换器,该定义可让您全方位完成。

例如,默认情况下,我的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全功能。 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和其他功能:

“<”之后的
  • 完成标签名称,具体取决于上下文
  • 标记内的
  • 完成适当的属性
  • 当属性具有有限数量的可能值时的
  • 帮助完成
    他们
  • 实体的完整名称(在| xml-omni-datafile |和
    当前文件中带有“
  • 在“

  • 更多信息(以及使用自己的XML定义的可能的用户自定义)在这里:

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

    关于VIM Omni完成: Pattern Not Found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12036288/

    相关文章:

    vim - :o and :e in vim when using these command to load a file into the buffer? 有什么区别

    vim - 从系统剪贴板粘贴样式文本

    vim: 段落上的 gp

    php - 使用 vim Tabularize 插件只匹配第一次出现的定界符

    vim - vim中的加号和减号是什么

    ruby-on-rails - vim/macvim : locate where a method/symbol is defined

    ruby - VIM 中更好的自动完成功能

    Vim - 帮助标签不适用于 NERDtree

    regex - 将正则表达式匹配中的所有字符替换为Vim中的相同字符

    vim - 如何检测操作系统类型并在.vimrc中设置ctags路径?