Tre modi per avvolgere un modulo di stampa attorno a un modulo quadrato, in progressioni progressive.(Due modi dei tre sono già menzionate in altre risposte)
(1) Tagliare & tipo & pasta
(+ (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) digitare & 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) avvolgere & type
(+ (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)
Taglio & tipo & pasta è il più noioso. Essa non dipende paredit ed è più facile da generalizzare al caso di avvolgere una forma esteriore complessa intorno a più moduli interni che possono essere in formato multilinea, per esempio, tornitura
(let ((x 1))
(moo)
(oink)
(oink))
in
(let ((x 1))
(moo)
(mapc (lambda (x)
(oink)
(oink))
(list 1 2 3)))
avvolgendo una forma mapc-over-lambda attorno a due oink.
Il tipo & sembra il più conosciuto. Può essere generalizzato anche al caso mapc-over-lambda.
Wrap & tipo è il più semplice da digitare. Quando si generalizza questo al caso map-over-lambda, si selezionano due oink, e si preme (
per avvolgerlo, e si finisce di scrivere il modulo lambda, e selezionare il modulo lambda, premere (
per avvolgerlo, digitare mapc, e si può usa CMf per attraversare il modulo lambda e digitare (lista 1 2 3).
fonte
2013-06-20 07:35:48
Probabilmente farebbe bene a leggere il breve [manuale] (http://mumble.net/~campbell/emacs/paredit.html), invece di fare domande per le caratteristiche che sono ben documentate. –