我在Pareit模式下使用Emacs获取Lisp代码。
我正在尝试在println中包装一个函数调用:
(square 5)
(println (square 5))
paredit最终发生了什么:
(square 5)
(println) (square 5)
我无法删除println的关闭数据并将其移至最后。
我现在这样做的方式是: 1.删除函数调用并在println中将其拉出 2.在没有paren的情况下写println,直观地选择代码并用parens括起来
(square 5)
println (square 5)
=> select block of code and type (
(println (square 5))
这两种方法都很繁琐。这似乎是我在Paredit内部编写代码时常见的问题。任何帮助将不胜感激
答案 0 :(得分:8)
paredit-wrap-round
命令可能有帮助(绑定到M-(在我使用的paredit版本中)。
答案 1 :(得分:6)
与其他答案相反,我倾向于使用Ctrl-Right:在你获得
之后(println|) (square 5)
(其中|
是光标所在的位置),我只需按Ctrl-Right即可得到正确的结果。
答案 2 :(得分:5)
米 - (
您可以致电paredit-insert-html-examples
以生成HTML网页备忘单。一个版本是here。
答案 3 :(得分:2)
在您的情况下,解决方案为M-2 M-(
或M-( C-)
。
答案 4 :(得分:1)
有几种方法可以做到这一点。我通常这样做的方式是
“(”
让你
()的println
然后C-S-)让你
(的println)
使用paredit开始的最佳方法是将paredit cheatsheet放在一张贴在显示器侧面的纸上。或者,您也可以安装paredit-menu,其中添加了一个菜单项,其工具提示显示了cheetsheet所做的相同示例。
答案 5 :(得分:1)
以逐步进展的方式围绕正方形形式包装打印表单的三种方法。 (其他答案中已经提到了三种方式)
(1)Cut&类型&糊
(+ (square 3) 4)
;;; make sure cursor is at right place (| is cursor)
(+ |(square 3) 4)
;;; mark-sexp and kill-region
(+ | 4)
;;; type the print form and make sure cursor is at right place
(+ (print |) 4)
;;; paste
(+ (print (square 3)) 4)
(2)type& slurf
(+ (square 3) 4)
;;; make sure cursor is at right place (| is cursor)
(+ |(square 3) 4)
;;; type the print form and make sure cursor is at right place
(+ (print|) (square 3) 4)
;;; paredit-forward-slurp-sexp
(+ (print (square 3)) 4)
(3)包装&型
(+ (square 3) 4)
;;; make sure cursor is at right place (| is cursor)
(+ |(square 3) 4)
;;; paredit-wrap-round
(+ (|(square 3)) 4)
;;; type print
(+ (print (square 3)) 4)
Cut&类型&粘贴是最乏味的。它不依赖于paredit,并且最容易推广到围绕多个内部形式包裹复杂外形的情况,这些内部形式可能是多行格式,例如,转动
(let ((x 1))
(moo)
(oink)
(oink))
到
(let ((x 1))
(moo)
(mapc (lambda (x)
(oink)
(oink))
(list 1 2 3)))
将mapc-over-lambda形式包裹在两个oink附近。
Type& slurf似乎是最知名的。它也可以推广到mapc-over-lambda案例。
Wrap&类型是最容易键入的类型。当你将它推广到map-over-lambda的情况时,你选择两个oinks,然后按(
来包装它,并完成写lambda表单,并选择lambda表单,按(
换行它,键入mapc,您可以使用CMf跨越lambda表单并键入(list 1 2 3)。
答案 6 :(得分:0)
我使用M-C-(,它会立即将下面的性别包裹在parens中。