Vim:如何在缩进脚本中更改文本

时间:2010-11-21 01:09:15

标签: vim editor

我最近从Eclipse切换到了Vim。我喜欢这个。我正在处理一些闲逛,但其中一个我遇到很多麻烦的是PHP文档评论。在eclipse中我可以输入:

/** [enter]

,下一行将自动填充

 * 

所以我有:

/**
 * [comment goes here]

我想知道vim是否有这样的东西。似乎有一些插件可以通过运行命令自动生成doc注释,但是我喜欢在我输入时让它们执行它们。

我正在玩PHP缩进脚本(http://www.vim.org/scripts/script.php?script_id=1120)并且我知道它何时在doc注释块中,但我无法弄清楚如何让它实际更改文本在块内部按下Enter后添加“*”。

我已经尝试了其他插件所做的事情:

let @z = ' * '
put! z

也尝试了这个:

exe 'normal!' '"zgp'

但没有运气。这是不可能从缩进脚本,如果没有,我如何实际让Vim识别文档注释块并在我打字时采取相应的行动?

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

无需弄乱缩进文件。 Vim的formatoptions将为您和各种语言(不仅仅是PHP)执行此操作。

确保r中包含formatoptions

:setlocal fo+=r "to set
:set fo? "to query

您可以在.vimrc.vim/ftplugin/php.vim中添加此内容(如果您只是想为PHP激活此内容)。

有关formatoptions和文件类型插件的详细信息,请参阅:

答案 1 :(得分:1)

将以下代码添加到您的vimrc会做类似于您想要的操作吗?

autocmd BufNewFile,BufRead *.php setlocal formatoptions+=r formatoptions+=o
autocmd BufNewFile,BufRead *.php setlocal comments=s1:/*,mb:*,ex:*/,://,:#

我目前无法弄清楚如何在不覆盖<!-- --->评论的情况下使其发挥作用。即这将通过<!-- -->评论打破自动缩进。

编辑。在Johnsyweb的发行版中添加了://,:#comments

答案 2 :(得分:0)

尝试将此添加到您的vimrc:

let g:PHP_autoformatcomment=1

我在Mac上,默认情况下似乎已启用。功能完全如你所说。