Passer à la prochaine ligne inégalée avec vimdiff

8

Existe-t-il un moyen de passer à la prochaine ligne inégalée avec in vimdiff? Pas "passer à la ligne modifiée suivante", mais passer à la ligne suivante sans correspondance pour le fichier actuel.

Dans mon cas, j'essaie de comparer deux gros fichiers, dont l'un devrait être pratiquement un sous-ensemble de l'autre. Ce que je veux faire, c'est voir s'il y a des lignes dans le petit fichier qui manquent dans le gros fichier. J'ai pensé que je devrais pouvoir placer mon curseur dans le fichier plus grand, puis passer directement à l'annotation de ligne "manquante" suivante.


Il se trouve que les fichiers actuels en question sont triés, donc je peux probablement utiliser l'utilitaire de ligne de commande "comm" pour trouver les lignes manquantes, mais je me demandais s'il y avait un moyen facile de le faire dans vimdiff, en particulier si les lignes ne sont pas triés.

RM
la source
Que sont exactement les lignes inégalées? Lignes, qui sont ajoutées sur l'autre tampon?
Christian Brabandt du
@ChristianBrabandt Oui. Lignes qui se trouvent dans un fichier (tampon) qui ne sont pas dans l'autre fichier (tampon).
RM
et vous souhaitez passer aux lignes ajoutées dans l'autre tampon? (vous ne pouvez pas vous déplacer sur les lignes de remplissage supprimées)
Christian Brabandt

Réponses:

2

Si je comprends bien ce que vous voulez et que vous voulez trouver ces lignes, qui sont uniques dans un tampon et donc marquées comme "DiffAdd" dans l'autre tampon.

Malheureusement, il n'y a pas de façon native de le faire en utilisant la search()fonction, vous devez donc contourner la fonction suivante, qui fonctionne en recherchant une ligne, qui a la mise en évidence "DiffAdd".

function! NextChange()
    while search('^.*', 'w') > 0
        if synIDattr(diff_hlID(line('.'),col('.')), 'name') is# 'DiffAdd'
            break
        endif
    endwhile
endfunction
com! NextChange :call NextChange()
Christian Brabandt
la source
Cela fonctionne-t-il également pour les suppressions et les modifications?
Tom Hale
Vous devrez peut-être également rechercher la surbrillance «DiffChange»
Christian Brabandt