[chuck-users] chuck shell... --> My vim usage

Bill Nye nye2 at email.com
Thu Sep 10 20:47:12 EDT 2009


> From: kurt <sobrilliant at gmail.com>
> I like the Mini but I really like Vim. That is
> really the only reason I use the shell.

When I heard mention of vim I thought I would
share what I use to test chuck code snippets,
directly from inside vim.  To get alignment, be
sure to view the following with a fixed-width font.

It consists of one bash script, a symbolic link,
and, on Win, a .bat file.

In the main bash script below, the second 'cat' line
returns the same stdin chuck code lines back into
vim, followed then by chuck's stdout.  (Of course,
you also hear the chuck output, if any.)

I'm sorry to say that after days of trying, I could
not get chuck to play, and also deliver its stdout
in just one invocation, hence the two chuck.exe lines.

FILE ~/bin/chuck_execution_in_vi  (Win version)
   #! /bin/bash
   # chuck_execution_in_vi -- Typically used in vi as:
   #   :'a,.!chu  to leave original lines and also
   #              return Chuck execution output.
   tmp="/tmp/tmp.chu.ck.$$"
   cat > $tmp
   cat   $tmp
   cmd /c start "`cygpath -w ~/bin/chuck.exe`"          $tmp
                "`cygpath -w ~/bin/chuck.exe`" --silent $tmp  \
       2>&1 | tr -d '\015'
   rm -f $tmp
   exit
   TESTS:
     Sit on next line in vim and type   :.!chu
     <<< "Hello" >>>;
     You should see in vim after the '<<<' code line:
       "Hello" : (string)
     Sit on 'now' line and type   :-,.!chu
     SinOsc s  => dac;
     1::second => now;

FILE ~/bin/chuck_execution_in_vi  (Mac version)
   #! /bin/bash
   # chuck_execution_in_vi
   tmp="/tmp/tmp.chu.ck.$$"
   cat > $tmp
   cat   $tmp
   chuck $tmp  2>&1
   rm -f $tmp

On Mac and Win (cygwin) I have this symbolic link
to cut down on typing:
   ~/bin/chu -> ~/bin/chuck_execution_in_vi

On Win, I also need this parallel .bat file:
(I set the 2 env vars in my .profile)

FILE ~/bin/chu.bat
   @ECHO OFF
   PATH %WPROGRAMS%\cygwin\bin;%PATH%
   %WPROGRAMS%\cygwin\bin\bash  %WHOME%\bin\chu  %1 %2 %3 %4 %5 %6 %7
%8 %9

Of course, this only works well if the chuck code
terminates on its own.  I don't know what this can
do for --loop or shreds but it may give you some
ideas.

Incidentally, on both Mac and Win I have QuicKeys,
so I just do 'ma' (to mark the snippet beginning)
move to the end, and type Ctrl-Shift-C , which simply
types :'a,.!chu  for me.       -Bill



More information about the chuck-users mailing list