# HG changeset patch # User Steve Losh # Date 1352575315 18000 # Node ID 78f061a9fff817e7349d23e0e193b4ff4b98cad3 # Parent dc6a6332b28127a73c5c6f1b79f94c1555387597 Proof 0-2 diff -r dc6a6332b281 -r 78f061a9fff8 chapters/00.markdown --- a/chapters/00.markdown Sat Nov 10 13:45:43 2012 -0500 +++ b/chapters/00.markdown Sat Nov 10 14:21:55 2012 -0500 @@ -3,30 +3,33 @@ To use this book you should have the latest version of Vim installed, which is version 7.3 at the time of this writing. New versions of Vim are almost always -backwards-compatible, so everything in this book should work just fine with -anything after 7.3 too. +backwards-compatible, so everything in this book should work fine with anything +after 7.3 too. -You should be comfortable editing files in Vim. - -You should know basic Vim terminology like "buffer", "window", "normal mode", -"insert mode" and "text object". +Nothing in this book is specific to console Vim or GUI Vims like gVim or MacVim. +You can use whichever you prefer. -If you're not at that point yet go through the `vimtutor` program, use Vim -exclusively for a month or two, and come back when you've got Vim burned into -your fingers. +You should be comfortable editing files in Vim. You should know basic Vim +terminology like "buffer", "window", "normal mode", "insert mode" and "text +object". -You should have some programming experience. If you've never programmed before -check out [Learn Python the Hard Way](http://learnpythonthehardway.org/) first -and come back to this book when you're done. +If you're not at that point yet you should go through the `vimtutor` program, +use Vim exclusively for a month or two, and come back when you've got Vim burned +into your fingers. + +You'll also need to have some programming experience. If you've never +programmed before check out [Learn Python the Hard +Way](http://learnpythonthehardway.org/) first and come back to this book when +you're done. Creating a Vimrc File --------------------- -If you already know what a vimrc file is and have one, go on to the next +If you already know what a `~/.vimrc` file is and have one, go on to the next chapter. -A vimrc file is a file you create that contains some Vimscript code. Vim will -automatically run the code inside this file every time you open Vim. +A `~/.vimrc` file is a file you create that contains some Vimscript code. Vim +will automatically run the code inside this file every time you open Vim. On Linux and Mac OS X this file is located in your home directory and named `.vimrc`. diff -r dc6a6332b281 -r 78f061a9fff8 chapters/01.markdown --- a/chapters/01.markdown Sat Nov 10 13:45:43 2012 -0500 +++ b/chapters/01.markdown Sat Nov 10 14:21:55 2012 -0500 @@ -1,48 +1,48 @@ Echoing Messages ================ -The first piece of Vimscript we'll look at is `echom`. +The first pieces of Vimscript we'll look at are the `echo` and `echom` commands. -You can read the full documentation for the command by running `:help echom` in -Vim. As you go through this book you should try to read the `:help` for every -new command you encounter to get a better understanding of how to use each one. +You can read their full documentation by running `:help echo` and `:help echom` +in Vim. As you go through this book you should try to read the `:help` for +every new command you encounter to learn more about them. -Run the following command: +Try out `echo` by running the following command: :::vim :echo "Hello, world!" -You should see `Hello, world!` appear at the bottom of the window. +You should see "Hello, world!" appear at the bottom of the window. Persistent Echoing ------------------ -Now run the following command: +Now try out `echom` by running the following command. :::vim :echom "Hello again, world!" -You should see `Hello again, world!` appear at the bottom of the window. +You should see "Hello again, world!" appear at the bottom of the window. -To see the difference between these two commands, run one more new command: +To see the difference between these two commands, run the following: :::vim :messages -You should see a list of messages. `Hello, world!` will *not* be in this list, -but `Hello again, world!` *will* be in it. +You should see a list of messages. "Hello, world!" will *not* be in this list, +but "Hello again, world!" *will* be in it. -When you're writing more complicated Vim scripts later in this book you may find +When you're writing more complicated Vimscript later in this book you may find yourself wanting to "print some output" to help you debug problems. Plain old -`:echo`will print output, but it will often disappear by the time your script is -done. Using `:echom` will save the output and let you run `:messages` to view -it later. +`:echo` will print output, but it will often disappear by the time your script +is done. Using `:echom` will save the output and let you run `:messages` to +view it later. Comments -------- -Before we move on we should mention comments. When you write Vimscript code (in -your `~/.vimrc` file or another one) you can add comments with the `"` +Before moving, let's look at how to add comments. When you write Vimscript code +(in your `~/.vimrc` file or any other one) you can add comments with the `"` character, like this: :::vim @@ -50,7 +50,7 @@ nnoremap za This doesn't *always* work (that's one of those ugly corners of Vimscript), but -in most cases it does, and we'll talk about when it won't (and why that +in most cases it does. Later we'll talk about when it won't (and why that happens). Exercises @@ -62,5 +62,5 @@ Read `:help messages`. -Add a line to your vimrc file that displays a friendly ASCII-art cat (`>^.^<`) -whenever you open Vim. +Add a line to your `~/.vimrc` file that displays a friendly ASCII-art cat +(`>^.^<`) whenever you open Vim. diff -r dc6a6332b281 -r 78f061a9fff8 chapters/02.markdown --- a/chapters/02.markdown Sat Nov 10 13:45:43 2012 -0500 +++ b/chapters/02.markdown Sat Nov 10 14:21:55 2012 -0500 @@ -6,22 +6,29 @@ There are two main kinds of options: boolean options (either "on" or "off") and options that take a value. +Boolean Options +--------------- + Run the following command: :::vim :set number -Line numbers should appear in Vim. Now run this: +Line numbers should appear on the left side of the window if they weren't there +already. Now run this: :::vim :set nonumber -The line numbers should disappear. `number` is a boolean option -- it can be -off or on. You turn it "on" by running `:set number` and "off" with `:set +The line numbers should disappear. `number` is a boolean option: it can be off +or on. You turn it "on" by running `:set number` and "off" with `:set nonumber`. -Toggling Options ----------------- +All boolean options work this way. `:set ` turns the option on and `:set +no` turns it off. + +Toggling Boolean Options +------------------------ You can also "toggle" boolean options to set them to the *opposite* of whatever they are now. Run this: @@ -49,8 +56,8 @@ :set nonumber :set number? -Notice how the first `:set number?` command displayed `number` while the second -displayed `nonumber`. +Notice how the first `:set number?` command displayed "number" while the second +displayed "nonumber". Options with Values ------------------- @@ -65,7 +72,8 @@ :set numberwidth? The `numberwidth` option changes how wide the column containing line numbers -will be. +will be. You can change non-boolean options with `:set =`, and +check them the usual way (`:set ?`). Try checking what a few other common options are set to: @@ -77,16 +85,20 @@ Setting Multiple Options at Once -------------------------------- -Finally, you can specify more than one option in the same `:set` command. Try -running this: +Finally, you can specify more than one option in the same `:set` command to save +on some typing. Try running this: :::vim + :set numberwidth=2 + :set nonumber :set number numberwidth=6 +Notice how both options were set and took effect in the last command. + Exercises --------- -Read `:help 'number'` (note the quotes). +Read `:help 'number'` (notice the quotes). Read `:help relativenumber`. @@ -98,4 +110,4 @@ Read `:help matchtime`. -Add a few lines to your vimrc file to set these options however you like. +Add a few lines to your `~/.vimrc` file to set these options however you like.