pax_global_header00006660000000000000000000000064134162746600014523gustar00rootroot0000000000000052 comment=f42832c8ac462ecbec9a16eb781194f876fba64a migemo-1.9.2/000077500000000000000000000000001341627466000130115ustar00rootroot00000000000000migemo-1.9.2/Changes000066400000000000000000000004451341627466000143070ustar00rootroot00000000000000Revision history for quickrun.el Version 1.9.2 2019/01/12 - Use cmigemo as default from ruby migemo - Convert encoding from euc-jp to utf-8 for encoding issue at byte-compiling Version 1.9.1 2014/07/10 - support melpa Version 1.9.0 2013/02/23 - Port from http://0xcc.net/migemo/ migemo-1.9.2/README.md000066400000000000000000000015231341627466000142710ustar00rootroot00000000000000# migemo.el migemo.el provides Japanese increment search with 'Romanization of Japanese'(ローマ字). ## screenshot ![migemo-screenshot](images/migemo.png) ## Requirements * Emacs 24 or higher. * cl-lib.el * [cmigemo](https://github.com/koron/cmigemo) or [CVS Head migemo](http://0xcc.net/migemo/) * We recommend to use cmigemo. It is default since version 1.9.2 ## Sample Configuration ```lisp (require 'migemo) ;; cmigemo(default) (setq migemo-command "cmigemo") (setq migemo-options '("-q" "--emacs")) ;; ruby migemo (setq migemo-command "ruby") (setq migemo-options '("-S" "migemo" "-t" "emacs" "-i" "\a")) ;; Set your installed path (setq migemo-dictionary "/usr/local/share/migemo/utf-8/migemo-dict") (setq migemo-user-dictionary nil) (setq migemo-regex-dictionary nil) (setq migemo-coding-system 'utf-8-unix) (migemo-init) ``` migemo-1.9.2/images/000077500000000000000000000000001341627466000142565ustar00rootroot00000000000000migemo-1.9.2/images/migemo.png000066400000000000000000001530761341627466000162550ustar00rootroot00000000000000PNG  IHDR8ܞosBIT|d IDATxgxUր}jz H)"@:iWDQB `\NRBMONqbdek)i]*63ΌSĥf@ ?$q-% OkuZrJ:Y+xhP3!xx0 :dJ;Yݱ@ n~>^ce=}"0zC4,~~f*Ue<+۟QJm @ X(MHDjOa2ymMhƯm6L;>f}R Y9F2 H:Vhh3g*KTUA Ft72E݈,+@i7G g:ɨ2m(ʯ$@U .ebB@=R-GX^c(,׮A:?''$7yV5 |-i:5c'ϒeƢ@ %Dq:pڳ0Mw\kfr .LU<н| 2,W_فOh4]7pL~i[Sbqb8pXH?&W-p ʶ dK#o1bF+5Ŗw"dk-e浊F![є!sP{=+G߼~?MSAiִ1N;(Rϒϭ-Ŗ#@d3qQki!n/cFv\&>'g ğXdҾܙ$6 MSd;m[4eϡj*/^&%5sIbҋ# BѼYSŒ#LO2ztЎ@9WI*Pϓgta$/0uۑB@ܡظ4lPϽazE{Đ|Cwu _ӑaqХ@>az|'J9v#%,q ˏ=^^GV, cv2c̙˗lbWJ q%s6E"<'&{OvDS4m܈0IH3=roZ޽s1E`ྨN+Œ)=rqkגi^4EFgz|nhh+í[X:42I}̢g.4krkxWA= G[{INIIWxd~ty1!]p zWt ΗJ`"{ij:}JéT1S=Rz35bCz!,'.db40ȊJB5]d[dUΝKOdү@V=P5i' k.^tj+"WҪCxx1,1%BCC8u/tt&Owےѓ)_eYv =ˁbˋWp8NoSQ!G\N<Ņ\Av?MSt|6 3ˮڿG! Xm6*zϧ@ >I\_+QG$#Op\%12.YWw6l@f > Noѻ'? >>>Mlٶ U-j?$)"Yx{{!$jWfSn~-zys4kژ~?X]|tzdYfѠ~]Z< >.PO4EmD] H:=_}U7Jh0A'vn{0iY# q]]t{0H?7PhjU.\D6w\m/%ůP·$,Nq7ـfqSp JPHGOsק:c U 3{3k|V/uk( {We8sYEr㧰pޫ<ܪv$6Oά铩W6$ޠlА̦X}yvhzz$?G 2s0tIo,nC7ɧ7Nʹ3D' HЍԺS7h#;m(N!uژ/p_Ç@HM?Å˿ah.JU: "-5`F#IވblIg ņnCg0ۚ*3"[1tAH@SS3sZmƗn'!1aǣˉWa/qrQYzudd;Й׳is&WEMYz@ & _aeQZ E4I^I:G7]x} i9B\k9eȻAْƗ{qNxqoqѺѿ97}r8=@ -PZŢAB R"e10qRuoEg4iK >L:mљ}Jk+@@p{)ƣ(PVTʼnHzS=@ PJQ茞$@ 0λ@ oD׾#]A@ a( @  $g0@ E@ ACQ @P 9VC @wCx@ R"Cq˖hRRR-[qǏ3vKl޼V+k׮vth+kp:ˉ'IHHȧKA7DF'99:í˥;{YPիWsU -[m۶%i[Ds){1|y& ڵ+߾0z^63t3\ɩS~@ {|X+2_k׮a60M|垞ԯ_!o$IsS[IK.p_n:vM{nzn>}5j4W^QF̚5WEPw3ɲŋJ*L6?ڵkyd0ի닷-yK.aFcؾ}F?DI$V*гƓO>AfM\Wzj,Ynf^z"2?m /tp(-~q._† H,lE%*CQMruQZ-|~:uTOEoEM߿/Gҿ_SPnykhV; S9ط{>p%キՍ?oÕ+Сc>N+S'>gժx{мy|{jj6m"==M6DӦMiٲEQ:#VXi>[l?ݻдifx\EGhbi߾cǾ^'==W_K˖-X~#aax9pORzu^~ysO|iW^#,,MӸx"…ض-I>Q+>~bK}.u 6lHpp0ǎ/{nrsA}®Iqe׷{czYQm@ sAKG3gk̙ǎw5k֔ qx>>e-55@v@?ihFVV&[Ġ(2.'n]dt(Lwر/1t賬]G#**Mp8|7˯Yʕ+isxض-QFtJ{M[ȑpD4V+Gst :ʊæMs[\^5)6SwиtfʬYmvw[%}Vo]Խ-H"$?#A =5{j鉧'$k78y$FoGQ4oޜ|4j-kקILL,VwooozkxԮ]>Y1zYslfԨ  Ć >|X:#GU 11[۷gܸ Mٶ-]l6`--UZlAJJ*QQ[8|0=PC!I={ 55k׮ѳgw?iFj>|u:oomuM*|ިWy^/oooڶmO?ٳKtn ӯ{[ J<ܬYS6m.NAbAҹv;? f[?VZ4G155 v+UHBBB)t/|I0cXmX,<==z sNMM-.Z˯]FPP{;00kcf3aaahhp? ,x>XFϞ߿MC%!mEժy\.E!|Me%6mR`{gvvS&E]^>|(Fٳg2iTv-9sfi={#I??}PbE @Ϟ}[a,NNe3x2͡cq 8//OY]e5Xn=g%$$;υP ???y?nyp^t9gϞ}eiz^oÃ7ߜiҺu+:w7ڵ)@Z ++~*#W}A(}\ {#<$jo ԺS-r*p7^^^ʒSd26^_٨-`&88Ƚ#|6o@jjjʪ(X,RmٰX ﲠiFo*OKKXfQ\E]WaН>7W{[ _QF$+((剧WexyyLf@@@`2ʢNǷzw3ST٭P\4E]WaН>7W{[ oJ<,(L&# @ o Cx@ oijMsys9@ g@ ACQ @P z@ fzx@ xwV|u@ m@ O(@ (a( @  D@ 1wuY㽼}"عs'G&::#F0μs>/,Ɣ3L>/ՃYCW_K/Yr%ݻwaIxxTb}7ԪUUܒ%K>G\ǐC\CX~}$nȟ}v(!!A$(-[AVV>>>=o>Tsٜ >f,Wػw{anVKZZ:k>Z =&33\ 'Pvk׮>|9!..ٳ_uf̙cƌ1} ySYfQYf;v Y1*)"S9Ž!4M* KiesT60w}Wo@pw-t:$ IFFZ*<п07_i iРOvZxzzJuAA!TXEQUNNC\F(HT5ʕ8~ {Kz8pXFIڵ<ر^Ѹeȑ#Yh&Mbǎۗ/<%qHz=ĝo5sNy爊ba\r2O@HVoýl1 IDATKgΫ1glL?ܲO:e,I/O,UWp;ׯ<..J?tM5aעq;—&aM1yzмrӡ<Q/N97;LWCHG]3!>@ 3F\h82z___0ddd,^N#wnMCV<#MժU1ǟerJ2degb[q:n]$7`40 .oN4TUb&(0k׮Y>g}Ndz&ѣG =СüTZWw$ܹsDDDˈ#عs'{fϞ=Lm%{<577ga֭ 6h"""ׯoj}g&߂~ٹs;ӦNgŇn*,~o1^=yK[7x7n?CynX[y=K:j7'^ ׫ԨY 222R:\ tW2!qv4`':Q4ʡ1 yk{fLW /ţ @,+$ O/O|}9>FJQSUYj{稪ZhVшdl6c2x'طoiSUU\Lҥ"F*Zܮ]E˖ƒ5g}شilٲp!ZlQswEsXIZ aMb rF*g^mH[fy.|gtړÇӨQ#wGaiҾ}{> +?\OK0@Jr2;v`ǎro#i]i[YVlw^_NI'a20޼(rp_+'|Ӿ}(h9sj(JK&Mb6{`41M9kގ);q:8e'>rݗv:9B|tiҬ kE(*-Z ~xnJ=Y`A98}zojQn_#iV/}J ^C"(( Fa12~,/Ѻ|޽{ Lad4 oooB Dq(J^뒛Y1RVUI'aZC6#~grR} ]́KaXP̲SKi׮]#;;M~noqڬ\zMHMM˨TsM4%&&޽{C5=7؉t{|&F>>qxg 8h222QUG,Z'L7',,[ݻ~ƍ/Gvx]6_@4z+6mJ'c}(=qkџL'r7~ oObŊ9?Ν󼾟 كڵpe'^heh*WĿ>zw^>VJ^Xf/^ʕܞ?љ-[('Gחy);2k,ym ,1t֝~g#ǰuV\|1%ɻwΌ35zixuBUivۦb(Y10̘LF zNBծфhfsɎa) DnGbA. 5MLXN@N+SU]lIh5+ 5*ZI(Jd[N'ժV%-=F5BVdNEq"+`L%pK"ƌfŊ9t0~̌|jFfF&4kJ~}$/55aFMLL < L{ 3>Od?o^+o]_6{>}ѣr5ߘ/Әdӆ`ӧwMϞ=Yv-Çgٲe5-'44^={]8yM\rjUPQ*rY+EJU,v, +W/ωéPF Cуǩت1jf: CޠwY *. IAQv4lN$Lڡ$} ZD=<$;q. ArU܁(VkLzf'AAFߝI͹+t: }>}N'z}#]7}}}IO 璖/.%᯿ΰ0w.z۬l~e͘ʑwަ˓YЫ7o͠eKe1ҫW|yGE#G`J口x=zMs[6& +qcTk?ga>Mu0L( gŦ h+gpڒhb,Q,hk8,2l0cmY$ihLiAsN5찣:hN' N!rpmKNį*ntt" fHΝ;>OmY#e.#q޼6*Tŋo2& ψp8\p222?ӦM-w 0hqٵk>,111 4hޙIll,b۶m :;v0`"##۷/7oo߾\~*G{!I׮]+@IrUNRnq8:}kt(2x{{iNىX^RqߨШʥD~T~~=CՉ]x933sGa64GXN&CʕIIIܹsT^PFbi~M{ .;Sϼa={K.Ɨ_~EfHBB"_K_燹y>>%ۦDEEѥK6oLDDׯ'"" 6ݻ4h;v`7vsҥKV\I>}.]ʈ#شi#G"))_z*UBX0}U8v(-[t]P^O6IfK6۶jje_[(#f R&P+0SAIΣ΢h[/垺U\?h2!\lO!((c_k`25ŪSJ?A@@ uIL "!8MB%.di5?҉ubxj6*ʟ|bi p ,+v5 hDӑHb@U23lQ+>Mjfe.˃ܗ͌jH(Hz .#Q1U{C3p:Mf^,0<`nX,8q!c.oݎ/)?i蔑 &M`0`B44 F-**)ŢE5kV_QFi& N޼y3}ᣏ>O>,_VX3<Ê+ݻ7֭#""IbhW{O>$cOrdeVpwzzOz}Nm۴; VZZE&%܇8jK_^gp(Þts͕kg IQQCA4 ScǾQ#&00]?44wokזvں_zEF7:&#wٓr]W>cF2t| ecx{O;o"7Ĉ!6GYj#ǔZj;A5\3`iW|9fcdd99g?3;{gjzTʣv*TRz.г!aem*pi[ K4?5wѢE ѣ1c%*P#rWı!j`2Gx@tĥ@к>jM{ۃ7m؏a(Zz `X4`/D6f P-m uodTͬD (r9`T,@EQ⇀QFQX(v W>Pd())AJ+\/|<^#FAOO L|D@_Ѧ͇۴i+aQr|aɬӤ߿-I;w-[ 1=/^ ̟? ,ٳ xzzbڴipww+f͚777̜93gԩS,-yU}Ja"hvm]'7otPKb$'V0'rsFX-[W/ܼ'N-+q.xg΢8>gO!? z-]+ܙOMaaau*Q/so7]]S:н-;Dyy9x<2T+CyywĬ9s{N7B\X,cf@mۮcuSik%jzC2v>N]H@)WV_>D%`0`Dj ]( Q,V˳0T1Kii)l6~]T8M6apssúuKb۶mXhv܉y!$$3gDHHM`̘1AAA5kn݊ٳg#00...8y2 ÇSz?|XZ:htHydm'} BhdAWd_v{ lfX-^{kW~-IN]â{jX-mEYuut<ۣg(//GeE9x2x\xerh8.2pS~aܮ "/Db,8 -P@A{9`1PPT#++M<)qD,z!XEE%Á ޽ c ?'M6lp8Ev~u #"O;())jdd2ӧ",,]PQQG(Odd'OСCؾ};ooooڵ fBpp0ܰuV̜9AAA1c0gl޼sŦM0w\mĦMub%-H ws8r<)P( (REQEQ_񮠷EQEQL4P((d"EQEQ%233|PEQEQ6$&>AQEQE}f0dH ikό((w˝_g뜶PlTÏBQEQE}ƎuRjOiHQEQ++GT_4:Ꙣ((EQEQL4P((xx<^@((?]ě7viHQEQ@+{wCE(7#uĴ)xP:{(`c3TUդ敔!77Gj: )(#\.JKKd( }LQEQEDE((J&虢((+䠁"EQEQW*1EQEQT5  )(R*ÿc = )(bYo߂np%iL&Kb]Ꙣ((EQEQL4P((d"EQEQ% )((hHQEQEDE((J&(REQEQ2@((EQEQL4P((d"EQEQ% )((hHQEQEDE((J&(REQEQ2@((EQEQL4P((d"EQEQ%EQ{xogAzY(%$&&}y濝/۽qڷoO[ ׻=푿RdGv@f  ;xz lt˝Xb:Hہ4JKK,|R%%%HHHcժU2׭1cIQT ݻ˖-z3Tnn.0w\J_RRiӦ!>>#&M ##n={6w5X׮]6lB % v0 ~dڴi駟lԨ!ch߾=㡧TVVJmBW^#<< EQuÇ#66FFFUTT0|ؿFFFXh|7/_ԩS>s_`t-[TjHDGGC @ ĉkLƾ}Q=puKwt f͒9}vmj~19Ot ּg6Ύliz(nނ;PcCh}%׷FEGu4 6J7Z8fdP]QQҐ%~eggwssØ1cQ qVWPPsaɒ%-uL 777DGGr Ϟ=Þ={bŊ:K.HLLѨQ#`0dS%M:Jz1:;w(.!sAdd$ߏ|~P\\@rM/WWW}Լ\xhѢ,,,$ 00;wnRRΞ= 6 %سgo<_~Xp!uVԸqcXXXڵkrKdp8[˨JTTT@EEE`a* <^+q;f\&a1ooTQ]6n!;g 3Z; @m`"Bw_ Z "fht)иPNId--- aaax0Lj p8PWWG^ХK4mڴnBA uVw^xǃ:ӧ1b"""p]4k Zǫi2%$$`ʔ)x9lmm֭[pttDΝq mV)꿊6fk׮ӧRUTT`8r?Iibii):&+-- o߾B?<o߾qWQQ[n5jļlݺ.]1PĤgKKKtG@@D,[ ֖WYY 6[)cTVV/.e˖AKK s^z;;;<}mڴ˗?$"8{b^rSٯ$^YLZX$ _Zs( {s t7fDfml7x# ęE|0s+QKs&rW%{} &4 `ƍԩ:u+++t&&&0227N:7bAzz:Z+?bbbǏdkk|"PǡH~~>֭[1cEb^ff&O@c@ݮcVZaǎR/^ @hݺ5:˗/#** |>WaggI&Iwubذa8<7o puuKKK*QY޽éS```@`Ϟ=xٛ7obHOOG۶mN"W^aժUHNNFǎSSSe_`q: ,P:RaѸ|21gΜ:m[Y͛7k_@JJ l޼Y28uƌ&1c ##>?C;vmXxw[ֹիCDDB;88ȑ# (:99Oɓp={_FrrD)Ǐ&l6 p8(++Fff&|>ڴiܼ|mҍȽ9*jHMWy7PiHS4` Mq! T맍2Km$qp f!J0 2@WZ^*;dggK嵲CEnn.=z$~\]b՘?:QQQX`4Q-[HL/((y({JKKuVhBb Z>uLv4440tP=zϟСCabb"Zl6mڈ׭ypvvΝ;ӟ?ۋ߷l'0g?R*Pp8x=YYY={6F 333L<?z @OOǠA`ooGGG?VVVx޽{}B__FիWѯ_?DN %%%xRi^ӧ#-- зo_)`ذahѢd0СCpvv7x" éu'OD@kݻwWBxbKk֬Aii)45)Yf2dp!DGGCSS3f x< tA\⨢(epAqP2s-\^Z`r3(_0h}4^iM~A( .:J&5Wm$H#_lg\H!q&兤$|>+;#F{3k,:~~~XnT[{{{֚r߿!!!`Xh ɓ'ѻw:U}똢'55V¥K $$x󃋋\ѼyslݺUb wwwipww'233S%I@1:::t700hU* 555l۶ 7n> ===oʼn'`00c 4i=z4aODaҥo(.D֭n:I'O((fff޹&??˖-Ν;1tP,ZHT&=ʛȔ)Sj dݻ>}HTppԘllli&8;;cС022Bhh( .7nH ri8;;cR:<e277@ @BB )J]%'Fkջd@vv6#хJdd$F===>|('56l؀ &~ܮG)/ȉ*V˒-[XCBB0c )7o̙3uO?$3P|1 ;;;=zɁ \.n޼P=L0Ϟ=Cǎ~"""p0~OKKÄ 0bX~= Ν'z pB| 'NʔfU...ܹsf͚)~~~~7fp?j|=6ʻhAӍTPir0xmW DC1ڝb]&@qvT@5C&ųD`(ݔܹs;vI&!!!AX6DGGcĈR\T=({prrرcĕ+Wヶmbʔ)W!c(^xbFfgΜQf69/1ܹsҒՙ^UJu*۷7oFrr2/$aK ݢ"VVV믿|rt  e`mmtD%:qwwǩSAB:2w!44SL 0qD֭[ 9r$бcG?r`eeUc@X=::2Kim6xzz*Z5''(--ŋ1sL(X:>{{{ׯc޼yի<(ǿJh(CT1..]tSѢE ؠ{Ń@AaaB)'CZCRp'Gg#𛩠tHVhAl>5G: rGhw.Tq~#}^z~7 IDAT̻]%`3%S BB}4fQXXBH[jLLLd@剟ZԦǡ!nwưa0vX7NTc]j*GϞ=[cO<'NQz' ^z%.MǏ$sGzCHRTm>Zw7\]]r<,QD4RnKvm۶ƍXnLK!YYY Uh㰺t̙3ݺuÞ={^Ǹ5۷/(z0h 4GGG4nSNh۶-> @}ٻq)+ sss_I\UTTĥpqqAiiDIԩSqUܸq3֭[5n-Z$VC  77MHVWqiρ%8X;n5)--a_y9,--{t]UII aeeM"&&FEKK ΝرctR̟?Ʊq5JkdiԨ޼y#1̘5kXۣiӦCBB.\˗cݺu7o444`aaӧ wޕZL tdJT:]l>t6gʜWV ZsQA3=h# 4"vDfhtP^L`gB [rbÇcǎ1cT?pBL8QW=NRSSQ^^.qCݿPQQ *XGY +W޽{e8;;#>>۶mX.??>>>8q"~zBQ%J;ݿ_q"̙ ٳHKKÈ#?`Ŋ0551j(888`РAh߾=RSSѷo_,\Pѿo:uBff&\aooݻcʕp}iƍObʕغuR#dggغu+a,^XҸ2l۶ +WD&MpuUVV"00ٳi&Rfѣ`2 ݻ[bw{{{_̙3q1ѣ bpP\\oװT@VԨ={6͛mmm9rڵYfaԩxܼnbjҘfgX*z'xhPfo3z@9u*۩g4QCh? գ$=-~-ِC#ևޯ cD!CG5t邎;q8\O>}ݻo޼_%[dɓ|2={peiӦ  4ӦMC޽`Ŋh޼ңdggcƍʕ+ԧ[VV;urr¶m$f֭[2.ÇbIr9|0^Zq]ׯcÆ XbJJJd.ooo!.\UVEEEhӦx={ѣG>Rޙ-lRM*۫´ 48.4JWH Q`?}p;!J ᶸXwI%`a~U{+o ؾ};9ŋ~ 6={D@@?ӧݥ!C]vaŊ(((e˖5H{]}#r)qĥaaaXz,Y::: PSSȀ'LR*)꿈ƁDO.$dǯq`˖-X~Wq*//ѣGabbR`[ H'SׯѧO5'!xx_ijjDդ%%%56s?d<PV$7qA0Jj̻]$ rw{td29mՠ- !~1x'?rya ϡ[h,´D%VNQTz"995HAbb"v*s>7ZW!ê߿۷cʕ ҟgCS:֐z<<<;yDl_T\\,wCp=Yo߂/%iL& bc#ƻ@Q8+(R4)N(YjC ̂uyM}el&~D\f.%i-Uc@WQG *I\0h#Gc3 `Le0LH}hkk7}@w%֭[A]jZΆ#T'z 6#DFKJ"ΏpE}:4P> >@@h TVV6X_dboo_~!l{ީ\\KPPP)Shc\+@((==gM}@ h]|Mn߾pѪ<<<ALL =դL& eee())*,,DQQQ;{""" `ѢEֲ`صkݻI;m4Od[ٰa,|߫kܸ1,,,pڵOIyu yIHH)SsBSS111ǭ[Ν;ĉVrkmY[Uff&6n܈;vUuj)&&Fz Y8}D֐qKM i[;E&)qF;w.߿8qBFZ 9;;vf1cƌZr\$''ӧЦM-[モۇ LLL>I;w/FFF5p(:lII  tn:3FCLL>)))R?ظq#:uN: :t SNaƍuQFI+((֭[qҥ/&P֮]=z`Ϟ=RߟѣGѷo_i凞wYl2K~Fusubذa8<7o puuKKK*|+\(₎;ٳgu/ֺ\.ݻSر#7n޽999سgT: Ȳ~cŊpwwWx/N_RTT$U݀'ϗ$?z"C%5'EfΜ)wpuҸqc0LҮ];biiI˗۷ozoʕ+Pjs璖-[{"ݻw'#GlBEE2diܸ1y͜9 y۶m#HJJR&ݻw'o޼O&:::$004 ɾ}'NHCU.]"jjjۻNLu9}||:IJJFGM#22 R.]J n޼I6mJ.]*s~aa!'ӧO"5"l6_*B~GҢE `0b*a2ϏBHxx8@歾qKuAAAdիW+P[c;!̌ &=N}E^ ϟ%'I$)!G> ObcIȎ$/k@|t֭Mܾ}[^ѫ266ʕ+QFa/]Tc݂Kԏ455EPP:w SSShhh //СC@(ŋW^>|gdd077w~Ր&7nnݺϣSN ~fcѢEطox'OD޽ III!|>WWW;v #F@aeeUcEEEǂ 7oy(//Ǹq>nݺ#GbܹظqŸS|I! R#""Ю]/_~!..}ٲe(,,Te@ tѠ_:ߛ5k!C Btt4455amm1cƀ}~_|r4o[nKr̄%%%VSvZ纕|}} Jd'D~~>,,, . &&/_@ tR;F/^aÆoq[[ AAAصk׿du ϟ/b۶me>iҤ NHHEBx꒒ѣG+Ѯ];}ZԩS={6̙'''ۣ_~!bccq ( ر{_Y,0m4ܺu rQVVh?yyyPWWqeX[[ch١u())9rrr~2OEpvv`yyy8y$567Œ9ѣGuL33{Ul߾W8(z066 ._:O>DdddVHCu ʼn'yfW_xl 7oބ ZŢ"ݻW?{ 2_f F@8˖-ý{`llUV!44 ,@dd7nC`` >6>6veDz=z&)e˖BEE;6,[ SLAdd$*?ޯ'Oɓu)**Bv///$$$ !!o޼4mGVh\'O ./ڸ{.9cƌX~Tݣ1޽{Rhjj* cǎEPPX,߿ 8W\ڶm)S(s΁K14iPYY)q VURRcXZZ}pww1|p8;;c066_QF###xzzI&HKKÁ`ffӧOטI9-- &L#*XY~= Ν[CKK͛78sL駟<ƍCǎ~:mS/...ܹs =pWMy/~\xb={v-3P ѢE :u*0k,z=v}!CO4jHuqa|~ bbb?&yןT܁`kk+t4%%@%"=۷^zUV_Z5~xdggO\MgӦMqㆸ`CTH䦵~tYGee9s&aii)~C-"ӦMëW0o<[tdJL6 ~~~ݻ77n,5`aڴi2}wO݅ݣG$7y޽* ?dt qㆸӶm۰m6̙3VVV o޼quիjjj"$$ШsY_g@{.6oެCCC([nݻw#33cǎŸqJfP>Khܸ1kbRMMM 7nɓ1d$&&  Ä o*lii)3H˃wcǎI;wлwo>G} **JsT__NNNprrGʥr]T$AbEEMP]]?`իWiٳg\ѣѩ/+++L&۷oǁ$ СCwBoDu生PILUoUTT&MHqKUW//^,E": .Ij=ڴi]J,wQgΜ9x%7o^kTL\|AAApssÏ?(.VKo߆qUw܁1RRRХKzg@XB\r1gt {Qz}sssku۷oǒ%K(]] IDAT]`ɒ%2$''I&R.P>}2e Zh=zرcV}R!OF``!|㹰Æ CVVÕ*I?@aaaL/^ĉ1rHnwAϞ=4|p LQ=7|UHNN5\:uꄶmۊK|>ѷo_ 0@jǏԩSpww[k͚5wDc̙prru(]]]]?FFFF=z`eD.YYY())Lo߾l6['Q#eG,ORʕ+vZYFL8Hdd$!#G ͍BMY,&!!!`K.dE|||L<55lْCfh׮qwwWxbEl6133⠼7 Yq!!_~Ennnno߾$!!;v`B!yyyCdРARM65Y|7 }|B={FLMM6vZH!_&W^NKYԩSdԨQbFe˖Oz+ٙiӆp8zmBiԨQb)V!߿0L@&L@Ç%#/&L&r͠ K+//'$]$##t֍oߞ7775kFvI._L:w,g]]]I!yxx7 K___˕VZKKKg=o &P,L?fUVXtirqQVϞ=*QD`` ٳgcӦM7Gd"((<wnV)ՋHMӫ[`ڵؼy3qY 2=z􀵵5ѥKtQC---c@bb|޽6l ֬Y#7/o޼AӦMѥKtZZZ3f X,rKSPPk׮!%% | [>\VVm۶aʕhҤ _^G111;v,ܢ~ر|>X`.\X 냞9s&;={=z􀡡!X,8[~RDb03f lyflڴ XnByYtttp1v۷r̙36mYcj?Wla,:Q Ce&RXKFXj,%2И$c%)Bi6Ggulcgt{|g8|0.]_~Eh;w&Mœ9sm۶q&] … ѭ[7ѣG6mbbbpit y&JKK-+V@UUQYY={bɒ%hݺ58;;F jJ ϟ?o  [[[L:'=kanܸ<{ٴi#+++2.--e֭[,YhT43ccc˗ڏ(7ndzם7o3x`&,,u+++3f0QQQ %sckhii1222W%Y...f|||MZW"s13'Odt,ȸ6<qٳtRݻ3cǎet0i?H\f'|><~>cŋ g.]xxx0g5-6#ϟ3Gnև$>Ϙ0ӧOg8)**b,YYYٚ>`^z%VMdee1x<Ą cFfu7̃y WQxРKJJBjj* s!sR\\l|7-1n/tCcpYytu  >II)܏iVV?ݱay뚶C it퓥L"PVVJ!֜>ǸcO Y|ѓ܏\ޤ,󐕕SNAOOfff8Bت=-$inVrk׮ -ȀRSS[0apA|xxmD%xn̙5ۿ?p֭O]'a4F>|jjjk_ϟGqq1HJJjTj5]QQѤ}7Eyy9___̞=>'** ]v|2 "En݂ 8|HJJB||<ƍ&.muaIEn:x,*++QVVi&HHH7oĦM@qӦMx=&;wח +**pE#99]vEVƖ9??077.^zggg]β_r㑛 aҤI077op(>qYS׾}{DGGzGy޽޽P8۷QQQXjt]| xRRRs!-- xfϞ-tn݊޽{c۶m8x ,XOOMֿ7)Pĵk0iҤFm;w~hTrudggn~ >}(޻w1rHlu۷oqǎ =/(޺u Æ c|>HNNFrr2{TVVBIIIɡ!컧ի033޽{1fuΝ󃌌 8[[[$&&JJJ/nݺ+++ N|{JLL/xk XAA ,mۆ5k@ZZ[ns```7n`ҥbo\x<bbb 999#** ؾ};bcc##zUZZ~Icoܸ߭[7n޽{qqYcƌܹXjU9:teeeXf˱ 1rH׮]Cee%!%%ќ~8ĉqY?b͚5峱踶~ FFFxf̘ 5tP :/_%,,,cx󃇇gƎoVoKKKmxbڢźucزeжذa֯_gggl۶.66Lnii :mY5ińcǎV|/PرcG?,Y,))0mFBΝEEE(**aF@̙3ؿG4nʕ+kkk}XX1vX?ƒ%KеkW8::6l :o 9==`...e///G=m"߷o_P]x1;L2Eໂܹu68::{Q޿@HJJ_jj*222 ##(?~߿GFFk.9ZZZ+sѣ# -2d"##Eƍ9s&"##ѡC,[ ufXjj6Zyii)Ν;s:sF^XXgϲ-\BBBc+V9?,ƍqu?~999X~}XiӦ^L̙3B G8z{뺬 ƍÔ)Sg P=߹RiccSo05sL+^| XXX MS_8|0ً۸p*++۷cORDFFwE=8po޼?=?ի0e7nF7l ("װѣ9hūWbŊXz5333oegg͛7B-ݻ}ϟ?ǹs܏6ٜYZZ&O ߿](PcѾ}{\x  p`^#uuuގ96)v ͫs/rE'^z |;wrNF\(ֺ2dD͛#Gu޹,ZHhZ~ :unٲeseeeHOOGUUK.@MMM͜9˗/Yfƹs琒Kנ 6oغup5$$$4x_rrr5_gϞ5RFԩS#@ݻwpvvƤIp!s۷(++̙3!//C&;;?aum˗عsP3cM?[1 >>0m4t >>> ><ѱcGz 8tTL4 DZZЋ]ǎ!!!SNq#::߿Ǒ#G믿]v^9_999h׮v%ݑ#G0x`Ջ]VZZ 1k,$ 5?}Tf7y=/^ϟ#99`axxxØ:u*'tא -[%%%l޼cƌٳ7`~aҥ-2j [o222zh5j5t8ٳ8o X[[رcM ~AAA6lgիWC[[;wX~=DUUpssCff&ttt\/]vujNAAAmۄDzTb.]Я_?}||o}<\vQ8޼ycǢ]v8}tГ'Op,^zzzx5qZׯ_M6k999MJJ 222BEzdffb}MIIA^pڵzmb̘1ضm %%%bڴi(++kѼ^Wb炂DDDHIIA^^pĉ dll쿴j*ݽx>̶\d8z(;ߴ@Ў;ac֬YDyy9 CCCk233QgZXX{{{;rrr5KEEXz5.]EEE\v %%%Xj|@ a`ȑ#ŢE08j󣤤|.]BTT^x>7bʕ)StRxxx`رBsڴi6myƌ B`` 6mڄaÆaܸqsnuz3t^^^pwwǔ)S?ֹjeee&Tse`` 6CCC,[}(III`MR?zhܸqcii)N:[ IIIƐ!CG\\\ŷo… ;wGӧO yyy ;Vz]p%չ^dd$ "p̼<())k꼹4WTT¥?cڵ©Spa{p=:t7ns=]]]bňF||<1i$?vɓ'ƨQ !!>}@WWm۶ŷ~QD_={`}١ :::?~<6n܈QF5Y‚Vs޽Xxq5<ѣuϰ%P3g`X`fΜI&!!!Btt4'1|>7oBEE| F .5֮]ׯcakk[}䵵 &+JRR-Z<9_VVVx<HJJ UUUؽ{7lmm;wׯ nYIT?j_n݂@@]VVYOpp0֭Ä T7;;;cժUD׮]f6˗8q#GģG )) cccaSSS@r֭_o/^ ???Ձbj+vź)((=.]\zՅ?Z͞={_~8yd0 9)))bʕӧOQRR"ԩ… PVVưaÄY0lL7Jm%Ƅ p1dÆ 3L߾}J }}}Ǐ_EEEyfff(--͛79vލk׮`M,X]vʕ+忡ܹN:aݺu:t(;&?hII  b , IDATtѡC_~q M5KKKу3}ևYTo߾femnD P<~8fΜ ڵ RRR{.0rH\v ˗/GΝakk+rxΞ=Gbĉx"n݊ڵkljChѣG/)) >,eGdd9IIIϗrlڴ 7nDee%~g>}OXɉ~/6r @KK G~ !!͛Xz5̙@\~] S#221cLEEhq%%%^-… 0~x/'ODhh(޽{ɓ'Ν;ׯ_KKK;vD\\gvv6Ǝ+P߾}{dee;m VZ[[[\|Av srrpTVV_{n oooرcck3"##GUUZl̙8vNڨ/\ϟcXd Ν;'Ԅ@ht#G`nnY{ @t(>޽{amm=z4OiN:!447LJbpssHX8ַo_;v 033öm`mm UUUܺu޲[u)..?oߎTۋ|\~=LMM9z~ok֬a?3?~VPPU~ԇ .]*0X())DFFr6qa 첚nNNNHHHP ݻ?;xxx`۶mXl֯_ϞTBz[M6QXXbUUq9#88uСC&d <fffB(--pBxaaa3f 233ŪQ[VV&?Md}}|}}1`"00b͍˗+44є***8px ,--.|4QiF`ee];LpwwLj#?CSSSLF\#55Ç!!!L<رc͛}}zDz҇+GDDUVBk^j{9bbb؎uy [0e\tI(QM_ćw*++={j ëW`mm.+(('ͧcِBHHg1gvzzz}g̚Ycǎ,--9Dxb߿zzz"6mWWW >1118s ߿/o7n?>ѷ~+6Cزe ߏVZapss>ukP \bٳ-[`ƌ"(NS";;lYvRrO>;&YK3rlrVVvڅ;wBAAFii)qaܹBe TܹQQQǞ={Viii888`˖-N@QZZ=,--1~x˳7wcccxyyΝ;ٓ}}}ؼR ##%%%x<~ZZ۶mIII"ifff8uTLCxx8<Xp!=oѹsg6lx<-[###Q'Oę3grJ`ر+WDxbرBDDDS~b„ dSGcѸr LLLPZZ*vИ1cؚ/^رcVn>|P^7nsX~rEEEvTh ???())y~сPx% 2YĚA٘j?3Ϯ]пf3!! £GZ<8Ǐ ,DFԋk,X}\&@BCC1i$~۷o笑:t@?el ;vě7oY&--p`٨VX!2y}]zsL/-- ;;;O<[0tPHHH`?>^xsss 6 ܹsѪU+O>fk/sV,Xx2 g"%%Ǐ,YM˖-t5N<]dYm5 U */_㊊  Ù! :t(n߾saʕ";sL\|Y`?}6/66022b8___!pww/V@BB^^^cEi&lٲÆ L@!>@BFF.]jЃwp@YYX#hk$&&bĉHKKÅ K(Obڴix\9r.8r`aas5Ѿ}Ю];ٳС BCCT+V|.))f̘YBAZZk׮46FS(++CAA/_̙3Xf 9ė/_l8zFYYY8p7o=zt;uqq1\cǎܹsŪUzjj5עfxrrr/{ἷ/1l G:ݻ2e q%jd 4055k7n uHKK [j%0vMr|###sΉ,Cs<^~ kkkܻw...~:85k`ٲe:u*\]]7oMMFm󓟟___899AEEeeel%BHH455~GTTZnV!** CŠA0~x8q߬ ΝWSNE8\= 1`8s@׮YFn3pm5~&L`k qaBWW}8 BtCW^022޿L< &M yxx/Ojj*N> ?Da׮]xǏtRĉ0`޿oFHH***~:u]8y$vލx Sٳ$5)//ݻ֭[#,,IRRRsNݻ:::uVgiigϞ ;wlL$ CVV,pS+VTTݻlPO'''8q #---HIIEEE@JJ @BB8~8~Iغu+lGGGx{{sn~z()) tjի/ӧ9r$455QUUcʕoFYijq?}ASSXdIx544`llkĉ҂PVV2͛7(--ŝ;w8_ v튬,6G kFnݺ8w\ԩSpppԩScl(B---$$$4\q]ygձcG̙3l3+u)S`Ŋh۶-._\oPuUάMb TUUٳ',Y vvv jի]Cq l޼Xn~zۮ7zhHKKcǎuV*VPP7n 99D8tann#77xȋ&UO<&&& Ebb" -- 555@۶m#\t ܹ3ƌ#xe)**khjjrYFffVX!4E<***lYtVc Xx1[mL(⨩3gN멨u4̜9w;K,AXXѩS't֍7/))ANN̰iӦ&OS.2225jtiiiTUU!==o߾066FXX6nOOOS`***bٲeu@u?`Յ,;v} B%Km۶8x ֮]8;; ۷kFF \\\ !!&&&MJte={O>Enn.0 dee!''%%%hjju"ĝfc鉂XV>''(,,x\z۶mÿ x{{aprr<<|ϞV^-N]Mٳgݻw EDD_ܽ{'OƄ CBKK ׯ߲/8{l/QQQ֭[#""&&&F>L,[ mڴAee%i[{٠+߾}d֭[r rrr`eeXsYJJJٳغu+.FBB(** rrrFKҬiDFnn.***8qXSPPs3E1%$$|C^rO8! 2M.L#@uмi&t֍sZCϞ=1~x̞=YFKhL _DDRRRJAA joΝ; QYY III`b6440 [TTT@VVJJJШsںwO"((O>4 ,զϟlftxSNExx8ڴi#F`ڵxK&ad6\wa E%%%x ѶmϦ38!B -6՛7o+HJJbl2|>ׯwPRR :x<ܼyV#<<zjfv.iiix!z.][ӏvׯux-?Q *kQQQߟ8 _0 yeR}Ӭ0~cEB!}@im<B!E"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!B$ @!BZF̽hוZF"!BW~&mO"!BWhQ1UTEI>"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!BD"!B$ @!B_XFo; B!_- ~̽h܏~@B!+<<~2II)m"!BD"!BD"!BD} !BްN -8a\\qnC5B!|9F.]EnC"!Bظa ݫuQ!@+**c՛~|>-SJBǃs@]]QߋCtܹ)** O<F s{n|7['##}~5IFFx<:vؠrss+,f.]ˉEnݠ~Wl޼:tȥ#G= ߿g9sǏol2۷O:[l(+D~ڵ >͛Ss߿vYLL e˖ضm',)D6eee?0g9sΝ; 6СCQ܏~t? [[[x{{aW0BH8(..-PRRSobcc?uqX8u6l[[[]Ek RR=z4Μ93g@KK 8s 9Ҭ...ٳtmڵ IIIB˓]6j#F@`` 1gرe\aaa(fBx<RSSH0 $%%q:TUU!%%Ϟ=ûw=xÇ?uqX***qhjj"77?< :Q3 FxxU\۽{Ɩ-[QUU4{PBzz:=׌ 5+Ю@FFg$F+W{|BȗŬ,XXX`ͽkkk)StRs^^̙Yf SL'aaa,Zصkoj~w̞=7nDRR,,,0}tdgg7t<?F^ЫWF5 Ȱ 0ݻA9(yyyptt3,--~[@qFյ{ T_;;f%$$u5~7;ӧOaeeKҒQQQvf̘<;88`ʔ)8v7oaoosvZŋB˕еk&LLL OOOeгgO᧟~5qQC8|0TTT`ggQFa…Bjj*:uTZ>+++?x RSS!##SSSmVvϞ=:t^zݻ}_ܿϛ7o뭡<===,]ppp`[@=k,ȑ#6P}}wK,gJJJYYY())}zƌ30qDٙw}aĉAff&lmm1uTjՊ=F~~>QTTh1IDAThhQFANN}Evv6"""`ii ]]]$%%!((ݺuC```򩩩aߑmmm̜9َ{!iii<~UUU(СC8[n"1  [jjj߿?ya͚5lȮ]6NIIadddԩSPPP@Ѩtuuqt {/Fyy9l@ ^ ͛!))va׮]B- ֐$JKK)P$+ў{ V\\R\VVCSSǏ+455` >۷o0:t(dee?ڱ?w111(((Ν;xK999hkkC[[8r֮]%6uuu7xׇ/};w\s}O}֭lmm{8G^^ׯdzgбcG AS 5auMhځ4g_B"|TY˿vlSNASSShiiiX[[ ظq#6o eee 8s߾}PUUE~~>.\78ר ظq#<,Ŵ4`„ 2DFF~R5.BBB]C~půږ,--qlٲww~e0f]RRRlM8j_RR?77RRR NKhkkCNNAB>Ob8oժctE`w[ҏvo˒Ӄ;_~-.^I&aܸq16m >>7|@uYhh(1zh(++WSySGUUe}"!!*ƐΝ;.{Pl-j~_=~\x0,_cƌ/ڮBRRFFF0`{!-- ӦM?oߊ}߾}@sssCTTT[n5z;!Ӡ666عs'֮]yaSTTǏ#""Y (++UV%-Z~ggg>>];;;=z[l0rz*&Oܠ!/ #Lѽb#<~033(]QQ8Ν;(((0h D\xo߾1vXiݻW"??~-Ǝ+4 T}|| bO< z 999Qz54Uѣ@3Yii) -- CCC|/J||PM@|LL >} uuu 6L%c{@BBڶm٤;w@]]o^JMMEUU`t<{ jjj-rm~đ4 [uݻOB^^Çw:?@uz+W@^^fffHNNӧOЦMpf033]<{ :ub7AVVmڴa񁺺:Ν۠sC\x/(S3ZQJJ ʟh\Bعs'v%2(!_ӧOݻiTMBE(Pe"|Ei$Aބ|]n SG=+++KU_|\ B!So$vfLܿz_`ZkB|".D /Ziˆ#>a!B>-_S0g(ɏѽw(VUL~ >򐚐n++'^+:{ Uajm :j?X(yl]ZU@rl2n Z0ai4' 7 32*IY^^_Ϭ'7o_?7p7ߠuyw7oD׮]Ѿ})!%o3ם GWPm]x;."S=ѹwgt1o=Ə~\A\8x1b2%L#ٽg5-5< { IN .ݐw.G!rz .:bY3ڝq7.b {vmD]}us:%$nnؽ;!![ ;;щ4C$Ĥ:th^ƍ=z+)?dk}Bi.u~l)RKˑ* *v4` Fm GmsAEy:"<8Fxw51eܭ{;w۰wӦa45tI'OMoF!l9 Ք2% i ov}=~an=&+wFYÀZJV[Mw-Kɚ4"V+&kc_1fFSZ C)a(*3<cʌΔ%IwNso{ҿO 3ʣ 5rڭ~`Dw:U#b21Z͠R}ׯQ_o䦂wFq+Glh4R__Pd؝  MnKC!hՖcj3k1vms`壴r:KHa3hi9̹sOO7]+4۝jHHZ*nm;_Rb@u_fx챫|M'_̙Wjm p b&C=ᗉ7V6W_mvhO>%\MHH۷okP?v:ŋsa㉉޽HJJOA %1tP_Qy_~4;A֒,d=hz=OM]]Nq,:;9sSUeK4rs5L@lD>g|HIS]m"|~EE3DpE|),ԓe) ""BOJcc?ɷh8vl&R3(.&(#77r'FDLGCz;o>o~[R)ɤRPP@VV[;#77Z,99FOA&Q]QUk p_l?}Q.W_nμ9.fI'og8˒ L6955^alsϩXa3DZZ]X[(KPQZKt%ay"k;$##mޘ8dn*[+> $]BCl6lʚ5M?nqT¥KjX?7O,P.㡇47(p8X~i/qgJJJ}}}Jv;wuu!G500trAaqx̥,ÄAbz8]z!.53UIy<>=Trt<J%$%p-y:g::Ly`<=%\KKpC,;`ɒ:umk&[ػWRa Ay饗0LOJRRrIRRlߟmmm Ξ=trAaq砩AxM"srt|E/~h=j*6@kS+Ս\.lc ,|j!7vֽ@ښhj ~aCeػW[o՚ְs5Οwn_ bJVM{.~{P}VMEE FZ[X2ɓ=fժF<).!4T֭ܢPJՏg ptlJFFmog}G}d㗗Gzz:555Ųeˬmĉ:ԇ[+wOA ɼ%ۨ6dH<$: 59;zÃznMz4[[/]y=.@2bμ9\m!r%ѩO CTM5M+ą ˈrm7rJ%SRIH,++ȑ#L: &Nͣb׮]455Fpp0FBt|=Bp(WZZJLLz]]c  )O27ך蓮%_?AkspEAAn$Nzj;dwloA|jwsAAd\ n8ΌHXv! _~;AA  `3J-Iw,!  :[t@_X)u[IENDB`migemo-1.9.2/migemo.el000066400000000000000000000752051341627466000146210ustar00rootroot00000000000000;;; migemo.el --- Japanese incremental search through dynamic pattern expansion -*- lexical-binding: t; -*- ;; $Id: migemo.el.in,v 1.9 2012/06/24 04:09:59 kaworu Exp $ ;; Copyright (C) Satoru Takabayashi ;; Author: Satoru Takabayashi ;; URL: https://github.com/emacs-jp/migemo ;; Version: 1.9.2 ;; Keywords: ;; Package-Requires: ((cl-lib "0.5")) ;; This file is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; This file is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to ;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Commentary: ;; ;;; Code: (require 'cl-lib) (defgroup migemo nil "migemo - Japanese incremental search trough dynamic pattern expansion." :group 'matching) (defcustom migemo-command "cmigemo" "*Name or full path of the executable for running migemo." :group 'migemo :type '(choice (const :tag "CMIGEMO" "cmigemo") (const :tag "Ruby Migemo" "ruby") (string :tag "Other"))) (defcustom migemo-options '("-q" "--emacs") "*Options for migemo command." :group 'migemo :type '(repeat string)) (defcustom migemo-white-space-regexp "[  \t\r\n]*" "*Regexp representing white spaces." :group 'migemo :type 'string) ;; for Ruby/Migemo ;; (setq migemo-command "ruby") ;; (setq migemo-options '("-S" "migemo" "-t" "emacs" "-i" "\a")) ;; (setq migemo-dictionary "somewhere/migemo/utf-8/migemo-dict") ;; (setq migemo-user-dictionary nil) ;; (setq migemo-regex-dictionary nil) (defcustom migemo-directory nil "*Directory where migemo files are placed." :group 'migemo :type 'directory) (defcustom migemo-isearch-enable-p t "*Enable the migemo feature on isearch or not." :group 'migemo :type 'boolean) (defcustom migemo-use-default-isearch-keybinding t "*If non-nil, set migemo default keybinding for isearch in `migemo-init'." :group 'migemo :type 'boolean) (defcustom migemo-dictionary (expand-file-name "migemo-dict" migemo-directory) "*Migemo dictionary file." :group 'migemo :type '(file :must-match t)) (defcustom migemo-user-dictionary (expand-file-name "user-dict" migemo-directory) "*Migemo user dictionary file." :group 'migemo :type '(choice (file :must-match t) (const :tag "Do not use" nil))) (defcustom migemo-regex-dictionary (expand-file-name "regex-dict" migemo-directory) "*Migemo regex dictionary file." :group 'migemo :type '(choice (file :must-match t) (const :tag "Do not use" nil))) (defcustom migemo-pre-conv-function nil "*Function of migemo pre-conversion." :group 'migemo :type '(choice (const :tag "Do not use" nil) function)) (defcustom migemo-after-conv-function nil "*Function of migemo after-conversion." :group 'migemo :type '(choice (const :tag "Do not use" nil) function)) (defcustom migemo-coding-system 'utf-8-unix "*Default coding system for migemo.el." :group 'migemo :type 'coding-system) (defcustom migemo-use-pattern-alist nil "*Use pattern cache." :group 'migemo :type 'boolean) (defcustom migemo-use-frequent-pattern-alist nil "*Use frequent patttern cache." :group 'migemo :type 'boolean) (defcustom migemo-pattern-alist-length 512 "*Maximal length of migemo-pattern-alist." :group 'migemo :type 'integer) (defcustom migemo-pattern-alist-file (locate-user-emacs-file "migemo-pattern" ".migemo-pattern") "*Path of migemo alist file. If nil, don't save and restore the file." :group 'migemo :type 'file) (defcustom migemo-frequent-pattern-alist-file (locate-user-emacs-file "migemo-frequent" ".migemo-freqent") "*Path of migemo frequent alist file. If nil, don't save and restore the file." :group 'migemo :type 'file) (defcustom migemo-accept-process-output-timeout-msec 5 "*Timeout of migemo process communication." :group 'migemo :type 'integer) (defcustom migemo-isearch-min-length 1 "*Minimum length of word to start isearch." :group 'migemo :type 'integer) ;; internal variables (defvar migemo-process nil) (defvar migemo-buffer nil) (defvar migemo-current-input-method nil) (defvar migemo-current-input-method-title nil) (defvar migemo-input-method-function nil) (defvar migemo-search-pattern nil) (defvar migemo-pattern-alist nil) (defvar migemo-frequent-pattern-alist nil) (defvar migemo-search-pattern-alist nil) (defvar migemo-do-isearch nil) (defvar migemo-register-isearch-keybinding-function nil) ;; For warnings of byte-compile. Following functions are defined in XEmacs (declare-function set-process-input-coding-system "code-process") (declare-function set-process-output-coding-system "code-process") (defsubst migemo-search-pattern-get (string) (let ((pattern (cdr (assoc string migemo-search-pattern-alist)))) (unless pattern (setq pattern (migemo-get-pattern string)) (setq migemo-search-pattern-alist (cons (cons string pattern) migemo-search-pattern-alist))) pattern)) (defun migemo-toggle-isearch-enable () (interactive) (setq migemo-isearch-enable-p (not migemo-isearch-enable-p)) (message (if migemo-isearch-enable-p "t" "nil"))) (defun migemo-start-process (name buffer program args) (let* ((process-connection-type nil) (proc (apply 'start-process name buffer program args))) (if (fboundp 'set-process-coding-system) (set-process-coding-system proc migemo-coding-system migemo-coding-system) (set-process-input-coding-system proc migemo-coding-system) (set-process-output-coding-system proc migemo-coding-system)) proc)) (defun migemo-init () (when (and migemo-use-frequent-pattern-alist migemo-frequent-pattern-alist-file (null migemo-frequent-pattern-alist)) (setq migemo-frequent-pattern-alist (migemo-pattern-alist-load migemo-frequent-pattern-alist-file))) (when (and migemo-use-pattern-alist migemo-pattern-alist-file (null migemo-pattern-alist)) (setq migemo-pattern-alist (migemo-pattern-alist-load migemo-pattern-alist-file))) (when (and migemo-use-default-isearch-keybinding migemo-register-isearch-keybinding-function) (funcall migemo-register-isearch-keybinding-function)) (or (and migemo-process (eq (process-status migemo-process) 'run)) (let ((options (delq nil (append migemo-options (when (and migemo-user-dictionary (file-exists-p migemo-user-dictionary)) (list "-u" migemo-user-dictionary)) (when (and migemo-regex-dictionary (file-exists-p migemo-regex-dictionary)) (list "-r" migemo-regex-dictionary)) (list "-d" migemo-dictionary))))) (setq migemo-buffer (get-buffer-create " *migemo*")) (setq migemo-process (migemo-start-process "migemo" migemo-buffer migemo-command options)) (set-process-query-on-exit-flag migemo-process nil) t))) (defun migemo-replace-in-string (string from to) (with-temp-buffer (insert string) (goto-char (point-min)) (let ((migemo-do-isearch nil)) (while (search-forward from nil t) (replace-match to nil t))) (buffer-substring (point-min) (point-max)))) (defun migemo-get-pattern (word) (cond ((< (length word) migemo-isearch-min-length) "") (t (let (deactivate-mark pattern freq alst) (set-text-properties 0 (length word) nil word) (migemo-init) (when (and migemo-pre-conv-function (functionp migemo-pre-conv-function)) (setq word (funcall migemo-pre-conv-function word))) (setq pattern (cond ((setq freq (and migemo-use-frequent-pattern-alist (assoc word migemo-frequent-pattern-alist))) (cdr freq)) ((setq alst (and migemo-use-pattern-alist (assoc word migemo-pattern-alist))) (setq migemo-pattern-alist (cons alst (delq alst migemo-pattern-alist))) (cdr alst)) (t (with-current-buffer (process-buffer migemo-process) (delete-region (point-min) (point-max)) (process-send-string migemo-process (concat word "\n")) (while (not (and (> (point-max) 1) (eq (char-after (1- (point-max))) ?\n))) (accept-process-output migemo-process 0 migemo-accept-process-output-timeout-msec)) (setq pattern (buffer-substring (point-min) (1- (point-max))))) (when (and (memq system-type '(windows-nt OS/2 emx)) (> (length pattern) 1) (eq ?\r (aref pattern (1- (length pattern))))) (setq pattern (substring pattern 0 -1))) (when migemo-use-pattern-alist (setq migemo-pattern-alist (cons (cons word pattern) migemo-pattern-alist)) (when (and migemo-pattern-alist-length (> (length migemo-pattern-alist) (* migemo-pattern-alist-length 2))) (setcdr (nthcdr (1- (* migemo-pattern-alist-length 2)) migemo-pattern-alist) nil))) pattern))) (if (and migemo-after-conv-function (functionp migemo-after-conv-function)) (funcall migemo-after-conv-function word pattern) (migemo-replace-in-string pattern "\a" migemo-white-space-regexp)))))) (defun migemo-pattern-alist-load (file) "Load migemo alist file." (setq file (expand-file-name file)) (when (file-readable-p file) (with-temp-buffer (let ((coding-system-for-read migemo-coding-system) (buffer-file-coding-system migemo-coding-system))) (insert-file-contents file) (goto-char (point-min)) (condition-case err (read (current-buffer)) (error (message "Error while reading %s; %s" (file-name-nondirectory file) (error-message-string err)) nil))))) (defun migemo-pattern-alist-save (&optional clear) "Save migemo alist file." (interactive) (when (and migemo-use-pattern-alist migemo-pattern-alist-file (or migemo-pattern-alist clear)) (let ((file (expand-file-name migemo-pattern-alist-file))) (when (file-writable-p file) (when clear (setq migemo-pattern-alist nil)) (when (and migemo-pattern-alist-length (> (length migemo-pattern-alist) migemo-pattern-alist-length)) (setcdr (nthcdr (1- migemo-pattern-alist-length) migemo-pattern-alist) nil)) (with-temp-buffer (let ((coding-system-for-write migemo-coding-system) (buffer-file-coding-system migemo-coding-system)) (if (fboundp 'pp) (pp migemo-pattern-alist (current-buffer)) (prin1 migemo-pattern-alist (current-buffer))) (write-region (point-min) (point-max) file nil 'nomsg))) (setq migemo-pattern-alist nil))))) (defun migemo-kill () "Kill migemo process" (interactive) (when (and migemo-process (eq (process-status migemo-process) 'run)) (kill-process migemo-process) (setq migemo-process nil) (when (get-buffer migemo-buffer) (kill-buffer migemo-buffer)))) (defun migemo-pattern-alist-clear () "Clear migemo alist data & file." (interactive) (migemo-kill) (migemo-pattern-alist-save 'clear) (migemo-init)) (defun migemo-frequent-pattern-make (fcfile) "Create frequent pattern from `frequent-chars'." (interactive "ffrequent-chars: ") (migemo-pattern-alist-save 'clear) (when migemo-frequent-pattern-alist-file (migemo-kill) (migemo-init) (let ((file (expand-file-name migemo-frequent-pattern-alist-file)) (migemo-use-pattern-alist nil) (migemo-use-frequent-pattern-alist nil) (migemo-after-conv-function (lambda (_x y) y)) word) (setq migemo-frequent-pattern-alist nil) (with-temp-buffer (let ((coding-system-for-write migemo-coding-system) (buffer-file-coding-system migemo-coding-system))) (insert-file-contents fcfile) (goto-char (point-min)) (message "Make frequently pattern...") (while (not (eobp)) (when (looking-at "^[a-z]+$") (setq word (match-string 0)) (message "Make frequently pattern...%s" word) (setq migemo-frequent-pattern-alist (cons (cons word (migemo-get-pattern word)) migemo-frequent-pattern-alist))) (forward-line 1)) (when (file-writable-p file) (setq migemo-frequent-pattern-alist (nreverse migemo-frequent-pattern-alist)) (erase-buffer) (if (fboundp 'pp) (pp migemo-frequent-pattern-alist (current-buffer)) (prin1 migemo-frequent-pattern-alist (current-buffer))) (write-region (point-min) (point-max) file nil 'nomsg))) (migemo-kill) (migemo-init) (message "Make frequently pattern...done")))) (defun migemo-expand-pattern () "\ Expand the Romaji sequences on the left side of the cursor into the migemo's regexp pattern." (interactive) (let ((pos (point))) (goto-char (- pos 1)) (if (re-search-backward "[^-a-zA-Z]" (line-beginning-position) t) (forward-char 1) (beginning-of-line)) (let* ((str (buffer-substring-no-properties (point) pos)) (jrpat (migemo-get-pattern str))) (delete-region (point) pos) (insert jrpat)))) (defun migemo-forward (word &optional bound noerror count) (interactive "sSearch: \nP\nP") (if (delq 'ascii (find-charset-string word)) (setq migemo-search-pattern word) (setq migemo-search-pattern (migemo-search-pattern-get word))) (search-forward-regexp migemo-search-pattern bound noerror count)) (defun migemo-backward (word &optional bound noerror count) (interactive "sSearch backward: \nP\nP") (if (delq 'ascii (find-charset-string word)) (setq migemo-search-pattern word) (setq migemo-search-pattern (migemo-search-pattern-get word))) (if (null migemo-do-isearch) (search-backward-regexp migemo-search-pattern bound noerror count) (or (and (not (eq this-command 'isearch-repeat-backward)) (not (get-char-property (point) 'invisible (current-buffer))) (or (and (looking-at migemo-search-pattern) (match-beginning 0)) (and (not (eq (point) (point-min))) (progn (forward-char -1) (and (looking-at migemo-search-pattern) (match-beginning 0)))))) (search-backward-regexp migemo-search-pattern bound noerror count)))) ;; experimental ;; (define-key global-map "\M-;" 'migemo-dabbrev-expand) (defcustom migemo-dabbrev-display-message nil "*Display dabbrev message to minibuffer." :group 'migemo :type 'boolean) (defcustom migemo-dabbrev-ol-face 'highlight "*Face of migemo-dabbrev overlay." :group 'migemo :type 'face) (defvar migemo-dabbrev-pattern nil) (defvar migemo-dabbrev-start-point nil) (defvar migemo-dabbrev-search-point nil) (defvar migemo-dabbrev-pre-patterns nil) (defvar migemo-dabbrev-ol nil) (defun migemo-dabbrev-expand-done () (remove-hook 'pre-command-hook 'migemo-dabbrev-expand-done) (unless (eq last-command this-command) (setq migemo-search-pattern-alist nil) (setq migemo-dabbrev-pre-patterns nil)) (when migemo-dabbrev-ol (delete-overlay migemo-dabbrev-ol))) (defun migemo-dabbrev-expand () (interactive) (let ((end-pos (point)) matched-start matched-string) (if (eq last-command this-command) (goto-char migemo-dabbrev-search-point) (goto-char (- end-pos 1)) (if (re-search-backward "[^a-z-]" (line-beginning-position) t) (forward-char 1) (beginning-of-line)) (setq migemo-search-pattern-alist nil) (setq migemo-dabbrev-start-point (point)) (setq migemo-dabbrev-search-point (point)) (setq migemo-dabbrev-pattern (buffer-substring-no-properties (point) end-pos)) (setq migemo-dabbrev-pre-patterns nil)) (if (catch 'found (while (if (> migemo-dabbrev-search-point migemo-dabbrev-start-point) (and (migemo-forward migemo-dabbrev-pattern (point-max) t) (setq migemo-dabbrev-search-point (match-end 0))) (if (migemo-backward migemo-dabbrev-pattern (point-min) t) (setq migemo-dabbrev-search-point (match-beginning 0)) (goto-char migemo-dabbrev-start-point) (forward-word 1) (message (format "Trun back for `%s'" migemo-dabbrev-pattern)) (and (migemo-forward migemo-dabbrev-pattern (point-max) t) (setq migemo-dabbrev-search-point (match-end 0))))) (setq matched-start (match-beginning 0)) (unless (re-search-forward ".\\>" (line-end-position) t) (end-of-line)) (setq matched-string (buffer-substring-no-properties matched-start (point))) (unless (member matched-string migemo-dabbrev-pre-patterns) (let ((matched-end (point)) (str (copy-sequence matched-string)) lstart lend) (if (and (pos-visible-in-window-p matched-start) (pos-visible-in-window-p matched-end)) (progn (if migemo-dabbrev-ol (move-overlay migemo-dabbrev-ol matched-start (point)) (setq migemo-dabbrev-ol (make-overlay matched-start (point)))) (overlay-put migemo-dabbrev-ol 'evaporate t) (overlay-put migemo-dabbrev-ol 'face migemo-dabbrev-ol-face)) (when migemo-dabbrev-ol (delete-overlay migemo-dabbrev-ol)) (when migemo-dabbrev-display-message (save-excursion (save-restriction (goto-char matched-start) (setq lstart (progn (beginning-of-line) (point))) (setq lend (progn (end-of-line) (point))) (setq str (concat "【" str "】")) (message "(%d): %s%s%s" (count-lines (point-min) matched-start) (buffer-substring-no-properties lstart matched-start) str (buffer-substring-no-properties matched-end lend))))))) (throw 'found t)) (goto-char migemo-dabbrev-search-point))) (progn (setq migemo-dabbrev-pre-patterns (cons matched-string migemo-dabbrev-pre-patterns)) (delete-region migemo-dabbrev-start-point end-pos) (forward-char 1) (goto-char migemo-dabbrev-start-point) (insert matched-string)) (goto-char end-pos) (message (format "No dynamic expansion for `%s' found" migemo-dabbrev-pattern))) (add-hook 'pre-command-hook 'migemo-dabbrev-expand-done))) (defsubst migemo--isearch-regexp-function () (or (bound-and-true-p isearch-regexp-function) (bound-and-true-p isearch-word))) ;; Use migemo-{forward,backward} instead of search-{forward,backward}. (defadvice isearch-search (around migemo-search-ad activate) "adviced by migemo." (when migemo-isearch-enable-p (setq migemo-do-isearch t)) (unwind-protect ad-do-it (setq migemo-do-isearch nil))) (defadvice isearch-search-and-update (around migemo-search-ad activate) "adviced by migemo." (let ((isearch-adjusted isearch-adjusted)) (when (and migemo-isearch-enable-p (not isearch-forward) (not isearch-regexp) (not (migemo--isearch-regexp-function))) ;; don't use 'looking-at' (setq isearch-adjusted t)) ad-do-it)) (defadvice search-forward (around migemo-search-ad activate) "adviced by migemo." (if migemo-do-isearch (setq ad-return-value (migemo-forward (ad-get-arg 0) (ad-get-arg 1) (ad-get-arg 2) (ad-get-arg 3))) ad-do-it)) (defadvice search-backward (around migemo-search-ad activate) "adviced by migemo." (if migemo-do-isearch (setq ad-return-value (migemo-backward (ad-get-arg 0) (ad-get-arg 1) (ad-get-arg 2) (ad-get-arg 3))) ad-do-it)) (when (and (boundp 'isearch-regexp-lax-whitespace) (fboundp 're-search-forward-lax-whitespace) (fboundp 'search-forward-lax-whitespace)) (setq isearch-search-fun-function 'isearch-search-fun-migemo) (when (fboundp 'isearch-search-fun-default) (defadvice multi-isearch-search-fun (after support-migemo activate) (setq ad-return-value `(lambda (string bound noerror) (cl-letf (((symbol-function 'isearch-search-fun-default) 'isearch-search-fun-migemo)) (funcall ,ad-return-value string bound noerror)))))) (defun isearch-search-fun-migemo () "Return default functions to use for the search with migemo." (cond ((migemo--isearch-regexp-function) (lambda (string &optional bound noerror count) ;; Use lax versions to not fail at the end of the word while ;; the user adds and removes characters in the search string ;; (or when using nonincremental word isearch) (let* ((state-string-func (if (fboundp 'isearch--state-string) 'isearch--state-string 'isearch-string-state)) (lax (not (or isearch-nonincremental (eq (length isearch-string) (length (funcall state-string-func (car isearch-cmds)))))))) (funcall (if isearch-forward #'re-search-forward #'re-search-backward) (if (functionp (migemo--isearch-regexp-function)) (funcall (migemo--isearch-regexp-function) string lax) (word-search-regexp string lax)) bound noerror count)))) ((and isearch-regexp isearch-regexp-lax-whitespace search-whitespace-regexp) (if isearch-forward 're-search-forward-lax-whitespace 're-search-backward-lax-whitespace)) (isearch-regexp (if isearch-forward 're-search-forward 're-search-backward)) ((and (if (boundp 'isearch-lax-whitespace) isearch-lax-whitespace t) search-whitespace-regexp migemo-do-isearch) (if isearch-forward 'migemo-forward 'migemo-backward)) ((and (if (boundp 'isearch-lax-whitespace) isearch-lax-whitespace t) search-whitespace-regexp) (if isearch-forward 'search-forward-lax-whitespace 'search-backward-lax-whitespace)) (migemo-do-isearch (if isearch-forward 'migemo-forward 'migemo-backward)) (t (if isearch-forward 'search-forward 'search-backward)))) ) ;; Turn off input-method automatically when C-s or C-r are typed. (defadvice isearch-mode (before migemo-search-ad activate) "adviced by migemo." (setq migemo-search-pattern nil) (setq migemo-search-pattern-alist nil) (when (and migemo-isearch-enable-p (boundp 'current-input-method)) (setq migemo-current-input-method current-input-method) (setq migemo-current-input-method-title current-input-method-title) (setq migemo-input-method-function input-method-function) (setq current-input-method nil) (setq current-input-method-title nil) (setq input-method-function nil) (when migemo-current-input-method (unwind-protect (run-hooks 'input-method-inactivate-hook 'input-method-deactivate-hook) (force-mode-line-update))))) (defadvice isearch-done (after migemo-search-ad activate) "adviced by migemo." (setq migemo-search-pattern nil) (setq migemo-search-pattern-alist nil) (when (and migemo-isearch-enable-p (boundp 'current-input-method)) (let ((state-changed-p (not (equal current-input-method migemo-current-input-method)))) (setq current-input-method migemo-current-input-method) (setq current-input-method-title migemo-current-input-method-title) (setq input-method-function migemo-input-method-function) (when state-changed-p (unwind-protect (apply #'run-hooks (if current-input-method '(input-method-activate-hook) '(input-method-inactivate-hook input-method-deactivate-hook))) (force-mode-line-update)))))) (defcustom migemo-message-prefix-face 'highlight "*Face of minibuffer prefix" :group 'migemo :type 'face) (defadvice isearch-message-prefix (after migemo-status activate) "adviced by migemo." (let ((ret ad-return-value) (str "[MIGEMO]")) (when (and migemo-isearch-enable-p (not (or isearch-regexp (migemo--isearch-regexp-function)))) (setq ad-return-value (concat str " " ret))))) ;;;; for isearch-lazy-highlight (Emacs 21) ;; Avoid byte compile warningsfor other emacsen (defvar isearch-lazy-highlight-wrapped) (defvar isearch-lazy-highlight-start) (defvar isearch-lazy-highlight-end) (when (fboundp 'isearch-lazy-highlight-new-loop) (defadvice isearch-lazy-highlight-new-loop (around migemo-isearch-lazy-highlight-new-loop activate) "adviced by migemo" (if (and migemo-isearch-enable-p (not (migemo--isearch-regexp-function)) (not isearch-regexp)) (let ((isearch-string (migemo-search-pattern-get isearch-string)) (isearch-regexp t)) ad-do-it) ad-do-it))) (when (fboundp 'replace-highlight) (defadvice replace-highlight (around migemo-replace-highlight activate) "adviced by migemo" (let ((migemo-isearch-enable-p nil)) ad-do-it))) ;;;; for isearch-highlightify-region (XEmacs 21) (when (fboundp 'isearch-highlightify-region) (defadvice isearch-highlightify-region (around migemo-highlightify-region activate) "adviced by migemo." (if migemo-isearch-enable-p (let ((isearch-string (migemo-search-pattern-get isearch-string)) (isearch-regexp t)) ad-do-it) ad-do-it))) ;; supports C-w C-d for GNU emacs only [migemo:00171] (when (and (not (featurep 'xemacs)) (fboundp 'isearch-yank-line)) (defun migemo-register-isearch-keybinding () (define-key isearch-mode-map "\C-d" 'migemo-isearch-yank-char) (define-key isearch-mode-map "\C-w" 'migemo-isearch-yank-word) (define-key isearch-mode-map "\C-y" 'migemo-isearch-yank-line) (define-key isearch-mode-map "\M-m" 'migemo-isearch-toggle-migemo)) (setq migemo-register-isearch-keybinding-function 'migemo-register-isearch-keybinding) (defun migemo-isearch-toggle-migemo () "Toggle migemo mode in isearch." (interactive) (unless (or isearch-regexp (migemo--isearch-regexp-function)) (discard-input) (setq migemo-isearch-enable-p (not migemo-isearch-enable-p))) (when (fboundp 'isearch-lazy-highlight-new-loop) (let ((isearch-lazy-highlight-last-string nil)) (condition-case nil (isearch-lazy-highlight-new-loop) (error (isearch-lazy-highlight-new-loop nil nil))))) (isearch-message)) (defun migemo-isearch-yank-char () "Pull next character from buffer into search string with migemo." (interactive) (when (and migemo-isearch-enable-p (not isearch-regexp) isearch-other-end) (setq isearch-string (buffer-substring-no-properties isearch-other-end (point))) (setq isearch-message isearch-string)) (let ((search-upper-case (unless migemo-isearch-enable-p search-upper-case))) (isearch-yank-string (save-excursion (and (not isearch-forward) isearch-other-end (goto-char isearch-other-end)) (buffer-substring-no-properties (point) (progn (forward-char 1) (point))))))) (defun migemo-isearch-yank-word () "Pull next character from buffer into search string with migemo." (interactive) (when (and migemo-isearch-enable-p (not isearch-regexp) isearch-other-end) (setq isearch-string (buffer-substring-no-properties isearch-other-end (point))) (setq isearch-message isearch-string)) (let ((search-upper-case (unless migemo-isearch-enable-p search-upper-case))) (isearch-yank-string (save-excursion (and (not isearch-forward) isearch-other-end (goto-char isearch-other-end)) (buffer-substring-no-properties (point) (progn (forward-word 1) (point))))))) (defun migemo-isearch-yank-line () "Pull next character from buffer into search string with migemo." (interactive) (when (and migemo-isearch-enable-p (not isearch-regexp) isearch-other-end) (setq isearch-string (buffer-substring-no-properties isearch-other-end (point))) (setq isearch-message isearch-string)) (let ((search-upper-case (unless migemo-isearch-enable-p search-upper-case))) (isearch-yank-string (save-excursion (and (not isearch-forward) isearch-other-end (goto-char isearch-other-end)) (buffer-substring-no-properties (point) (line-end-position)))))) ) (add-hook 'kill-emacs-hook 'migemo-pattern-alist-save) (provide 'migemo) ;; sample ;; 0123 abcd ABCD ひらがな カタカナ 漢字 !"[#\$]%^&_':`(;)<*=+>,?-@./{|}~ ;; Local Variables: ;; coding: utf-8 ;; indent-tabs-mode: nil ;; End: ;;; migemo.el ends here