Before we move on to learning more Vimscript, let's find a way to make it easier
to add new mappings to our ~/.vimrc
file.
Sometimes you're coding away furiously at a problem and realize a new mapping
would make your editing easier. You should add it to your ~/.vimrc
file right
then and there to make sure you don't forget, but you don't want to lose your
concentration.
The idea of this chapter is that you want to make it easier to make it easier to edit text.
That's not a typo. Read it again.
The idea of this chapter is that you want to (make it easier to (make it easier to (edit text))).
Let's add a mapping that will open your ~/.vimrc
file in a split so you can
quickly edit it and get back to coding. Run this command:
:nnoremap <leader>ev :vsplit $MYVIMRC<cr>
I like to think of this command as "edit my vimrc file".
$MYVIMRC
is a special Vim variable that points to your ~/.vimrc
file. Don't
worry about that for right now, just trust me that it works.
:vsplit
opens a new vertical split. If you'd prefer a horizontal split you
can replace it with :split
.
Take a minute and think through that command in your mind. The goal is: "open
my ~/.vimrc
file in a new split". Why does it work? Why is every single
piece of that mapping necessary?
With that mapping you can open up your ~/.vimrc
file with three keystrokes.
Once you use it a few times it will burn its way into your muscle memory and
take less than half a second to type.
When you're in the middle of coding and come up with a new mapping that would
save you time it's now trivial to add it to your ~/.vimrc
file.
Once you've added a mapping to your ~/.vimrc
file, it doesn't immediately take
effect. Your ~/.vimrc
file is only read when you start Vim. This means you
need to also run the command manually to make it work in the current session,
which is a pain.
Let's add a mapping to make this easier:
:nnoremap <leader>sv :source $MYVIMRC<cr>
I like to think of this command as "source my vimrc file".
The source
command tells Vim to take the contents of the given file and
execute it as Vimscript.
Now you can easily add new mappings during the heat of coding:
<leader>ev
to open the file.:wq<cr>
(or ZZ
) to write the file and close the split, bringing you
back to where you were.<leader>sv
to source the file and make our changes take effect.That's eight keystrokes plus whatever it takes to define the mapping. It's very little overhead, which reduces the chance of breaking focus.
Add mappings to "edit my ~/.vimrc
" and "source my ~/.vimrc
" to your
~/.vimrc
file.
Try them out a few times, adding dummy mappings each time.
Read :help myvimrc
.