Newsgroups: fj.editor.emacs
Path: galaxy.trc.rwcp.or.jp!jaist-news!cs.titech!wnoc-tyo-news!sh.wide!fgw!fdm!flab!wkenji
From: wkenji@flab.Fujitsu.Co.JP (Kenji WAKAMIYA)
Subject: Recursive Editing
Message-ID: <WKENJI.93Sep27203019@einstein.center.flab.fujitsu.co.jp>
Sender: news@flab.fujitsu.co.jp
Nntp-Posting-Host: einstein
Organization: Fujitsu Laboratories Ltd., Kawasaki, Japan
Distribution: fj
Date: Mon, 27 Sep 1993 11:30:19 GMT
Lines: 127
Xref: galaxy.trc.rwcp.or.jp fj.editor.emacs:4055
X-originally-archived-at: http://galaxy.rwcp.or.jp/text/cgi-bin/newsarticle2?ng=fj.editor.emacs&nb=4055&hd=a
X-reformat-date: Mon, 18 Oct 2004 15:18:22 +0900
X-reformat-comment: Tabs were expanded into 4 column tabstops by the Galaxy's archiver. See http://katsu.watanabe.name/ancientfj/galaxy-format.html for more info.

$B<c5\!wIY;NDL8&$G$9!%(B
$B$3$l$^$G5$$K$b$7$F$J$+$C$?$N$G$9$,!$!$!$(B

view-mode$B!J(Bview-buffer$B!$(Bview-file$B!K$,(B recursive editing $B$KF~$k$N$O2?$N(B
$B$?$a$+!$F~$kI,MW$O$"$k$N$+!$(Brecursive editing $B$H$O2?$+!$9M$($F$$$?$iLk(B
$B$bL2$l$J$/$J$C$?$N$G!J$^$8!K(Belisp reference $B$rD4$Y$F$_$^$7$?!%(B

$B7k6I(B view-mode $B$N>l9g!$(Brecursive edit $B$KF~$kI,MW$O$J$$!$C1$K%3%^%s%I%k!<(B
$B%W$r$b$&#1=EA}$d$7$F$$$k$@$1$@!$$H$$$&7kO@$KC#$7$F$$$^$9!%(B

view-mode $B$,DL>o$N(B major-mode $B$H$7$F$G$O$J$/!$(Brecursive-edit $B$r8F$V$h(B
$B$&$K:n$i$l$F$$$k$N$K$O2?$+M}M3$,$"$k$N$G$7$g$&$+!)(B

$B9M$($i$l$k$H$7$?$i!$(Bview-mode $B$O(B M-x view-buffer $B$J$I$H$7$F;H$o$l$k$?(B
$B$a$K$"$k$N$G$O$J$/!$(Brecursive-edit $B$X$N%$%s%?%U%'!<%9$H$7$F(B elisp $B%"%W(B
$B%j%1!<%7%g%s$+$i8F$P$l$k$?$a$K$"$k$N$@!$$H$$$&M}M3$,;W$$$D$/$N$G$9$,!$!$!$(B
$B0c$&$+$J$!!%(B

$B8f0U8+$*BT$A$7$F$*$j$^$9(B(_ _)$B!%(B

$B!tK]Lu$7$J$$$H1Q8l$,FI$a$J$$$N$G(B;-)$B!$(Belisp reference $B$N(B Recursive
$B!t(BEditing $B$N@a$rOBLu$7$F$_$^$7$?!%0J2<$K$D$1$^$9!%(B
--
  _/      _/_/ _/ _/_/_/_/   _/  _/_/   Kenji WAKAMIYA
 _/  _/  _/_/_/  _/_/  _/_/ _/  _/_/   Fujitsu Laboratories Ltd.
 _/_/_/_/ _/ _/ _/    _/ _/_/  _/_/   wkenji@flab.fujitsu.co.jp
 _/  _/  _/  _/_/_/_/_/   _/_/_/_/   Nifty: NAB02402, GFF01145
---------->8---------->8---------->8---------->8---------->8----------
Recursive Editing
=================

Emacs $B$,5/F0$9$k;~!$(BEmacs $B$N%3%^%s%I%k!<%W$O<+F0E*$K2s$5$l$k!%$3$N%3%^(B
$B%s%I%k!<%W$N%H%C%W%l%Y%k$N8F$S=P$7$O!$(BEmacs $B$,=*N;$9$k$^$G7h$7$FH4$1$k(B
$B$3$H$O$J$$!%(BLisp $B%W%m%0%i%`$O$^$?!$%3%^%s%I%k!<%W$r8F$S=P$9$3$H$,$G$-(B
$B$k!%$3$l$O!$(B2 $B$D0J>e$N%3%^%s%I%k!<%W$r%"%/%F%#%V$K$9$k$?$a!$2f!9$O$=$l(B
$B$r(B "recursive editing" $B$H8F$V!%(B1 $B$D$N(B recursive editing $B%l%Y%k$O!$$=$l(B
$B$r8F$S=P$7$?2?$i$N%3%^%s%I$r$b%5%9%Z%s%I$7!$$=$N%3%^%s%I$rB39T$9$kA0$K(B
$B%f!<%6$KG$0U$NJT=8$r$9$k5!2q$rM?$($k$H$$$&8z2L$r;}$C$F$$$k!%(B

Recursive editing $B$N:]Cf$K;HMQ2DG=$J%3%^%s%I$O!$%H%C%W%l%Y%k$N%k!<%W$G(B
$B;HMQ2DG=$J$b$N$HF1$8$G$"$j!$%-!<%^%C%WFb$KDj5A$5$l$k!%$?$@!$(B2$B!$(B3 $B$NFC(B
$BJL$J%3%^%s%I$O!$$=$N(B recursive editing $B%l%Y%k$rH4$1$k(B; $B$=$NB>$N%3%^%s(B
$B%I$O!$=*N;;~$K$=$N(B recursive editing $B%l%Y%k$KLa$k!JH4$1$k$?$a$NFCJL$J(B
$B%3%^%s%I72$O>o$K;HMQ2DG=$G$"$k$,!$(Brecursive editing $B$,9T$J$o$l$F$$$J$$(B
$B;~$K$O2?$b$7$J$$!K!%(B

Recursive $B$J$b$N$r4^$`A4$F$N%3%^%s%I%k!<%W$O!$$=$N%3%^%s%I%k!<%W$+$i5/(B
$BF0$5$l$?%3%^%s%IFb$G$N%(%i!<$K$h$j$=$N%k!<%W$rH4$1$F$7$^$&$3$H$,$J$$$h(B
$B$&$K!$A4$F$NL\E*$N%(%i!<%O%s%I%i$r%;%C%H%"%C%W$9$k!%(B

$B%_%K%P%C%U%!$G$NF~NO$O!$(Brecursive editing $B$NFCJL$J<oN`$G$"$k!%$3$l$K$O(B
$B%_%K%P%C%U%!$H%_%K%P%C%U%!%&%#%s%I%&$NI=<($N$h$&$J(B 2$B!$(B3 $B$NFCJL$J%3%D$,(B
$B$"$k$b$N$N!$$"$J$?$,A[A|$9$k$[$IB?$/$O$J$$!%%_%K%P%C%U%!$G$O$$$/$D$+$N(B
$B%-!<$O0[$J$C$FF0:n$9$k$,!$$=$l$O%_%K%P%C%U%!$N(B local map $B$,1F6A$7$F$$(B
$B$k$@$1$G$"$k(B; $B%&%#%s%I%&$r@ZBX$($F$_$l$P!$DL>o$N(B Emacs $B%3%^%s%I$,;H$((B
$B$k$@$m$&!%(B

1 $B$D$N(B recursive editing $B%l%Y%k$r8F$S=P$9$K$O!$(B`recursive-edit' $B4X?t$r(B 
call $B$9$k!%$3$N4X?t$O%3%^%s%I%k!<%W$r4^$s$G$$$k(B; $B$^$?!$%?%0(B `exit' $B$K(B
$B$h$k(B `catch' $B$N(B call $B$r4^$s$G$*$j!$(B`exit' $B$X$N(B throw $B$K$h$C$F$=$N(B 
recursive editing $B$rH4$1$k$3$H$r2DG=$K$7$F$$$k!J(BCatch and Throw $B$r;2>H!K!%(B
$B%3%^%s%I(B `C-M-c'$B!J(B`exit-recursive-edit'$B!K$O$3$l$r9T$J$&!%@)8f$r(B 1 $B%l%Y(B
$B%k>e$N%3%^%s%I%k!<%W$KLa$9$?$a$K$O!$CM(B `t' $B$r(B throw $B$9$l$P(B 
`recursive-edit' $B$O(B quit $B$9$k!%$3$l$O(B "abort" $B$H8F$P$l$F$*$j!$(B`C-]'
$B!J(B`abort-recursive-edit'$B!K$K$h$C$F9T$J$o$l$k!%(B

$B$[$H$s$I$N%"%W%j%1!<%7%g%s$O!$%_%K%P%C%U%!$r;HMQ$7$F$$$kItJ,0J30$G$O(B 
recursive editing $B$r;HMQ$9$Y$-$G$O$J$$!%0lHLE*$K$O!$%+%l%s%H%P%C%U%!$N(B
$B%a%8%c!<%b!<%I$r!$D>A0$N%b!<%I$KLa$k$?$a$N%3%^%s%I$r;}$C$?FCJL$J%a%8%c!<(B
$B%b!<%I$K0l;~E*$KJQ99$7$?J}$,%f!<%6$K$H$C$F$O$h$jJXMx$G$"$k!J$3$N%F%/%K%C(B
$B%/$O!$(BRmail $B$N(B `w' $B%3%^%s%I$K$h$C$F;HMQ$5$l$F$$$k!K!%$"$k$$$O!$%f!<%6(B
$B$K(B "recursively" $B$KJT=8$9$k$?$a$NJL$N%F%-%9%H$rM?$($?$1$l$P!$FCJL$J%b!<(B
$B%I$N?7$7$$%P%C%U%!$r:n@.$7A*Br$7$J$5$$!%$3$N%b!<%I$K$*$$$F$O!$=hM}$r40(B
$BN;$7$FD>A0$N%P%C%U%!$KLa$k$?$a$N%3%^%s%I$rDj5A$7$J$5$$!J(BRmail $B$N(B `m' 
$B%3%^%s%I$O$3$l$r9T$J$&!K!%(B

Recursive edit $B$O%G%P%C%.%s%0$K$*$$$FM-1W$G$"$k!%4X?tDj5A$NCf$K$O!$$=(B
$B$N4X?t$KE~C#$7$?:]$K>\:Y$rD4$Y$i$l$k$h$&!$%V%l!<%/%]%$%s%H$N0l<o$G$"$k(B 
`debug' $B$N(B call $B$rA^F~$9$k$3$H$,$G$-$k!%(B`debug' $B$O(B recursive edit $B$r8F(B
$B$S=P$9$,!$%G%P%C%,$H$7$F$NB>$NFCD'$bDs6!$9$k!%(B

Recursive editing $B%l%Y%k$O$^$?!$(B`query-replace' $BFb$G(B `C-r' $B$r%?%$%W$7(B
$B$?;~!$$"$k$$$O(B `C-x q'$B!J(B`kbd-macro-query'$B!K$r;HMQ$7$?;~$K$b;H$o$l$k!%(B

 * $B4X?t(B: recursive-edit

     $B$3$N4X?t$O%(%G%#%?$N%3%^%s%I%k!<%W$r8F$S=P$9!%$3$l$O!$%f!<%6$KJT(B
     $B=8$r3+;O$5$;$k$?$a$K!$(BEmacs $B$N=i4|2=$K$h$C$F<+F0E*$K(B call $B$5$l$k!%(B 
     Lisp $B%W%m%0%i%`$+$i(B call $B$5$l$?;~$K$O!$(Brecursive editing $B%l%Y%k$K(B
     $BF~$k!%(B

     $B0J2<$NNc$K$*$$$F!$4X?t(B `simple-rec' $B$O!$:G=i$K(B point $B$r(B 1 $B%o!<%I(B
     $BA0?J$5$;!$$=$l$+$i%(%3!<NN0h$K%a%C%;!<%8$rI=<($5$;$D$D(B recursive
     edit $B$KF~$k!%$=$N8e%f!<%6$O4uK>$NJT=8$r9T$J$&$3$H$,$G$-!$(B`C-M-c' 
     $B$r%?%$%W$9$l$P!J(Brecursive edit $B$r!KH4$1$F(B `simple-rec' $B$N<B9T$rB3(B
     $B$1$k!%(B

          (defun simple-rec ()
            (forward-word 1)
            (message "Recursive edit in progress.")
            (recursive-edit)
            (forward-word 1))
               => simple-rec
          (simple-rec)
               => nil

* $B%3%^%s%I(B: exit-recursive-edit

     $B$3$N4X?t$O!$:G$b?<$$(B recursive edit$B!J%_%K%P%C%U%!$G$NF~NO$r4^$`!K(B
     $B$+$iH4$1$k!%$=$NDj5A$O;v<B>e(B `(throw 'exit)' $B$G$"$k!%(B

* $B%3%^%s%I(B: abort-recursive-edit

     $B$3$N4X?t$O!$(Brecursive edit $B$rH4$1$?8e$G(B `quit' $B$r%7%0%J%k$9$k$3$H(B
     $B$K$h$j!$:G$b?<$$(B recursive edit$B!J%_%K%P%C%U%!$G$NF~NO$r4^$`!K$rMW(B
     $B5a$7$?%3%^%s%I$r(B abort $B$9$k!%$=$NDj5A$O;v<B>e(B `(throw 'exit t)' 
     $B$G$"$k!%(BQuitting $B$r;2>H!%(B

* $B%3%^%s%I(B: top-level

     $B$3$N4X?t$O!$A4$F$N(B recursive editing $B%l%Y%k$rH4$1$k(B; $BCM$OJV$5$:!$(B
     $B40A4$K2?$i$N7W;;$bL5$7$KD>@\%a%$%s$N%3%^%s%I%k!<%W$KLa$k!%(B

* $B4X?t(B: recursion-depth

     $B$3$N4X?t$O!$(Brecursive edit $B$N8=:_$N?<$5$rJV$9!%%"%/%F%#%V$J(B 
     recursive edit $B$,$J$1$l$P(B 0 $B$rJV$9!%(B
