vim 如何将每个内部表单移到新行?

9gm1akwq  于 2022-11-11  发布在  其他
关注(0)|答案(2)|浏览(119)

我已经安装了很棒的vim-sexpvim-sexp-mappings-for-regular-people插件,但我遇到了一个不知道如何解决的问题。
假设我有以下形式:

(alimony barbara (code determinant) eclair final-countdown)

我如何将其转换为:

(alimony
  barbara
  (code determinant)
  eclair
  final-countdown)

我可以在每个inner-form/元素之前插入一个换行符,但这有点乏味。

nsc4cvqm

nsc4cvqm1#

这是一个老问题,但也许一个更新的答案会帮助未来来到这里的人。
Kaz提到的程序你不用写,别人已经做过了,我还没有试过,这里有几个:fippcljfmtcljstylezprintjoker。(最后一个函数的作用不仅仅是设置代码格式。)
正如Kaz所建议的,一旦安装了格式化程序,就可以使用!将代码传输到格式化程序。甚至可以将此操作绑定到一个键组合。一些格式化程序提供了有关如何执行此类操作的建议。
此外,一些vim IDE插件(如vim-iced)提供了对使用外部格式化程序的支持。

vfhzx4xs

vfhzx4xs2#

一个有效的方法是,不要与Vim模块和扩展打交道,而是编写一个Lisp程序,读取S表达式,并以所需的格式输出它们。要在Vim之外使用该程序,只需使用!命令将一系列行输入其中。

相关问题