Monday, October 28, 2013

Pathogen Makes Plugin Management Easy

I have been using Pathogen for installing new plugins whenever possible for quite a while now. In my opinion, Pathogen is the simplest path to extending your existing Vim runtime with additional functionality.

You can install Pathogen with the following command (assuming you're using a Linux operating system).

mkdir -p ~/.vim/autoload ~/.vim/bundle; \
curl -Sso ~/.vim/autoload/pathogen.vim \
https://raw.github.com/tpope/vim-pathogen/master/autoload/pathogen.vim
Once Pathogen is installed, enable it by adding the following to your .vimrc.
execute pathogen#infect()
Once Pathogen is enabled, you can install a wealth of plugins by simply cloning them to your ~/.vim/bundle directory. As an example, you can install the vim-sensible plugin as follows.
cd ~/.vim/bundle
git clone git://github.com/tpope/vim-sensible.git

Friday, October 25, 2013

The Wonderful "F" Key

If you press the "f" key in normal mode, Vim will move the cursor forward to whatever character you input after "f" is pressed. As an example, consider the following line:

a quick brown fox

If the cursor was at the absolute beginning of the line, and you pressed "fb" in normal mode, Vim would move the cursor so that it was positioned over the "b" in "brown".

If you press "F", Vim will move the cursor backwards instead of forward. Given the previous sentence, if pressed "Fq", and the cursor was at the end of the line, it would move to the "q" in "quick".

Thursday, October 24, 2013

Back From The Dead

After an almost four year hiatus, I've decided to bring this blog back from the dead. Looking over the last decade, my career as a programmer has been an interesting and challenging endeavor, and over that time period, Vim has been a constant in my professional toolbox. There are countless work days where Vim has saved me hours of pushing bytes around the screen, and a lesser editor would have fallen short of the task.

With this in mind, I feel that I still have a good deal of useful information to share. With the advent of Github and other powerful open source tools, the landscape of the hacker community has evolved. The tools are better, and with reasonable motivation, it feels like any problem is solvable.

In the midst of all of this change, I still believe that Vim is the best tool for the admittedly rote task of munging source code into the best state one can manage given the time constraints and project demands that many of us face.

In lieu of my longstanding love for this text editor (and Linux tools in general), I will resume posting tips to this blog (as they come to mind) in hopes that they can on occasionally help all of you make your hardest problems a little easier and your easy problems a little more fun. Happy Vimming! -Travis

Wednesday, December 9, 2009

Vimgrep Tips

I've mentioned vimgrep in a previous post, but I neglected to mention a few useful flags that can be used in conjunction with it.

If you apply the 'g' flag to your vimgrep, it will return all matches instead of just one match per line.

:vimgrep /foo/g **/*

If you apply the 'j' flag, Vim will not automatically jump to the first match.

:vimgrep /foo/j **/*

Thanks to Chanel for pointing these out.

Thursday, December 3, 2009

More on Text States

A few people have asked me for more information on text states. An anonymous reader contributed the following in the comments of my previous post on the topic.

Using g+ and g- is very different than using u and ^r.

Try following:
* Create new file
* (in normal mode) Type iOne - Esc
* Type oTwo - Esc
* Type oThree - Esc
* Type oFour - Esc
* Type oFive - Esc
* Type 2u
* Type oSix - Esc
* Type oSeven - Esc

Now you have an undo tree with 2 branches. Typing u only goes up the last branch. Using g- goes up by time - branch doesn't matter here.

Have a look in :help usr_32.txt for good explanation of using the undo tree.

Thanks to whomever contributed the tip!

Wednesday, December 2, 2009

Indent From Normal Mode

From normal mode, pressing == will indent the current line.

Tuesday, December 1, 2009

Starting on a Specific Line

An anonymous reader writes:

You can open a file on the command line and automatically put the cursor on the last line by typing:

vim + file

If you want vim to start at a specific line you can do the following instead:

vim +LINENUMBER file

Thanks for the tip!