PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp/emulation
Viewing File: /usr/share/emacs/24.3/lisp/emulation/viper-macs.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:56:24 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/emulation/viper-macs.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\301\302!\210\210\303\304!\210\303\305!\207" [noninteractive provide viper-macs require viper-util viper-keym] 2) (defvar viper-last-macro-reg nil) (defvar viper-vi-kbd-macro-alist nil) (defvar viper-insert-kbd-macro-alist nil) (defvar viper-emacs-kbd-macro-alist nil) (defvar viper-kbd-macro-parameters nil) #@76 Vector of keys representing the name of currently running Viper kbd macro. (defvar viper-this-kbd-macro nil (#$ . 885)) #@68 Vector of keys representing the name of last Viper keyboard macro. (defvar viper-last-kbd-macro nil (#$ . 1011)) #@416 Prefix key for accessing previously typed Vi commands. The previous command is accessible, as usual, via `.'. The command before this can be invoked as `<this key> 1', and the command before that, and the command before that one is accessible as `<this key> 2'. The notation for these keys is borrowed from XEmacs. Basically, a key is a symbol, e.g., `a', `\1', `f2', etc., or a list, e.g., `(meta control f1)'. (custom-declare-variable 'viper-repeat-from-history-key ''f12 '(#$ . 1131) :type 'sexp :group 'viper) (defalias 'ex-map #[nil "\306\307\211\211\211\310 \311\216q\210\312\313!\203 \314\313\315u\210*\316\f!\211@ A\f \nF\n\203<\317\320!\202u\321\322\323\f\324 !#!\210\203M\325 \210\326\307!\210\327\330\317#\210\327 \330\317#\210\327!\330\317#\210\331\332\324 !\203s\333\202t\334#-\207" [ins map-args macro-body macro-name mod-char #1=#:wconfig "" nil current-window-configuration ((set-window-configuration #1#)) looking-at "!" t 1 ex-map-read-args viper-end-mapping-kbd-macro ignore ex-fixup-history format "map%s %S" viper-display-macro viper-change-state-to-insert start-kbd-macro define-key ")" message "Mapping %S in %s state. Type macro definition followed by `C-x )'" "Insert" "Vi" viper-ex-work-buf viper-kbd-macro-parameters viper-vi-intercept-map viper-insert-intercept-map viper-emacs-intercept-map] 7]) (defalias 'ex-unmap #[nil "\306\307\211\211\310 \311\216 q\210\312\313!\203\314\313\315u\210*\316 !\317\320 !!\321\322\323 \324\n!#!\210\325 \203<\326\202=\327\",\207" [ins macro-name temp mod-char #1=#:wconfig viper-ex-work-buf "" nil current-window-configuration ((set-window-configuration #1#)) looking-at "!" t 1 ex-unmap-read-args viper-fixup-macro vconcat ex-fixup-history format "unmap%s %S" viper-display-macro viper-unrecord-kbd-macro insert-state vi-state] 6]) (defalias 'ex-map-read-args #[(variant) "\306\307\310\211\211\211\211\211\211%&'\310\311\312\217\210\n\2039\313\n!\204\252\n;\2030\314\n!\202\252\314\315\n!!\202\252\303\316(\"\210\317\320!\210 \321\235\204\247\314& \203V\322 !\202W\307\"& \323\235\203l\324&\325&G\320Z#&\326\327(&G\325V\203\201\315\330&!!\202\202\331#\303\332 \"\210\333 \334\f!\203\237\303\335 \"\210\317\320!\210\310\202\242\336\f!\211\202D&\nG\325U\203\265\337\340!\210\341\n!\342\n!\203\303\343\n! \203\336\342 !\203\324\343 !\202\336\313 !\204\336\337\344!\210\310'\317\325!\210\n . B\207" [args macro-body macro-name message event key t [] nil (byte-code "\304\305\306\"\307P\310!\211@\310 A\"@\304\207" [args temp macro-name macro-body ex-get-inline-cmd-args ".*map[!]*[ ]?" "\n " " nil nil " read-from-string] 4) ((error (byte-code "\300\301\302\"\207" [signal error ("map: Macro name and body must be a quoted string or a vector")] 3))) vectorp vconcat prin1-to-string ":map%s <Macro Name>" sit-for 2 (13 10 (control m) (control j) return linefeed) vector (8 127 '^\? '^H (control h) (control \?) backspace delete) viper-subseq 0 format ":map%s %s" viper-display-macro "" "%s" viper-read-key viper-mouse-event-p "%s (No mouse---only keyboard keys, please)" viper-event-key error "Can't map an empty macro name" viper-fixup-macro viper-char-array-p viper-char-array-to-macro "map: Invalid syntax in macro definition" temp key-seq cursor-in-echo-area variant] 10]) (defalias 'ex-unmap-read-args #[(variant) "\306\307\230\203 \202\f\n\310\211\211\211\211\211\211\211\211\211\211\f&'()*+,-.\311\312!\211G\313V\204\325\314\315\"\210\316\317!\210 \320\235\204\323\321\f \203T\322 !\202U\323\" \324\235\203i\325\f\313\fG\317Z#\202\225 \326\235\203\225\325\f\313\fGS#\327\330\fG\313V\203\211\331\332\f!!\202\212\333#\f\334\f-\f#\327\330\fG\313V\203\247\331\332\f!!\202\250\333#\f\314\335\f\"\210\336 &\337&!\203\312\314\340\f\"\210\316\317!\210\310\202\316\341&!\211\202C\f G\313U\203\340\342\343!\210 \313\234\344>\203\357\345 !@\202\362\321 !. \207" [variant viper-insert-kbd-macro-alist viper-vi-kbd-macro-alist macro-name key-seq key t "!" nil ex-get-inline-cmd-args ".*unma?p?[!]*[ ]*" 0 message ":unmap%s <Name>" sit-for 2 (13 10 (control m) (control j) return linefeed) vconcat vector [] (8 127 '^\? '^H (control h) (control \?) backspace delete) viper-subseq (tab (control i) 9) format ":unmap%s %s" prin1-to-string viper-display-macro "" viper-do-sequence-completion "%s" viper-read-key viper-mouse-event-p "%s (No mouse---only keyboard keys, please)" viper-event-key error "Can't unmap an empty macro name" (91 34) read-from-string event viper-emacs-intercept-minor-mode viper-insert-intercept-minor-mode viper-vi-intercept-minor-mode viper-emacs-kbd-minor-mode viper-insert-kbd-minor-mode viper-vi-kbd-minor-mode macro-alist cursor-in-echo-area] 14]) (defalias 'viper-end-mapping-kbd-macro #[(&optional ignore) "\306\307\310#\210\306 \307\310#\210\306\n\307\310#\210 \204\"\f\203 \204\"\311\312!\210\fA@\f@\313\f8\314\f8\310 \204H\315\310!\210\316!\317 \210\320\203T\321\202U\322\323!#\210\324\325\326\323!\323!$!,\207" [viper-vi-intercept-map viper-insert-intercept-map viper-emacs-intercept-map ignore viper-kbd-macro-parameters defining-kbd-macro define-key ")" nil error "Not mapping a kbd-macro" 2 3 end-kbd-macro viper-events-to-macro viper-change-state-to-vi viper-record-kbd-macro insert-state vi-state viper-display-macro ex-fixup-history format "map%s %S %S" macro-body macro-name ins mod-char last-kbd-macro] 7 nil nil]) #@501 Record a Vi macro. Can be used in `.viper' file to define permanent macros. MACRO-NAME is a string of characters or a vector of keys. STATE is either `vi-state' or `insert-state'. It specifies the Viper state in which to define the macro. MACRO-BODY is a string that represents the keyboard macro. Optional SCOPE says whether the macro should be global (t), mode-specific (a major-mode symbol), or buffer-specific (buffer name, a string). If SCOPE is nil, the user is asked to specify the scope. (defalias 'viper-record-kbd-macro #[(macro-name state macro-body &optional scope) "\306\211\n\307=\203\310 \311\202%\n\312>\203 \313\f\314\202%\315 \3167\306\21189\306\211:;\306\211<=\306>?G\317U\203H\320\321!\210\322?!?\323?!\203[\324?!?\322@!@\323@!\203n\324@!@A\325=\204IA;\204IA\203\206A9\204I\326\327\330\331 \"!\203\273\327\332\333?!\334\327\335\333@!\211<\"\336\337\211<;\203\256\340\202\257\341%\331 %;\331 \202\326\327\342B\"!\203\360\327\343\333?!\334\327\335\333@!\211<\"\336\337\211@;\203\343\340\202\344\341%B%;B\202\327\344\333?!\334\327\335\333@!\211<\"\336\337\211@;\203\340\202\341%$;\325A\326\327\345\346C!\"!\203C\347\327\350\333?!\n\351@!\203:\327\335@\"\202<@A%C\"\210\352\353;\"\210?A\325=\203[\306\211\325\306BE\202~A9\203n\306A\306BC\325\306BE\202~A;\205~A\306BC\306\325\306BEB8\354?\3557!\"\2119\204\334\356 \357\360?\317H!!\361#\210\3557!\211=\203\305\362=@@!\362?!\231\203\305=@>B>=A\211=\204\246\363>!>7\364>8=B\"L\21089A\325=\203\352\36598\202 A9\203\373\354A\36698\"\202 A;\205 \354A9A@\"\211:\203:@\241\202CA9\203/9AAA@B\36698B\240\202CA;\205C9AA@B9A@B\240.\n\207" [state-name keymap state viper-vi-kbd-map viper-insert-kbd-map viper-emacs-kbd-map nil vi-state "Vi state" viper-vi-kbd-macro-alist (insert-state replace-state) "Insert state" viper-insert-kbd-macro-alist "Emacs state" viper-emacs-kbd-macro-alist 0 error "Can't map an empty macro name" viper-fixup-macro viper-char-array-p viper-char-array-to-macro t y-or-n-p format "Map this macro for buffer `%s' only? " buffer-name "%S is mapped to %s for %s in `%s'" viper-display-macro viper-abbreviate-string "%S" 14 "" " ....\"" " ....]" "Map this macro for the major mode `%S' only? " "%S is mapped to %s for %s in `%S'" "%S is globally mapped to %s in %s" "Save this macro in %s? " viper-abbreviate-file-name viper-save-string-in-file "\n(viper-record-kbd-macro %S '%S %s '%S)" vectorp message "%s" assoc eval define-key vector viper-key-to-emacs-key viper-exec-mapped-kbd-macro viper-array-to-string reverse append 3 2 macro-alist-var new-elt old-elt old-sub-elt msg temp lis lis2 macro-name macro-body scope major-mode viper-custom-file-name] 10 (#$ . 6637)]) #@369 Delete macro MACRO-NAME from Viper STATE. MACRO-NAME must be a vector of viper-style keys. This command is used by Viper internally, but the user can also use it in ~/.viper to delete pre-defined macros supplied with Viper. The best way to avoid mistakes in macro names to be passed to this function is to use viper-describe-kbd-macros and copy the name from there. (defalias 'viper-unrecord-kbd-macro #[(macro-name state) "\306\211\n\307=\203\310 \311\202%\n\312>\203 \313\f\314\202%\315 \316)\306\211*+\306\211,-\306.\317/!/\320/!\203I\321/!/\322/\323)!\"./G\324U\203_\325\326!\210.\204o\325\327\330/!\331 $\210\322\331 .A@\"*\3220\332.8\"+\333.8,*A\203\273+A\204\233,A\203\251\334\335\336\330/!\331 #!\203\273*-\337\340\330/!\331 $\210\202+A\203\347,A\203\325\334\335\341\330/!0#!\203\347+-\337\342\330/!0$\210\202,\211-A\203\374\337\343\330/!#\210\202\325\327\330/!\331 $\210-\306\241\210*A\206C+A\206C,A\206C)\344.\323)!\"L\210\345/\324H\323)!\"\205C\346 \347\350/\324H!!\306#.\207" [state-name keymap state viper-vi-kbd-map viper-insert-kbd-map viper-emacs-kbd-map nil vi-state "Vi state" viper-vi-kbd-macro-alist (insert-state replace-state) "Insert state" viper-insert-kbd-macro-alist "Emacs state" viper-emacs-kbd-macro-alist viper-fixup-macro viper-char-array-p viper-char-array-to-macro assoc eval 0 error "Can't unmap an empty macro name" "%S is not mapped to a macro for %s in `%s'" viper-display-macro buffer-name 2 3 y-or-n-p format "Unmap %S for `%s' only? " message "%S is unmapped for %s in `%s'" "Unmap %S for the major mode `%S' only? " "%S is unmapped for %s in %S" "Global mapping for %S in %s is removed" delq viper-can-release-key define-key vector viper-key-to-emacs-key macro-alist-var buf-mapping mode-mapping global-mapping macro-pair macro-entry macro-name major-mode] 7 (#$ . 9457)]) (defalias 'viper-can-release-key #[(char macro-alist) "\305\306\211\203#\n\203# @@\f \307H=\203\306 A\211\204\n\n+\207" [macro-alist macro-name can-release lis char t nil 0] 4]) #@21 Dispatch kbd macro. (defalias 'viper-exec-mapped-kbd-macro #[(count) "\306=\203\n \202\307>\203\n\202 \310\311\211\311\211\311\211 \311\211!\"\311\211#$%!\312!\f\" \313 !\314\f\"\"\315\f\"\"\204g@\"\316 A\"\"\203\221\314\317 \"A@\"A\211#\204\221\314&\320\"8\"A\211#\204\221\321\"8A##\203\274'\204\274((\"@)\322\323#!*\"\210\311)\"@+\324 !)\202\342\324 !\210,\204\312*,\325\326\311!!$\327$!\203\337\330$!\202\342\331\332!.\f\207" [viper-current-state viper-vi-kbd-macro-alist viper-insert-kbd-macro-alist viper-emacs-kbd-macro-alist macro-alist unmatched-suffix vi-state (insert-state replace-state) "" nil viper-read-fast-keysequence viper-events-to-macro assoc viper-find-best-matching-macro viper-subseq buffer-name 2 3 execute-kbd-macro viper-macro-to-events viper-set-unread-command-events key-binding read-key-sequence commandp command-execute beep 1 viper-vi-kbd-minor-mode viper-insert-kbd-minor-mode viper-emacs-kbd-minor-mode next-best-match keyseq event-seq macro-first-char macro-alist-elt macro-body command last-command-event major-mode defining-kbd-macro command-history viper-this-kbd-macro count viper-last-kbd-macro prefix-arg] 5 (#$ . 11562) "P"]) #@41 Show currently defined keyboard macros. (defalias 'viper-describe-kbd-macros #[nil "r\306\307!q\210p\310 \210 \311\211\312\211\312\313 \210\314\315!\210+\211\316\317!\210\320\321\"\210\316\322!\210\320\321\"\210\316\323!\210\324\321\"\325!\210+\207" [default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks get-buffer-create " *viper-info*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "Macros in Vi state:\n===================\n" mapc viper-describe-one-macro "\n\nMacros in Insert and Replace states:\n====================================\n" "\n\nMacros in Emacs state:\n======================\n" mapcar internal-temp-output-buffer-show inhibit-read-only #2=#:buf standard-output viper-vi-kbd-macro-alist viper-insert-kbd-macro-alist viper-emacs-kbd-macro-alist] 4 (#$ . 12818) nil]) (defalias 'viper-describe-one-macro #[(macro) "\301\302\303\304@!\"!\210\301\305!\210A@\203\306\307A@\"\210\202\"\301\310!\210\301\311!\210\3128\2036\306\307\3128\"\210\202:\301\310!\210\301\313!\210\3148A\203R\301\302\315\3148A\"!\210\202V\301\316!\210\301\317!\207" [macro princ format "\n *** Mappings for %S:\n ------------\n" viper-display-macro " ** Buffer-specific:" mapc viper-describe-one-macro-elt " none\n" "\n ** Mode-specific:" 2 "\n ** Global:" 3 "\n %S" " none" "\n"] 5]) (defalias 'viper-describe-one-macro-elt #[(elt) "@A\303\304\305\n #!*\207" [elt defn name princ format "\n * %S:\n %S\n"] 5]) (defalias 'viper-keyseq-is-a-possible-macro #[(seq alist) "\303!\304\305\306\307\310\n!\"B!)\207" [seq converted-seq alist viper-events-to-macro eval or mapcar #[(elt) "\302 \"\207" [converted-seq elt viper-prefix-subseq-p] 3] viper-this-buffer-macros] 6]) (defalias 'viper-prefix-subseq-p #[(seq1 seq2) "G G\211\nX\205\304 \305 #\232*\207" [seq1 seq2 len2 len1 viper-subseq 0] 6]) (defalias 'viper-common-seq-prefix #[(&rest seqs) "@A\306\307\310G\307U\203\307\202 \311\312\313\314\"\"\f W\203A\315\316\313\317\n\"B!\203:\320 \321 \f\234!\"\fT\211\202! -\207" [seqs first rest pref idx len [] 0 nil apply min mapcar length eval and #[(s) " \234\n \234\232\207" [first idx s] 3] vconcat vector] 6]) (defalias 'viper-extract-matching-alist-members #[(pref alist) "\301\302\303\304\305!\"\"\207" [alist delq nil mapcar #[(elt) "\302 \"\205 \207" [pref elt viper-prefix-subseq-p] 3] viper-this-buffer-macros] 6]) (defalias 'viper-do-sequence-completion #[(seq alist compl-message) "\305 \"\306\307\n\" \232\203#\nG\310U\203#\311\312\f\"\210\313\314!\210\202U\n\2045\311\315\f\"\210\313\314!\210\202U\n\235\203K\311\316\f\"\210\313\314!\210\317\n!\210\202U \232\203U\317\n!\210 *\207" [seq alist matches new-seq compl-message viper-extract-matching-alist-members apply viper-common-seq-prefix 1 message "%s (Sole completion)" sit-for 2 "%s (No match)" "%s (Complete, but not unique)" viper-display-vector-completions] 3]) (defalias 'viper-display-vector-completions #[(list) "r\306\307!q\210p\310 \210 \311\211\312\211\312\313 \210\314\315!\210+\211\316\317\320\317\321\"\"!\322!\210+\207" [default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks get-buffer-create "*Completions*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook display-completion-list mapcar prin1-to-string viper-display-macro internal-temp-output-buffer-show inhibit-read-only #2=#:buf standard-output list] 7]) (defalias 'viper-find-best-matching-macro #[(alist str) "\306 G\307\211\211\211 \204_\203_@\211@GY\203W\n@\310 \306#\232\203W\311\312 \nA@\"A\204U\311\313\n8\"A\204U\314\n8A\203W\315A\202 \203k\n\202o\307\306 \f.B\207" [alist str macro-def found unmatched-start-idx match 0 nil viper-subseq assoc buffer-name 2 3 t str-len def-len lis major-mode] 8]) (defalias 'viper-this-buffer-macros #[(macro-alist) "\302\303\304 \"\305\302\"\211)\207" [candidates macro-alist nil mapcar #[(elt) "\302\303 A@\"A\204\302 \3048\"A\204\3058A\205@\207" [elt major-mode assoc buffer-name 2 3] 4] delq] 3]) (defalias 'viper-display-macro #[(macro-name-or-body) "\301!\203\f\302\303\304#\207\305!\203\302\306\304#\207\207" [macro-name-or-body viper-char-symbol-sequence-p mapconcat symbol-name "" viper-char-array-p char-to-string] 4]) (defalias 'viper-events-to-macro #[(event-seq) "\301\302\303\304\305\"\"!\207" [event-seq vconcat delq nil mapcar #[(elt) ":?\205 \301!\207" [elt viper-event-key] 2]] 6]) (defalias 'viper-char-array-to-macro #[(array) "\303!\304\211\303\305\306 \"!*\207" [array macro vec vconcat nil mapcar viper-event-key] 5]) (defalias 'viper-fixup-macro #[(macro) "G\305\306\211\307!\204<\203u \fW\203u \204u \234\211\247\203[\305\nX\203n\n\310X\203n\311!\203G \312\313\314\n\\!!I\210\202n<\203n \233\312\313\314\n\\!!\240\210\202n\n<\203g\315\n!\210\202n\n9\204n\316 T\211\202 \203\200\317\320\n\"\202\201,\207" [macro break elt idx len 0 nil vectorp 9 arrayp intern char-to-string 48 viper-fixup-macro t error "Wrong type macro component, symbol-or-listp, %S"] 7]) (defalias 'viper-macro-to-events #[(macro-body) "\301\302\303\"!\207" [macro-body vconcat mapcar viper-key-to-emacs-key] 4]) (defalias 'viper-read-fast-keysequence #[(event macro-alist) "\304!\305\306 \203%\307\n \"\203%\310 \311 !\204\312\n\304 !\"\202\n*\207" [event next-event lis macro-alist vector nil viper-fast-keysequence-p viper-keyseq-is-a-possible-macro viper-read-event viper-mouse-event-p vconcat] 4]) (defalias 'viper-set-register-macro #[(reg) "\302!\203\303\304!\204\305\306!\210\307 \"\207" [reg last-kbd-macro get-register y-or-n-p "Register contains data. Overwrite? " error "Macro not saved in register. Can still be invoked via `C-x e'" set-register] 3]) #@54 Keyboard macros in registers - a modified @ command. (defalias 'viper-register-macro #[(count) "\304 \227\305X\203(\306X\203(\n\203\307 \210\310!\202y\311\312! \"\202y\313U\204:\314U\204:\315U\203K \204B\316\317!\210\311\312 ! \"\202y\320U\203W\321 !\202y\322U\203u\304 \227\305X\205y\306X\205y\310!\202y\316\323\")\207" [reg viper-last-macro-reg defining-kbd-macro count read-char 97 122 end-kbd-macro viper-set-register-macro execute-kbd-macro get-register 64 10 13 error "No previous kbd macro" 35 start-kbd-macro 33 "`%c': Unknown register"] 3 (#$ . 18799) "P"]) #@55 Call last keyboard macro for each line in the region. (defalias 'viper-global-execute #[nil "`\300\301!V\203 \302 \210\303 \210\304 \210`\300\301!W\205%\305y\210\303 \210\304 \210\202\207" [mark t exchange-point-and-mark beginning-of-line call-last-kbd-macro 1] 3 (#$ . 19408)])