cursor-movement – Mover a la siguiente línea incomparable con vimdiff

Pregunta:

¿Hay alguna forma de pasar a la siguiente línea incomparable con in vimdiff? No "pasar a la siguiente línea modificada", sino pasar a la siguiente línea no coincidente del archivo actual.

En mi caso, estoy tratando de comparar dos archivos grandes, uno de los cuales debería ser prácticamente un subconjunto del otro. Lo que quiero hacer es ver si hay líneas en el archivo más pequeño que faltan en el archivo más grande. Pensé que debería poder colocar el cursor en el archivo más grande y luego saltar directamente a la siguiente anotación de línea "faltante".


Da la casualidad de que los archivos actuales en cuestión están ordenados, por lo que probablemente pueda usar la utilidad de línea de comando "comm" para encontrar las líneas que faltan, pero me preguntaba si hay una manera fácil de hacerlo en vimdiff, especialmente si las líneas no están ordenados.

Respuesta:

Si entiendo correctamente lo que quiere y quiere encontrar esas líneas, que son únicas en un búfer y, por lo tanto, están marcadas como "DiffAdd" en el otro búfer.

Desafortunadamente, no hay una forma nativa de hacerlo usando la función search() , por lo tanto, debe solucionarlo con la siguiente función, que funciona buscando una línea, que tiene el resaltado "DiffAdd".

function! NextChange()
    while search('^.*', 'w') > 0
        if synIDattr(diff_hlID(line('.'),col('.')), 'name') is# 'DiffAdd'
            break
        endif
    endwhile
endfunction
com! NextChange :call NextChange()

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım