三种将印刷表单包裹在方形表单周围的方法,逐步进行。(其中三种方法中的两种已经在其他答案中提到)
(1) 剪切、打字和粘贴
(+ (square 3) 4)
(+ |(square 3) 4)
;;; mark-sexp and kill-region
(+ | 4)
(+ (print |) 4)
(+ (print (square 3)) 4)
(2) 类型和滑移
(+ (square 3) 4)
(+ |(square 3) 4)
;;; type the print form and make sure cursor is at right place
(+ (print|) (square 3) 4)
(+ (print (square 3)) 4)
(3) 包装和类型
(+ (square 3) 4)
(+ |(square 3) 4)
;;; paredit-wrap-round
(+ (|(square 3)) 4)
(+ (print (square 3)) 4)
剪切、输入和粘贴是最繁琐的。它不依赖于paredit,最容易推广到将复杂的外部表单包装在多个内部表单周围的情况,这些内部表单可能是多行格式,例如,将
(let ((x 1))
(moo)
(oink)
(oink))
into
(let ((x 1))
(moo)
(mapc (lambda (x)
(oink)
(oink))
(list 1 2 3)))
通过在两个 oinks 周围包装 mapc-over-lambda 形式。
类型 & slurf 似乎是最为人知晓的。它也可以推广到 mapc-over-lambda 的情况。
Wrap & type 是最容易输入的。当你将其推广到 map-over-lambda 情况时,你选择两个 oinks,并按 (
包装它,完成编写 lambda 形式,然后选择 lambda 形式,按 (
包装它,输入 mapc,您可以使用 C-M-f 穿过 lambda 形式并键入 (list 1 2 3)。