http://qs321.pair.com?node_id=333964


in reply to Learn vi/vim in 50 lines and 15 minutes

I've been doing all of my 'on the fly' SQL in vim or vi. On Windows, I use this in vim, and on AIX (where currently there is only vi installed, and I only access Informix databases), I use a different shortcut to send SQL to Informix's 'dbaccess'. For the vi version, I use the following two statements in my .exrc file (and they say perl is line noise :-) :
map #1 ma/^}/^M:?^{?,.t.^Mk:?^{?+1,.!dbvi^M'a map #2 ma:/^{/;/^}/d^M'a
I have a shell script named 'dbvi' (which filters the input before sending it to dbaccess or elsewhere), and when the cursor is in any block delimited by braces, it sends the contents of the block to the shell script, and the results appear following the current block. E.g. Hitting F1 in the first block produces the next block:
{ select * from some_table } { <results of query> }
Hitting F2 in the current block deletes the following block. I did have to mess with terminfo to get the F-keys to work. In the vim version, I open new windows, so I don't have to deal with this block stuff...