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.


Best regards,
Tony.

Reply via email to