我已经安装了很棒的vim-sexp和vim-sexp-mappings-for-regular-people插件,但我遇到了一个不知道如何解决的问题。
假设我有以下形式:
(alimony barbara (code determinant) eclair final-countdown)
我如何将其转换为:
(alimony
barbara
(code determinant)
eclair
final-countdown)
我可以在每个inner-form/元素之前插入一个换行符,但这有点乏味。
2条答案
按热度按时间nsc4cvqm1#
这是一个老问题,但也许一个更新的答案会帮助未来来到这里的人。
Kaz提到的程序你不用写,别人已经做过了,我还没有试过,这里有几个:fipp、cljfmt、cljstyle、zprint、joker。(最后一个函数的作用不仅仅是设置代码格式。)
正如Kaz所建议的,一旦安装了格式化程序,就可以使用
!
将代码传输到格式化程序。甚至可以将此操作绑定到一个键组合。一些格式化程序提供了有关如何执行此类操作的建议。此外,一些vim IDE插件(如vim-iced)提供了对使用外部格式化程序的支持。
vfhzx4xs2#
一个有效的方法是,不要与Vim模块和扩展打交道,而是编写一个Lisp程序,读取S表达式,并以所需的格式输出它们。要在Vim之外使用该程序,只需使用
!
命令将一系列行输入其中。