b6dc13ada47e

Lolscoping.
[view raw] [browse files]
author Steve Losh <steve@stevelosh.com>
date Sun, 09 Oct 2011 23:00:11 -0400
parents 07cfd2d5141f
children a392a4b2a784
branches/tags (none)
files chapters/19.markdown chapters/20.markdown outline.org

Changes

--- a/chapters/19.markdown	Sun Oct 09 22:49:44 2011 -0400
+++ b/chapters/19.markdown	Sun Oct 09 23:00:11 2011 -0400
@@ -127,3 +127,6 @@
 
 Go back through your `~/.vimrc` file and undo the changes.  You should never use
 `let` if `set` will suffice -- it's harder to read.
+
+Read `:help registers` and look over the list of registers you can read and
+write.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/chapters/20.markdown	Sun Oct 09 23:00:11 2011 -0400
@@ -0,0 +1,36 @@
+Variable Scoping
+================
+
+So far Vimscript's variables may seem familiar if you come from a dynamic
+language like Python or Ruby.  For the most part variables act like you would
+expect, but Vim adds a certain twist to variables: scoping.
+
+Open two buffers in separate splits, then go into one of then and run the
+following commands:
+
+    :let b:hello = "world"
+    :echo hello
+
+As expected, Vim displays "world".  Now switch to the other buffer and run the
+echo command again:
+
+    :echo hello
+
+This time Vim throws an error, saying it can't find the variable.
+
+When we used `b:` in the variable name we told Vim that the variable `hello`
+should be local to the current buffer.
+
+Vim has many different scopes for variables, but we need to learn a little more
+about Vimscript before we can take advantage of the rest.  For now, just
+remember that when you see a variable that start with a character and a colon
+that it's describing a scoped variable.
+
+Exercises
+---------
+
+Skim over the list of scopes in `:help internal-variables`.  Don't worry if you
+don't know what some of them mean, just take a look and keep them in the back of
+your mind.
+
+
--- a/outline.org	Sun Oct 09 22:49:44 2011 -0400
+++ b/outline.org	Sun Oct 09 23:00:11 2011 -0400
@@ -18,8 +18,8 @@
 ** DONE basic status lines
 ** DONE a word on shortened command names
 * part 2 - programming in vimscript
-** TODO variables
-** variable scopes
+** DONE variables
+** DONE variable scopes
 ** conditionals
 ** comparisons
 ** functions