Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A Vim plugin for managing three-way merges.
Python CSS VimL JavaScript Shell
Tag: v0.0.2

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


This plugin is still under active development.

It is not even remotely ready yet.

Lots of things are unimplemented.

It will probably eat your data.

Seriously. If you use it and complain about it eating your data I am going to make fun of you on Twitter.

Threesome is a Vim plugin for resolving conflicts during three-way merges. It's designed to be used as a merge tool for version control systems like Mercurial and Git.

Source (Mercurial): Source (Git): Issues: License: MIT X11 Full Documentation: :help threesome


Vim 7.3+ compiled with Python 2.5+ support.

Yes, that's some (relatively) new stuff. No, I'm not going to support anything less than that.

Threesome is a merge tool which means you'll be working with it on your development machine, not over SSH on your servers.

If you can't be bothered to run up-to-date versions of your tools on your main development machine, I can't be bothered to clutter the codebase to support you. Feels bad, man.


Use Pathogen to install the plugin.

Build the docs:

:call pathogen#helptags()

Add it as a merge tool for your VCS of choice:

Mercurial: add the following lines to ~/.hgrc:

threesome.executable = mvim
threesome.args = -f $base $local $other $output -c 'ThreesomeInit'
threesome.premerge = keep
threesome.priority = 1

Git: add the following lines to ~/.gitconfig:

tool = threesome

[mergetool "threesome"]
cmd = "mvim -f $BASE $LOCAL $REMOTE $MERGED -c 'ThreesomeInit'"
trustExitCode = true

Note: replace mvim with gvim if you're on Linux, or just plain vim if you prefer to keep the editor in the console.

More Information

Read the full documentation to learn more :help threesome

Something went wrong with that request. Please try again.