Hacker News new | ask | show | jobs
by jez 1882 days ago
When I find myself wanting a split diff in the terminal, I tend to gravitate towards just using Vim’s built in diff mode via vim-fugitive. I even have some git aliases that will open vim and and show fugitive diffs for every file changed on the current branch.

The I like this over fancy CLI diff viewers for a handful of reasons:

- It re-uses my editor config (no need to fuss with that tools ad hoc config format)

- I can navigate the diff with my editor’s navigation tools (expand or hide context lines, open/close/reorganize tabs, etc.)

- My editor’s language-aware tooling kicks in. I can jump to def, reveal types, and find all references while reading the diffs.

I wrote more about some of the specific workflows I use in this post, if you’re curious to level up from a CLI-only diff workflow:

https://blog.jez.io/cli-code-review/

There’s a time and a place for CLI-only diff viewers, and kudos to the author for building a tool they enjoy! I’ve just found that they fit into a sort of uncanny valley of simplicity and power for my needs.

1 comments

You and I have similar setups! I love it, but there's one thorn that I've not been able to figure out yet.

Have you (or anyone reading this) been able to figure out how to get diff-highlight to be more intelligent so that if 'foo' changes to "foo", the highlighter is smart enough to only highlight the quotes as changing, but not the word foo? (Though this example is trivial, any time you've got two changes on the same line, this issue occurs where everything in between those changes gets highlighted as well.) I noticed that other tools in this thread such as delta and banga don't suffer from this issue.

You can't configure diff-highlight to do that. It 'will find the common prefix and suffix of two lines, and consider everything in the middle to be "different".' [1]

To highlight only the quotes as changing, you need something else. On (Neo)Vim, for example, vim-gitgutter does this [2] (I'm the author).

[1] https://github.com/git/git/tree/master/contrib/diff-highligh... [2] https://github.com/airblade/vim-gitgutter/blob/master/autolo...

Thank you! I’ll check it out. I appreciate it!
gitgutter is amazing, btw. thank you.