Да, Vim делает это, включая выделение текста, измененного в строке.
См. :h diff
и :h 08.7
для более подробной информации о том, как различать файлы.
Vim использует довольно простой алгоритм подсветки.
Он ищет в строке первый измененный символ, а затем последний измененный символ и просто выделяет все символы между ними.
Это означает, что вы не можете иметь несколько выделений на строку - многие решения по дизайну в Vim отдают приоритет эффективности.