Skip to content

Instantly share code, notes, and snippets.

@mattratleph
Forked from roothybrid7/vimdiff_cheet.md
Last active November 27, 2024 14:40
Show Gist options
  • Save mattratleph/4026987 to your computer and use it in GitHub Desktop.
Save mattratleph/4026987 to your computer and use it in GitHub Desktop.
vimdiff cheat sheet

vimdiff cheat sheet

##git mergetool

In the middle file (future merged file), you can navigate between conflicts with ]c and [c.

Choose which version you want to keep with :diffget //2 or :diffget //3 (the //2 and //3 are unique identifiers for the target/master copy and the merge/branch copy file names).

:diffupdate (to remove leftover spacing issues)
:only (once you’re done reviewing all conflicts, this shows only the middle/merged file)
:wq (save and quit)
git add .
git commit -m “Merge resolved”

If you were trying to do a git pull when you ran into merge conflicts, type git rebase –continue.

##vimdiff commands

]c :        - next difference
[c :        - previous difference
do          - diff obtain
dp          - diff put
zo          - open folded text
zc          - close folded text
:diffupdate - re-scan the files for differences
@MikaelElkiaer
Copy link

Could anyone tell me how to bring changes from multiple files?
:diffget will only bring from one file, and when doing :diffget multiple times it will overwrite the previous pick.
I often need this when consolidating changes where I need from both local and remote, e.g. for import statements or package references.

@harisund
Copy link

harisund commented Jan 2, 2020

One useful vimdiff related feature I found here

You can influence how many identical lines are kept around changes (default: 6 lines above and below) via the context value of the diffopt option. So, to completely fold all identical lines:

:set diffopt+=context:0

Another useful one from here

windo diffthis
diffoff

If you have files open in splits etc and want to activate vim's diff mode or deactivate

@igorcafe
Copy link

igorcafe commented Dec 1, 2021

I'm really struggling to find it, so...
Is there a vimdiffrc file or something?
I would like to configure the colorscheme and other stuffs

@MikaelElkiaer
Copy link

@igoracmelo AFAIK you just set it in your .vimrc. Here for instance is a color fix in my config:
https://github.com/MikaelElkiaer/dotfiles/blob/74b978d2ba94e93bb6e95e933f54d1d4e07edcbb/.vimrc#L87-L90

Or, alternatively, setting a theme specific for vimdiff:
https://github.com/MikaelElkiaer/dotfiles/blob/9f5544dc252f74ca8b1f46cec27df7d811a91ae8/.vimrc#L43-L45

@CervEdin
Copy link

CervEdin commented May 8, 2022

Another handy command :diffoff/:diffthis allows you to turn the diff of a window off/on. Usefull when comparing base with either remote/local

@kellymatiq
Copy link

Useful alias for .gitconfig

[alias]
  vimdiff = difftool -y -t vimdiff

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment