在Emacs中包装(填充)一长串字符串(clojure模式)

在Emacs中包装(填充)一长串字符串(clojure模式),emacs,clojure,word-wrap,Emacs,Clojure,Word Wrap,在Emacs(Clojure模式)中,我想填写以下内容: (def items ["freezing" "drum" "lean" "deputy" "deputy" "session" "critic" "ace" "rat" "racket" "trap" "inconvenient" "guidance" "ruins"]) 所以它看起来像这样: (def items ["freezing" "drum" "lean" "deputy" "deputy" "session" "c

在Emacs(Clojure模式)中,我想填写以下内容:

(def items
  ["freezing" "drum" "lean" "deputy" "deputy" "session" "critic" "ace" "rat" "racket" "trap" "inconvenient" "guidance" "ruins"])
所以它看起来像这样:

(def items
  ["freezing" "drum" "lean" "deputy" "deputy" "session" "critic" "ace"
   "rat" "racket" "trap" "inconvenient" "guidance" "ruins"])
我正在寻找一个函数来完成它。我尝试过,但没有成功:

  • M-q
    (例如
    paredit reindent defun
  • C-u M-q
    (例如
    paredit reindent defun
  • M-x填充段落
  • C-u M-x填充段落

填充区域,因为段落
是您想要的

在填充之前,您可以选择使用library
pp.el
中的函数漂亮地打印(到字符串或缓冲区)。漂亮的打印不会进行填充,但是如果您显示的是Lisp sexp,它将在线宽和可读性方面产生很大的差异。

可以做到这一点

在下面的gif中,
fill列
位于
70
,并且:

  • M-q填充
  • f和h移动光标
  • O联合国填充

是的。为了澄清:(1)围绕向量创建一个选择(例如,
[
]
)(2)按
M-x填充区域作为段落。是的,除非您不必“创建选择”-只需将开始和结束位置传递给函数即可。如果这样一个向量是更大的sexp的一部分,那么首先漂亮地打印sexp也将有助于提高线宽和可读性。对于交互式使用,如何传递起始和结束位置?如果您的意思是以交互方式使用
填充区域作为段落
本身,那么它将在活动区域上运行。如果您的意思是在您自己的命令中,那么请参见功能
交互
-例如,
“r”
,它再次选择活动区域限制。如果您是指其他内容,请详细说明。(您也可以将
交互式
与Lisp sexp而不是字符串arg一起使用,以指定args。例如,
填充区域作为段落
就是这样做的。)lispy fill与paredit配合使用好吗?你建议同时使用它们吗?你是如何在回答中制作GIF动画的?
lispy
完全取代了我的
paredit
。但是如果你想的话,你可以把它们混在一起。对于gif,我用Kazam来拍照,然后用这个配方来编译: