(when 'this
(process 'this))
(awhen 'this
(process it))
我希望“awhen”在自动格式化时能像“when”一样。有什么办法可以做到这一点吗?
编辑:感谢Gilligan和Tamas推荐Slimv。作为测试,我下载了MacVim(需要在终端vim中使用),然后下载了slimv,并将其rsync到~/.vim中,启动MacVim并加载一个.lisp文件。
然后我启动了Lisp服务器(通过MacVim的GUI完成),它加载了我的默认Lisp可执行文件和核心文件。
由于我的核心文件已经加载了我常用的语言扩展(其中之一是awhen),因此awhen正确地格式化了出来。
我真的很喜欢这个解决方案。不需要学习如何告诉vim正确缩进特定函数,也不需要为我定义的每个语言扩展显式编写执行此操作的代码,并且每次添加新的语言构造时都要更新该代码。相反,我利用Slimv来为我进行格式化。只要那些宏已经加载到服务器会话正在使用的Lisp核心中,Slimv就可以“学习”新的语言扩展。非常棒!
我发现这对于一类特定的语言扩展非常有效。通常是使用&body关键字定义的宏。大多数情况下,这似乎都做得很好,但我使用的某些宏仍然无法正确自动格式化。尽管我认为这更有可能是由于宏的编写方式(非标准语言扩展)而不是其他原因。
因此,对于大多数情况,这个解决方案对我来说很有效,而且我不需要编写(和维护)任何东西。太棒了!