2014-12-02 64 views
3

在Emacs中(Clojure中的模式),我想填補這一個長長的清單:包裝(灌裝)的字符串在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 fill-paragraph
  • C-u M-x fill-paragraph

回答

3

fill-region-as-paragraph是你想要的。

在填充之前,您可以選擇使用來自庫pp.el的函數進行漂亮打印(對於字符串或緩衝區)。漂亮打印不會做填充,但如果你展示的是Lisp sexp,它會在線條寬度和可讀性方面產生很大的差異。

+0

是的。爲了澄清:(1)在矢量周圍創建一個選擇(例如'['到']')(2)按下「M-x fill-region-as-paragraph」。 – 2014-12-02 21:57:29

+0

是的,除非您不需要「*創建選擇*」 - 只需將開始和結束位置傳遞給函數即可。如果這樣的矢量是更大的sexp的一部分,首先漂亮的sexp也將有助於線寬和可讀性。 – Drew 2014-12-02 22:56:47

+0

交互式使用,你如何通過開始和結束位置? – 2014-12-03 15:52:01

1

lispy-fill可以做到這一點。

在下面的GIF,fill-column70,並且:

  • 了Mq填充
  • ˚Fħ移動光標
  • ö未填充

lispy-fill

+0

lispy-fill與paredit很好地協作?你建議一起使用它們嗎? – 2014-12-03 15:44:46

+0

您是如何在答案中製作GIF動畫的? – 2014-12-03 15:45:55

+0

'lispy'完全替代'paredit'。但是如果你願意,你可以把它們混合起來。 – 2014-12-03 15:51:30