我一直试图让VIM自动完成工作,但遗憾的是我遇到了问题。
现在我尝试从基础开始。试图让自动完成首先处理HTML文档。但即便如此,这也成为一个问题。
我设置了正确的DOCTYPE,甚至指定了不同的DOCTYPE以查看它是否适用于Transitional,Strict,甚至是XHTML或HTML5,但似乎都没有。
htmlcomplete.vim文件确实位于“autoload”目录中。
在我的vimrc文件中,应用了正确的设置:
filetype plugin indent on
但是这仍然没有用,并且没有多少研究对我有帮助,因为唯一相关的结果是VIM中C ++自动完成的问题。 (目前vim并不完全支持,但它支持HTML自动完成,因为我知道因为我以前在不同系统的多个实例上工作过。)
你们认为我接下来应该怎么做?我不确定我应该从哪里开始......
无论如何,当我使用“omni completion”选项时。 AKA(Ctrl + X,Ctrl + O),它总是说:
Omni Completion (^O^N^P) Pattern not found
默认情况下,语法高亮显示无需使用:
:syntax on/:syntax enable
它只是通过文件类型识别它应该。这样才行。 自从我取消注释“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 /中。除了已经指定的文件之外,没有任何文件被移动,更改或更改。
答案 0 :(得分:1)
Omnicompletion是正确的功能,<C-x><C-o>
是正确的捷径。顺便说一下,你应该停止将它称为自动完成,因为它远非自动化。
~/.vim/autoload
中您不需要任何内容,因为htmlcomplete.vim
已经在$VIMRUNTIME
。
简而言之,鉴于我对您的设置的了解,完成应该有效。
但事实并非如此。请附上您的~/.vimrc
的内容,已安装的插件列表(以及它们的安装方式/位置)以及有关Vim版本,平台以及使用GUI或CLI版本的详细信息。
修改强> 的
Omnicompletion是正确的功能,但您正在寻找一个特定的插件,在每次按键时使用omnicompletion,因为没有内置设置来启用自动完成。 AutoComplPop是一个这样的插件(也就是我使用的插件),there are others.选择与您以前的经历最匹配的插件。
您不应触摸/usr/share/vim/
或/etc/vim/
中的任何内容。您的所有设置都应该转到~/.vimrc
,您的插件应该进入~/.vim/
。
~
.vim/
autoload/
opacomplete.vim
syntax/
opa.vim
opajs.vim
smali.vim
.vimrc
在继续前进之前,您必须将默认文件和目录恢复为原始状态。
的 EndEdit中强> 的
答案 1 :(得分:1)
首先,Omni Completion从未自动工作(或工作)。你说插入'&lt;'时会出现弹出窗口 - 默认情况下,这在Vim中不起作用。您必须按Ctrl X O组合。至少它不适合我。
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
诀窍是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>
现在尝试插入body标签,输入“bo”并按Ctrl X O. Bang。尝试添加属性,键入“on”并再次点击它。宾果
您可以使用Ctrl X O和其他功能:
更多信息(以及可能的用户自定义使用自己的XML定义):
http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-xml-omni