Requerido para escribir gvimdiff file1 .. \ .. \ .. \ file2 en diff correctamente

Aug 29 2020

Estoy tratando de diferenciar dos archivos usando gvimdiff file1 file2. Esto funciona en ciertas partes de mi sistema de archivos, pero si tengo varios directorios de profundidad, deja de funcionar. En su lugar, abrirá tres archivos y uno de los archivos diferenciados estará en un directorio duplicado anidado inexistente --- verá lo que quiero decir a continuación.

Por ejemplo, digamos que quiero abrir un archivo en el directorio c:\a\b\c\d\e\.

  1. Navego hasta ese directorio que contiene file1 y file2.
  2. Solo para verificarlo, dir muestra el contenido del directorio y file1 y file2 están presentes como se esperaba.
  3. Ejecuto el comando gvimdiff file1 file2.
  4. Se abren tres archivos, que se muestran a continuación.
1. c:\a\b\c\d\e\file1 (correct file in diff mode)
2. c:\a\b\c\d\e\c\d\e\file2 (non existent, blank, correctly named in diff mode)
         |_____|_____|--- Notice the duplicated part of the filepath!
3. c:\a\b\c\d\e\file2 (correct file, not in diff mode, not current buffer)

Si intento exactamente el mismo procedimiento, pero estoy dentro c:\users\my_name\, entonces todo funciona como se esperaba. Por ahora, he conseguido que las cosas funcionen utilizando

gvimdiff file1 ..\..\..\file2

y si voy una carpeta más profunda o menos profunda, tengo que agregar o eliminar una ..\para compensar.

¿Qué está pasando aquí y cómo puedo solucionarlo?

Respuestas

2 JDG Aug 29 2020 at 22:31

Recordé que puedo cargar vim sin ningún archivo vimrc usando este comando, lo que hizo que el problema desapareciera.

gvimdiff -u NONE file1 file2

Fui a mi vimrc y comenté las primeras 30 líneas, luego las primeras 60 líneas, y así sucesivamente hasta que el problema desapareció. La línea ofensiva en mi vimrc fue cd c:\a\b. (Estoy usando nombres ficticios para el sistema de archivos, por supuesto). Cambiando esta línea para autocmd VimEnter * cd c:\a\bsolucionar el problema. ¡Gracias @filbranden por la sugerencia !