A.J.Mechelynck wrote:
Rodolfo Borges wrote:
I made a file with vim commands, starting with
#!/usr/bin/vim -S
so I can execute the file directly, instead of using "vim -S file".
The problem is that vim tries to execute this first line too.
Can we have a workaround on this?
Like, ignoring "#!" at the start of a command, instead of giving the
"no ! allowed" error?
Or am I having it all wrong?
Method I:
-----8<----- foo (or whatever)
#!/bin/bash
vim -S foo.vim
----->8-----
then put the rest in foo.vim and do "chmod a+x foo" or "chmod 0755 foo".
Method II: add to one of your shell startup scripts (~/.bashrc or
whatever):
alias foo='vim -S ~/foo.vim'
Commentary:
In a vim script, the first line has no special meaning. Empty lines,
blank lines (i.e. consisting only of spaces and/or tabs) and lines
starting with zero or more spaces or tabs plus a double quote are
comments; the rest are ex-commands (which don't have to start with a
colon). ":#" is synonymous with ":number" so Vim tries to execute your
first line as the command ":number!/usr/bin/vim -S". Now the ":number"
command doesn't accept a bang (there is no ":number!" command), so you
get an error.
So... if it's an error, and we know it's an error, and will always be an
error (at least at the present)... is in unreasonable to make '#!.*', as
the first line of a '-S' script, be ignored?
*I* thought it was a reasonable suggestion...
--
Matthew
DOS Attack: See America Online -- my college room mate