dotfiles and related syncing scripts
Vim script Shell Haskell Python CoffeeScript Makefile Other
Latest commit f0fe95f Oct 18, 2016 Nicola Paolucci [vim] Spelling updates
Failed to load latest commit information.
.archive Archive older dot files Apr 23, 2015
.atom [atom] Telemetry consent no Oct 18, 2016
.bin Helper to reset docker images Oct 18, 2016
.vim [vim] Spelling updates Oct 18, 2016
doc Squashed '.vim/bundle/unimpaired/' content from commit 11dc568 Sep 21, 2016
plugin Squashed '.vim/bundle/unimpaired/' content from commit 11dc568 Sep 21, 2016
.atlassian [bashrc] added .atlassian specific aliases Mar 24, 2013
.bash_profile Changed .bash_profile to a symlink to .bashrc Feb 19, 2011
.bashrc [bashrc] Add gocd() function Sep 21, 2016
.gemrc no compilation of docs when installing gems Jul 3, 2011
.git-sendemail.example [gitconfig] Externalize sendemail configuration to .git-sendemail Apr 6, 2016
.gitconfig [gitconfig] Add undo alias Sep 21, 2016
.gitignore Squashed '.vim/bundle/unimpaired/' content from commit 11dc568 Sep 21, 2016
.gtkrc-2.0 gtkrc: solve ugly look of eclipse in dwm Apr 16, 2012
.hgrc hgrc: fixed reset aliases Apr 25, 2012
.inputrc [bashrc] enhance bash vim mode with awesome commands Jan 13, 2014
.liquidprompt [liquidprompt] fix missing closing fi Feb 18, 2016
.osx [osx] Tweaks to OSX setup to review Oct 18, 2016
.screenrc Archive older dot files Apr 23, 2015
.slate [slate] Add two new center layouts Apr 15, 2015
.subtrees Fix .subtrees list Jul 27, 2015
.tmux.conf [tmux] Comment out status-utf8 Sep 21, 2016
.vimrc [vimrc] Move to 8.0, Remove Pathogen, fix windows shortcuts Sep 21, 2016
README Update expanded url Feb 17, 2016
README.markdown Squashed '.vim/bundle/unimpaired/' content from commit 11dc568 Sep 21, 2016



Much of unimpaired.vim was extracted from my vimrc when I noticed a pattern: complementary pairs of mappings. They mostly fall into four categories.

There are mappings which are simply short normal mode aliases for commonly used ex commands. ]q is :cnext. [q is :cprevious. ]a is :next. [b is :bprevious. See the documentation for the full set of 20 mappings and mnemonics. All of them take a count.

There are linewise mappings. [<Space> and ]<Space> add newlines before and after the cursor line. [e and ]e exchange the current line with the one above or below it.

There are mappings for toggling options. [os, ]os, and cos perform :set spell, :set nospell, and :set invspell, respectively. There's also l (list), n (number), w (wrap), x (cursorline cursorcolumn), and several others, plus mappings to help alleviate the set paste dance. Consult the documentation.

There are mappings for encoding and decoding. [x and ]x encode and decode XML (and HTML). [u and ]u encode and decode URLs. [y and ]y do C String style escaping.

And in the miscellaneous category, there's [f and ]f to go to the next/previous file in the directory, and [n and ]n to jump between SCM conflict markers.

The . command works with all operator mappings, and will work with the linewise mappings as well if you install repeat.vim.


If you don't have a preferred installation method, I recommend installing pathogen.vim, and then simply copy and paste:

cd ~/.vim/bundle
git clone git://

Once help tags have been generated, you can view the manual with :help unimpaired.


My non-US keyboard makes it hard to type [ and ]. Can I configure different prefix characters?

Not en masse, but you can just map to [ and ] directly:

nmap < [
nmap > ]
omap < [
omap > ]
xmap < [
xmap > ]

Note we're not using the noremap family because we do want to recursively invoke unimpaired.vim's maps.

There are also <Plug> maps if you want a more granular approach.


See the contribution guidelines for pathogen.vim.


Like unimpaired.vim? Follow the repository on GitHub and vote for it on And if you're feeling especially charitable, follow tpope on Twitter and GitHub.


Copyright (c) Tim Pope. Distributed under the same terms as Vim itself. See :help license.