VIM Omni完成:未找到模式

ins*_*nia 8 vim

我一直试图让VIM自动完成工作,但不幸的是我遇到了问题.

现在我尝试从基础开始.试图让自动完成首先处理HTML文档.但即便如此,这也成为一个问题.

我设置了正确的DOCTYPE,甚至指定了不同的DOCTYPE以查看它是否适用于Transitional,Strict,甚至是XHTML或HTML5,但似乎都没有.

htmlcomplete.vim文件确实位于"autoload"目录中.

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

filetype plugin indent on
Run Code Online (Sandbox Code Playgroud)

但这仍然没有用,没有多少研究对我有帮助,因为唯一相关的结果是VIM中C++自动完成的问题.(目前vim并不完全支持,但它支持HTML自动完成,因为我知道因为我之前已经在不同系统的多个实例上工作了.)

你认为我接下来应该怎么做?我不知道我应该从哪里离开..

无论如何,当我使用"omni completion"选项时.AKA(Ctrl + X,Ctrl + O),它总是说:

Omni Completion (^O^N^P) Pattern not found
Run Code Online (Sandbox Code Playgroud)

默认情况下语法突出显示无需使用:

:syntax on/:syntax enable
Run Code Online (Sandbox Code Playgroud)

它只是通过文件类型识别它应该.这样才行.自从我取消注释"filetype plugin indent on"后,缩进就开始工作了.但我不能让这个正常工作.

但也许,我在这里忽略了这一点,并以错误的方式思考这一点.如果我错了,请纠正我.我正在寻找的功能是,当我输入"<"时,它会自动显示一个包含所有标签的下拉列表,并说我输入"<"它将进一步细化为"div"等.是我在Vim中习惯的功能,没有任何配置,只是默认情况下.

当我使用"Ctrl + N"或"Ctrl + P"命令时,我得到一个非常小的(12个标签)可能标签列表,但这是手动的,而不是自动检测键入的"<".

我看错了吗?Omni Completion不是我应该考虑配置的正确选择吗?或者这是一个提供此功能的不同插件?

每当我调查它时,它总是指"Ctrl + X + Ctrl + O"作为语法自动完成,所以我认为这是我已经知道的功能.但也许我错了.

所以有人可以帮助我更好地解释这一点,指出我正确的方向.或者让我知道我正走在正确的道路上(如果我是)并帮助我解决这个问题?

感谢你们.照顾自己.

根据要求,这里是信息:

vimrc文件位于:http: //pastebin.com/QfUDVvdP

我的版本是7.3(又名vim73)

我正在使用CLI版本,因为我发现GVIM实际上更令人困惑.但我有两个.并且它们使用相同的vim运行时.

我没有添加任何插件或额外的功能,因为这是在Ubuntu 12.04上的全新安装,这也是一个全新的安装.唯一被改变或添加的是"smali.vim"语法突出显示语法文件夹,以及opa.vim和opajs.vim.也是opacomplete.vim自动加载.

有vimrc和vimrc.tiny,以及/ etc/vim /文件夹中的gvimrc.

并且vim的所有文件都位于默认目录/ usr/share/vim/vim73 /和/ usr/share/vim /中.除了已经指定的文件之外,没有任何文件被移动,更改或更改.

希望有所帮助.

lza*_*zap 1

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

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

我猜你有一个插件或者其他东西。实施起来并不难。不加载任何插件启动 Vim 来查看一下。无论如何,对于这个问题。

许多人不知道,Vim 7+对 XML/XHTML/HTML 语言有很好的支持不需要插件!),并且可以使用您想要的任何基于 XML 的语言进行扩展。您可以做的是使用 DTD/RNG 转换器来准备 Vim 定义,该定义用于为您提供全方位补全。

例如,我的 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
Run Code Online (Sandbox Code Playgroud)

诀窍是 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>
Run Code Online (Sandbox Code Playgroud)

现在尝试插入 body 标签,输入“bo”并按 Ctrl X O. Bang。尝试添加一个属性,输入“on”并再次点击它。答对了。

您可以使用 Ctrl XO 和其他功能:

  • 在“<”之后完成标签名称,具体取决于上下文
  • 标签内部包含完整的正确属性
  • 当属性的可能值数量有限时有助于完成它们
  • 实体的完整名称(在|xml-omni-datafile|中定义,并在当前文件中使用“
  • 当在“之后使用”时

更多信息(以及可能的用户使用自己的 XML 定义进行自定义):

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