当我在html.erb文件中时,我没有狙击片段。

我想要HTML和Ruby,或者只是HTML会没事的,我该怎么做?

我需要写一组片段吗?

如果是这样,是否有一种方法可以在不复制它们的情况下拔出现有片段?

当看到.html ERB时,是否有一种方法告诉VIM进入HTML模式?

有帮助吗?

解决方案

摘要存储在名录中 snippets 你的某个地方 ~/.vim 文件夹。

如果您在那里看,通常每个FileType都有一个文件,则有一个C.snippets,一个Ruby.Snippets,因此您似乎要做的就是用所需的东西创建一个Erb.snippets。

最终,您可以将Ruby.snippets和html.snippets的内容复制到新的erb.snippets中。

另外,您可以在GitHub上搜索,有些人已经发布了自己的ERB.Snippets配置。例如,那里有一个不错的收藏:https://github.com/scrooloose/snipmate-snippets

最好的事情是首先尝试打开摘要文件并查看语法,根据您使用最多的内容,可以很容易地创建自己的摘要。

其他提示

您可以使用 autocmd 打开“ .html.erb”文件时,将FileType设置为HTML。对于适用于“ .erb”文件的插件可能会产生不良的副作用。

autocmd BufNewFile,BufRead *.html.erb set filetype=html

您还可以使用虚拟果皮类型加载多组片段:

autocmd BufNewFile,BufRead *.html.erb set filetype=html.eruby

:help snippet-syntax 在狙击手帮助中,以获取更多信息。

我目前正在促销 Ultisnips 在stackoverflow上。 Ultisnips支持扩展其他文件类型,您的erb.snippets看起来像这样:

extends html, ruby, rails

snippet temp "A snippet only in Erb"
erb rules ${1}
endsnippet

狙击片段的转换脚本是用Ultisnips运输的,因此切换很容易。

我使用AutoCommand方法来设置FileType,但是后来我对这样的内容进行了HTML语法错误:

<%= image_tag("logo.png", :alt => "Sample App", :class => "round") %>

最后两个角括号将以红色突出显示,这使我发挥了作用。因此,我创建了一个称为eruby.snippets的符号链接,指向html.snippets。这像冠军一样工作,现在我不必在两个地方进行更改。我还为非HTML Eruby摘要有一个Eruby-Rails摘要目录。

这是在Mac OS X系统上。请注意,别名行不通。您需要点击终端并使用LN命令。不确定在Windoze系统上这样做。

您可以将多个片段示波器分配给单个Filetype。 (我发现更改Filetype倾向于打破一些语法突出显示)。

您可以检查ERB文件的FILETYPE确实是“ Eruby”的:

:set filetype?

如果您正在使用 维持狙击手的叉子, ,看来您会同时需要Eruby.snippets和Eruby-rails.snippets。来自Snipmate-Snippets存储库(由Honza拥有,但我没有足够的声誉来链接到此处)(请参阅此处的安装部分)狙击手读数为正确的设置)。

如果您使用的是维护的叉子,我相信在.vimrc中设置g:snipmate.scope_aliases,以下将适用于您的示例:

let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['eruby'] = 'eruby,eruby-rails'

我添加了一个 拉请求 狙击手以更新其文档。

尝试狙击手一段时间后,跳上Ultisnips潮流。就像Sirver提到的那样,在一个内有HTML,Ruby等摘要 *.erb 文件就像将扩展线添加到 eruby.snippets 文件。

与原始 狙击手 插件,创建一个文件 ~/.vim/ftplugin/erb_snippets.vim 并将以下内容放入:

silent call ExtractSnipsFile(g:snippets_dir . 'html.snippets', &l:filetype)
silent call ExtractSnipsFile(g:snippets_dir . 'ruby.snippets', &l:filetype)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top