http://www.perlmonks.org?node_id=333748


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

You forgot a number of very important commands and distinctions:
  1. vi's regex language is very different than Perl's. It's much more akin to the shell command grep's. Specifically, there is no + and you only have back-references.
  2. Aliases:
    • Colon Mode:
      • :x is :wq
      • :NN moves you to the NNth line. :$ moves you to the bottom of the file.
      • :!asdf executes asdf in the shell.
      • :map X asdfasdf will map the key X to the key sequence asdfasdf. These are macros, to be used in Nav Mode. My favorites are:
        • v - :!perl -wc %^V^M (That's Ctrl-V, Ctrl-M.) - compile the current file in Perl.
        • V - :!%^V^M - Execute the current file.
        • q - :e #^V^M - Switch you to the last buffer. (Read up if you want to know what these are.)
    • Nav Mode
      • 0 is ^
      • z-z moves the screen to center on your line. z-Enter moves the screen so that your line is on the top. (There's on that does it for the bottom, but I never remember it.)
      • o inserts a new line below where you are and puts you in Insert Mode at the beginning of it. O does it for above.
      • w goes the beginning of the next word. b to the prior. e to the end of the current word.
      • J takes the next line and puts it at the end of the current line.

The reason to use vi is that, once you understand it, it's is extremely efficient to edit in. I found that my productivity in sheer editing is almost as fast as I think. (Which, granted, isn't that fast, but still!)

------
We are the carpenters and bricklayers of the Information Age.

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.