当前位置:  开发笔记 > 编程语言 > 正文

如何在Vim中创建简短的片段?

如何解决《如何在Vim中创建简短的片段?》经验,为你挑选了5个好方法。

我最近开始使用Vim作为我的文本编辑器,目前正在进行自己的自定义.

我认为键盘映射几乎可以做任何事情,但暂时我几乎只使用它们作为一种片段设施.

所以,例如,如果我输入def{TAB}(:imap def{TAB} def ():3ha),它会扩展为:

def |(): # '|' represents the caret

这可以按预期工作,但是当我输入一个包含"def"的单词并且我没有兴趣扩展它时,当Vim等待完整命令时,我觉得很烦人.

有没有办法避免这种情况或为此更有效地使用此功能?

是否有其他Vim功能更适合这种情况?


在快速浏览一下SnippetsEmu之后,看起来它是最好的选择,并且比我想象的更容易定制.

继续前面的示例:

:Snippet def <{}>():

定义后,您可以通过键入来扩展您的代码段def{TAB}.



1> SergioAraujo..:

Snipmate - 像texmate :) http://www.vim.org/scripts/script.php?script_id=2540

视频:http: //vimeo.com/3535418

snippet def 
     """ ${1:docstring} """
     def ${2:name}:
         return ${3:value}



2> 小智..:

作为使用vim内置功能的另一个建议(虽然略有不同):

:iabbrev def def(): #

现在,无论何时键入def后跟空格或其他非单词字符,它都将扩展为与您作为SnippetsEmu的输出所给出的相同(该空间来自您输入的空间以触发完成).

这种方法不会遇到您使用的"滞后"问题:inoremap,并且内置于vim中.有关此功能的更多信息,请查看:help abbrev.

你可能会担心被空格而不是标签触发它会不必要地触发,但一般来说,vim对何时触发它非常聪明.通过仅为某些文件类型(例如,python)启用缩写,可以进一步减轻此问题:

au filetype python :iabbrev ... etc

Snip [ets](经理| Emu | Mate | .vim)当然也是一个完美的解决方案,但很高兴知道其他选择(特别是当它们内置时).



3> Jeremy Cantr..:

如果SnippetsEmu对你需要的东西太重或太野心了(这对我而言),我写了一个插件来管理基于文件类型的片段.选择片段时,它甚至可以完成标签!:)

得到它:snippets.vim



4> MDCore..:

SnippetsEmu是一个有用的片段插件.


你的链接回答让我发现了一些关于CouchDB的东西.这就是为什么链接只有答案是可怕的.不可否认,你至少措辞了这个链接,所以我至少可以搜索谷歌.你应该改变你的官方链接,就像OP /问题一样.

5> alwillis..:

我刚刚安装了UltiSnips.有一篇很好的文章解释了为什么你会选择UltiSnips:为什么选择UltiSnips?

我没有使用任何其他代码段插件; 我决定采用一种似乎功能齐全的功能,并能够容纳我,因为我获得了更多的Vim技能,并希望做更复杂的事情.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有