如何在VIM的snipMate中添加新的代码片段

14

我刚开始使用VIM的sniptMate插件,非常喜欢它,但是由于我的代码片段集合还不够丰富,我希望能够动态地添加新的代码片段,而不是在开发过程中打开代码片段文件并创建一个新的代码片段。

当我编写代码时,我意识到某个特定的代码块可以保存为代码片段,以免再次输入冗长的代码,此时我希望能够在不打开正在使用的语言的代码片段文件的情况下添加一个新的代码片段。

6个回答

10

如果你正在使用pathogen,你可以编写自己的代码片段而不会影响原来的代码片段。要实现这一点,将你的代码片段添加到~/.vim/bundle/mysnippets/snippets/*.snippets中。顺带一提,mysnippets可以是任何名称。

此外,惯例是在你添加代码片段的目录中添加一个_.snippets文件,其中包含应该在所有文件类型中都可用的代码片段。


6

我不确定这样做是否正确,但你可以尝试在当前工作的文件中调用MakeSnip函数。例如:

:call MakeSnip(&ft, "foo", "<foo>${1}</foo>")

&ft 会传递您当前编辑的文件类型,"foo" 是触发器,"<foo>${1}</foo>" 是替换文本。

当然,像这样创建的片段不会持久保存。那么为什么不在另一个缓冲区中打开片段文件,在那里定义必要的新片段,然后执行:

:call ReloadSnippets(&ft)

您的新代码片段将可用。您甚至可以定义一个自动命令来调用 ReloadSnippets 函数,以便在编写代码片段文件时自动刷新。


6

您可以将自己的代码片段放在~/.vim/after/snippets/或Windows上等效的目录下...请参阅:h snipMate以获取文件名语法。


3

只需将您自己的代码片段放在此处(假设您希望在编辑的所有文件中使用它们):

~/.vim/after/snippets/_.snippets

例如:

snippet test
  {"foo": "${1}", "bar": "${2}"}

1

Snipmate的片段通常存储在snippets文件夹中的".vim"目录中。

您可以相当容易地编辑正在使用的语言的片段文件。


0
如果您在Windows上使用vundle来管理插件,并且已经安装了插件,则可以执行以下操作。
vim-snipMate & vim-snippets

如果您想添加自己的定制,比如针对“html”文件类型,您只需前往此文件夹:
$HOME/vimfiles/bundle/vim-snippets/snippets/ 

创建一个新文件并以此格式命名:

html_bsmith.snippets  

(在html后必须加下划线,参见:help snipmate)

然后vim会自动加载您的文件。

如果您的自定义可以在任何地方使用,只需将其放入现有文件中:

    _.snippets

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接