lin@sixmile.inel.gov (Linn Hower) (04/17/91)
Hello. A few years ago there was a posting of some lines that could be placed in an 'exrc file to interface with spell(1). One function key took all the editor buffer, piped it to spell, and appended the output. A second function key cycled through these words one at a time and loaded the search buffer. Your could then find and correct the bad words easily. I've lost this. Does anyone still have this... or a better spell- checker interface for vi? Thanks... Linn Hower lin@INEL.GOV Phone: 208-526-9231 at the Idaho National Engineering Laboratory, Idaho Falls, ID ========== long legal disclaimer follows, press n to skip =========== Neither the United States Government or the Idaho National Engineering Laboratory or any of their employees, makes any warranty, whatsoever, implied, or assumes any legal liability or responsibility regarding any information, disclosed, or represents that its use would not infringe privately owned rights. No specific reference constitutes or implies endorsement, recommendation, or favoring by the United States Government or the Idaho National Engineering Laboratory. The views and opinions expressed herein do not necessarily reflect those of the United States Government or the Idaho National Engineering Laboratory, and shall not be used for advertising or product endorsement purposes.
mullins@convex.com (Don Mullins) (04/17/91)
I use this for an interface to ispell. ispell is an interactive checker, thus the redirects in and out to /dev/tty. From my .exrc - this has been run thru 'cat -v' for mailing: " " write file, run ispell on file, re-edit file (k)sh version " map ^[i :w^M!!/usr/local/bin/ispell -x % </dev/tty >/dev/tty 2>&1^M:e!^M " " write file, run ispell on file, re-edit file csh version. I think the " syntax is correct, it's been a while. " map ^[i :w^M!!/usr/local/bin/ispell -x % </dev/tty &>/dev/tty^M:e!^M " Don -- Don Mullins Convex Computer Corporation Richardson, Texas USA INTERNET: mullins@convex.COM -- UUCP: {uiucuxc, uunet, sun, ...}!convex!mullins
mck@hpcuhc.cup.hp.com (Doug McKenzie) (04/23/91)
> Hello. A few years ago there was a posting of some lines that > could be placed in an 'exrc file to interface with spell(1). One function > key took all the editor buffer, piped it to spell, and appended the > output. A second function key cycled through these words one at a time > and loaded the search buffer. Your could then find and correct the > bad words easily. > > I've lost this. Does anyone still have this... or a better spell- > checker interface for vi? For what it's worth, here's one I wrote. Invoke as: <script> file It runs spell on the file, puts the misspelled words in a tmp file, asks if you want to edit that file, then invokes vi on the orig. file. with the following mappings: ctrl-N searches for bad words sequentially in the file, ctrl-K (kind of slowly) re-checks an attempt at spelling a word. This works on HP's hp-ux. Other than the "tput" command, which just produces bold on the screen, it looks pretty generic to me. I don't see anything that requires ksh rather than plain sh. It's shar'ed up because there's <ctrl>-stuff in it. Can you unpack it? Doug McKenzie HP HP-UX Support mck@cup.hp.com OR ...!hplabs!hpda!mck # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by Doug McKenzie <mck@hpcuhc> on Tue Apr 23 09:20:21 1991 # # This archive contains: # visp # LANG=""; export LANG PATH=/bin:/usr/bin:$PATH; export PATH rm -f /tmp/uud$$ (echo "begin 777 /tmp/uud$$\n \nend" | uudecode) >/dev/null 2>&1 if [ -f /tmp/uud$$ ] then rm -f /tmp/uud$$ unpacker=uudecode else echo Compiling unpacker for non-ascii files pwd=`pwd`; cd /tmp cat >unpack$$.c <<-'EOF' #include <stdio.h> #define DEC(c) (((c) - ' ') & 077) main() { int n; char dest[128], a,b,c,d; scanf("begin %o ", &n); gets(dest); if (freopen(dest, "w", stdout) == NULL) { perror(dest); exit(1); } while ((n=getchar()) != EOF && (n=DEC(n))!=0) { while (n>0) { a = DEC(getchar()); b = DEC(getchar()); c = DEC(getchar()); d = DEC(getchar()); if (n-- > 0) putchar(a << 2 | b >> 4); if (n-- > 0) putchar(b << 4 | c >> 2); if (n-- > 0) putchar(c << 6 | d); } n=getchar(); } exit(0); } EOF cc -o unpack$$ unpack$$.c rm unpack$$.c cd $pwd unpacker=/tmp/unpack$$ fi echo x - visp '[non-ascii]' $unpacker <<'@eof' begin 755 visp M(R$O8FEN+VMS: HC(%1H:7,@:7,@(G9I<W B+"!A('9I+7-E<W-I;VX@<W!E M;&P@8VAE8VME<BX@(%5S97,@+W5S<B]B:6XO<W!E;&P*(R!$;W5G($UC2V5N M>FEE"B,@57-A9V4Z('9I<W @6RUX72!F:6QE("AT;R!S<&5L;"!C:&5C:R!A M(%ME;F-R>7!T961=(&9I;&4I"B,@(" @(" @('9I<W @+7<@=V]R9" H=&\@ M<W!E;&P@8VAE8VL@82!W;W)D*0HC($9I<G-T+"!C:&5C:R!I9B!C86QL960@ M*&9R;VT@=FD@;VYL>2D@=&\@9FEN9"!N97AT('=O<F0@*'9I<W @+7!O<"D* M(R!)9B!N;W0L(&-H96-K(&EF(&-A;&QE9"!T;R!C:&5C:R!S<&5L;&EN9R!O M9B!W;W)D("AV:7-P("UW*0HC($5L<V4L(&-R96%T92!A;F0@961I="!M:7,M M<W!E;&QI;F=S(&9I;&4L(&UA<"!A;F0@:6YV;VME('9I(&]N(&9I;&4N"@HC M(%1(24Y'4R!43R!,3T-!3$E:12 H9FEN9"!B96QO=RDZ"B,@(")#<GEP=$1I M<B(@*&1E9F%U;'0@+W5S<B]L;V-A;"]B:6XI(&9O<B!E;F-R>7!T86)L92!V M:2!A;F0@<F5A;"!C<GEP= HC(" B3D585%]-05 B(&%N9" B0TA%0TM?34%0 M(B H9&5F875L="!>3BP@7DLI(&9O<B!K97ES('1O(&UA<"!I;B!V:0HC(" B M3$]#04Q?1$E#5"(@*&1E9F%U;'0@?B]L:6(O=W=B+W-P96QL9&EC="D@9F]R M('1H92!L;V-A;"!N;W0M;6ES<W!E;&QE9 HC(" @(" @=V]R9',@*&9O<B O M=7-R+V)I;B]S<&5L;" K3$]#04Q?1$E#5"D*"G1R87 @(G)M("UF("]T;7 O M=FES<"0D*CL@97AI=" Q(B R(#,@,34*"B,@268@8V%L;&5D(&%S(")V:7-P M("UP;W @/'!A<F5N=%]V:7-P7W!I9#XB('!O<"!A('=O<F0@;V9F('1H92!L M:7-T(&]F(&UI<RT*(R @('-P96QL960@=V]R9',N(" O=&UP+W9I<W D,B!H M97)E(&ES("]T;7 O=FES<"0D(&%L<F5A9'D@8F5F;W)E+@II9B!;(%@B)#$B M(#T@6"(M<&]P(B!=.R!T:&5N"B @("!I9B!;("US("]T;7 O=FES<"0R(%T[ M('1H96X*"6AE860@+3$@+W1M<"]V:7-P)#(*"7-E9" M;B G,BPD(' G("]T M;7 O=FES<"0R(#X@+W1M<"]V:7-P)'LR?71E;7 *"6UV("]T;7 O=FES<"1[ M,GUT96UP("]T;7 O=FES<"0R"B @("!E;'-E(&5C:&\@(B(@(",@;F5E9"!T M:&ES(&]R(&5L<V4@82!L:6YE(&9R;VT@;W)I9VEN86P@9FEL92!G971S(&1E M;&5T960*(" @(&9I"B @("!E>&ET"F9I"@IB;VQD/6!T<'5T('-M<V]@.R!C M;&5A<CU@='!U="!R;7-O8 H*(R!5<V5R(&AA<R!A('!E<G-O;F%L('-P96QL M(&1I8W1I;VYA<GD_"DQ/0T%,7T1)0U0](B1(3TU%+VQI8B]W=V(O<W!E;&QD M:6-T(@II9B!;("US("(D3$]#04Q?1$E#5"(@73L@=&AE;B!34$5,3#TB<W!E M;&P@*R1,3T-!3%]$24-4(@IE;'-E(%-014Q,/7-P96QL"F9I"@HC($-H96-K M(&EF(&-A;&QE9"!T;R!C:&5C:R!T:&4@<W!E;&QI;F<@;V8@82!W;W)D("AV M:7-P("UW('=O<F0I+ II9B!;(%@B)#$B(#T@6"(M=R(@73L@=&AE;B *(" @ M(')E<W5L=#TB)"AE8VAO("(D,B(@?" D4U!%3$P@?"!H96%D("TQ*2(*(" @ M(&5C:&\@(B1[8F]L9'T^/B1[8VQE87)](%PB)'LR?5PB("1[8F]L9'T\/"1[ M8VQE87)](&ES(%QC(@H@(" @:68@6R!8(B1R97-U;'0B("$](%@@73L@=&AE M;B!E8VAO(")I;EQC(@H@(" @9FD*(" @(&5C:&\@(F-O<G)E8W1L>2!S<&5L M;&5D(@H*(R!#:&5C:R!U<V%G90IE;&EF(%L@)",@/2 P(%T[('1H96X*(" @ M(&UE/6!B87-E;F%M92 D,& *(" @(&5C:&\@(EPB)&UE7"(@;&]C871E<R!M M:7,M<W!E;&QE9"!W;W)D<R!I;B!C;VYT97AT(&1U<FEN9R!A('9I('-E<W-I M;VXB"B @("!E8VAO(")5<V%G93H@)&UE(%LM>%T@9FEL92 @*%PB+7A<(B!F M;W(@86X@96YC<GEP=&5D(&9I;&4I(@H@(" @96-H;R B(" @(" @("1M92!; M+7==('=O<F0@*&-H96-K<R!S<&5L;&EN9R!O9B!A('-I;F=L92!W;W)D*2(* M(" @(&5X:70@,0IE;'-E"B @("!#<GEP=$1I<CTO=7-R+VQO8V%L+V)I;B @ M(R!F;W(@+7@@;W!T:6]N+B @5&AE(&YE960@=VEL;"!S;V]N(&=O(&%W87DN M"B @("!.15A47TU!4#TG#B<[($-(14-+7TU!4#TG"R<@(R!M87 @7DX@86YD M(%Y+(&9O<B!I;G9O8V%T:6]N(&]F('9I"B @("!I9B!;("(D,2(@/2 B+7@B M(%T[('1H96X@(",@4W!E;&PM8VAE8VL@96YC<GEP=&5D(&9I;&4*"6EF(%L@ M)",@/2 Q(%T[('1H96X*"2 @("!E8VAO(&YE960@9FEL96YA;64*"2 @("!E M>&ET(#$*"69I"@EI9B!;("UX("1[0W)Y<'1$:7)]+W9I("UA("UX("1[0W)Y M<'1$:7)]+V-R>7!T(%T[('1H96X*"2 @("!623TB)'M#<GEP=$1I<GTO=FD@ M+7@B"@D@(" @<VAI9G0*"65L<V4*"2 @("!E8VAO(")#86XG="!F:6YD(&5N M8W)Y<'1A8FQE('9I(&]R('1H92!C<GEP="!U=&EL:71Y+B(*"2 @("!E>&ET M(#$*"69I"B @("!E;'-E(%9)/2]U<W(O8FEN+W9I"B @("!F:0H*(" @(&5C M:&\@(E5S92!C=')L+4X@=&\@9FEN9"!M:7,M<W!E;&QE9"!W;W)D<RP@=&AE M;B!N(&9O<B!M;W)E(&]C8W5R<F5N8V5S+"(*(" @(&5C:&\@(B @("!C=')L M+4L@=&\@8VAE8VL@=V]R9"!S<&5L;&EN9R H8W5R<V]R(&]N(&)E9VEN;FEN M9R!O<B!W;W)D*2XB"B @("!E8VAO(")#<F5A=&EN9R!L:7-T(&]F(&UI<RUS M<&5L;&5D('=O<F1S("XN+B(*"B @(" C($-R96%T92!F:6QE(&]F(&UI<RUS M<&5L;&5D('=O<F1S"B @("!I9B!;("(D5DDB(#T@(B1[0W)Y<'1$:7)]+W9I M("UX(B @73L@=&AE;@H)=6UA<VL@,#<W"@DD>T-R>7!T1&ER?2]C<GEP=" \ M("0Q('P@)%-014Q,(#X@+W1M<"]V:7-P)"0*(" @(&5L<V4@)%-014Q,("0Q M(#X@+W1M<"]V:7-P)"0*(" @(&9I"@H@(" @:68@6R M<R O=&UP+W9I<W D M)"!=.R!T:&5N(" C($9O=6YD('-O;64@;6ES+7-P96QL:6YG<PH)96-H;R B M8'=C("UL(#P@+W1M<"]V:7-P)"1@(&UI<RUS<&5L;&5D('=O<F1S+B @7&,B M"@EE8VAO(")%9&ET('=O<F1S(&QI<W0@9FER<W0_("@D>V)O;&1]>21[8VQE M87)](&]R(&XI.B!<8R(*"7)E860@86YS"@EI9B!;(%@B)&%N<R(@(3T@6&X@ M73L@=&AE;B!V:2 O=&UP+W9I<W D) H)9FD*"@DC($EF('=O<F1S(')E;6%I M;BP@;6%P(%Y.('1O(&9I;F0@;6ES+7-P96QL960@=V]R9',@86YD(%Y+('1O M("AR92EC:&5C:PH)(R @('-P96QL:6YG(&]F('=O<F1S+@H):68@6R M<R O M=&UP+W9I<W D)"!=.R!T:&5N"B @(" )(" @("1622 K(CIS970@;F]I9VYO M<F5C87-E?#IS970@;F]A=71O=W)I=&5\.G-E="!N;W=A<FY\(%P*"0D@(" @ M;6%P("1[3D585%]-05!](#),.G(A)# @+7!O<" D) U!7#X;22]</!M<(GID M9$!Z?"!<"@D)(" @(&UA<" D>T-(14-+7TU!4'T@>5PD,DQO&W P.BXA87=K M("=[<')I;G0@7"0Q?2<-23HA)# @+7<@7"(;05PB&UPB>61D7&!<8$!Y(B D M,0H)9FD*(" @(&5L<V4@96-H;R B3F\@<W!E;&QI;F<@97)R;W)S(&9O=6YD M(&EN("0Q(@H@(" @9FD*(" @("]B:6XO<FT@+68@+W1M<"]V:7-P)"0*9FD* end @eof chmod 755 visp rm -f /tmp/unpack$$ exit 0
kal@cs.brown.edu (Keith Lewis (x1136)) (04/25/91)
In article <2360003@hpcuhc.cup.hp.com> mck@hpcuhc.cup.hp.com (Doug McKenzie) writes: >> Hello. A few years ago there was a posting of some lines that >> could be placed in an 'exrc file to interface with spell(1). One function >> key took all the editor buffer, piped it to spell, and appended the >> output. A second function key cycled through these words one at a time >> and loaded the search buffer. Your could then find and correct the >> bad words easily. >> >> I've lost this. Does anyone still have this... or a better spell- >> checker interface for vi? Here is something I have in my .exrc. The command \sp in vi runs spell on the file and puts the output in a temporary file. Just move the cursor to a line containing a word you want to change and type \/. You get switched back to the original with the cursor underneath the misspelled word. Type \\ to return to the temp file. When you are done \$ removes the temp file. map \sp :!spell % > %.sp^V^M:e %.sp^V^M^V^M map \/ 0i/^V^[$a/^V^["wdd:w^V^M:e#^V^M@w map \\ :w^V^M:e#^V^M map \$ :!rm -f %.sp^V^M -Keith Lewis
sanders@sanders.austin.ibm.com (Tony Sanders) (04/26/91)
map ^K :%!(tee /tmp/sp$$;echo -End Spell-;spell /tmp/sp$$;rm -f /tmp/sp$$)^V^M map ^O Gi/\<^V^[A\>^V^["wdd@w ^x is control character of course. ^K runs spell ^O searches for next misspelled word. Might I also suggest finding a copy of ispell. -- sanders@cactus.org