Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I would like to be able to specify on bash command line set of keys that will vim execute on given file, just the same as I am doing it when manually editing, for instance, hypothetically:

vim myfile +'Gosome footer here<ESC>ggOsome header here<ESC>x'

I know that + executes Ex commands. Is there a way to do that ? Using vim only ofcourse.

share|improve this question
up vote 4 down vote accepted

You're close, just add normal in front of the commands:

vim -c 'normal Gosome footer here' -c 'normal ggOsome header here' -c x myfile

The argument given to -c is evaluated in command-mode, so to execute normal commands you need to prepend normal.

share|improve this answer
Thanks m8. Thats very close to what I want. Can't I use hotkeys ? '10-commands-limit' seems pretty low – majkinetor Dec 19 '12 at 14:08
@majkinetor: hotkeys? If you're generating commands to run, you could write them to a file and then execute vim with vim -c 'source cmdfile' myfile. You may also want to look up -s scriptin and -w scriptout or -W scriptout in the man page, they make it easy to repeat macros across many files. – Thor Dec 19 '12 at 14:47

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.