Necessario per scrivere gvimdiff file1 .. \ .. \ .. \ file2 in diff correttamente

Aug 29 2020

Sto cercando di diffondere due file usando gvimdiff file1 file2. Funziona in alcune parti del mio file system, ma se sono in profondità diverse directory, smette di funzionare. Invece, aprirà tre file e uno dei file diffed si troverà in una directory duplicata annidata inesistente --- vedrai cosa intendo di seguito.

Ad esempio, diciamo che voglio aprire un file nella directory c:\a\b\c\d\e\.

  1. Passo a quella directory contenente file1 e file2.
  2. Solo per controllare, dir mostra il contenuto della directory e file1 e file2 sono entrambi presenti come previsto.
  3. Eseguo il comando gvimdiff file1 file2.
  4. Vengono aperti tre file, mostrati di seguito.
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)

Se provo la stessa identica procedura, ma ci sto c:\users\my_name\, tutto funziona come previsto. Per ora, ho ottenuto che le cose funzionassero usando

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

e se vado a una cartella più profonda o meno profonda, devo aggiungere o rimuovere un ..\per compensare.

Cosa sta succedendo qui e come potrei risolverlo?

Risposte

2 JDG Aug 29 2020 at 22:31

Mi sono ricordato che posso caricare vim senza alcun file vimrc usando questo comando, che ha fatto scomparire il problema.

gvimdiff -u NONE file1 file2

Sono andato al mio vimrc e ho commentato le prime 30 righe, poi le prime 60 righe e così via fino alla scomparsa del problema. La linea offensiva nel mio vimrc era cd c:\a\b. (Sto usando nomi fittizi per il file system ovviamente.) Cambiando questa riga per autocmd VimEnter * cd c:\a\brisolvere il problema. Grazie @filbranden per il suggerimento !