在vim中为php设置的注释不正确

时间:2010-01-14 00:13:46

标签: php vim

我的vim用于在php中自动继续评论。例如:

/* |  <- cursor here

然后,按 Enter 给我:

/*
 * |  <- cursor here

再次,给我:

/*
 *
 * |  <- cursor here

等...

据我了解,这是由commentsformatoptions选项控制的。但是,每当我打开php文件时,comments都会设置为:

s:<!--,m: ,e:-->

我查看了〜/ .vim文件夹,以及$ VIMRUNTIME文件夹,我无法找到更改的位置/原因,以及comments选项设置错误的原因

这是我的.vimrc

的链接

http://pastebin.com/f1509ce65

4 个答案:

答案 0 :(得分:3)

使用版本7.3的默认设置(补丁集754),我观察到与原始帖子中相同的错误:

/**<ENTER>

预期结果:

/**
 * <cursor>

实际结果:

/**
<cursor>

解决方案包括两个步骤:

对我的vimrc的修改,将这两个步骤考虑在内:

au FileType php setlocal comments=s1:/*,mb:*,ex:*/,://,:#
au FileType php setlocal formatoptions+=cro

乌拉!

答案 1 :(得分:3)

注意。

请注意,如果文件类型 indent onplugin on位于 .vimrc 中的不同行,则也会出现此问题:

filetype indent on
filetype plugin on

这会导致在$VIMRUNTIME/indent/php.vim之前处理$VIMRUNTIME/ftplugin/php.vim

indent/php.vim 文件会重置'comments',但 ftplugin/php.vim 则不会。


混乱秩序:

indent/php.vim 获取来源且comments已正确设置:

setlocal comments=s1:/*,mb:*,ex:*/,://,:#

然后 ftplugin/php.vim 获取来源。它再次来源 ftplugin/html.vim

runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim

导致 ftplugin/html.vim 正在处理并设置:

setlocal commentstring=<!--%s-->
setlocal comments=s:<!--,m:\ \ \ \ ,e:-->

稍后在 ftplugin/php.vim 中,commentstring 重置但不是comments

setlocal commentstring=/*%s*/

修正:

filetype indent plugin on

" Or
filetype plugin indent on

" Or with correct order:
filetype plugin on
filetype indent on

PS。

在任何情况下都应该在缩进之前处理插件。

要查看包含/处理的顺序,请查看:scriptnames

答案 2 :(得分:1)

找到它。我有一个时髦的.vim / indent / php.vim文件,不知何故搞砸了。

删除了它,我正在寻找的功能返回。谢谢你!

答案 3 :(得分:0)

php.vim文件应位于ftplugin的{​​{1}}文件夹中。

在vim的7.2版中,注释行是该文件中的第74行。

该文件是否被删除或移动?