Perché la directory di lavoro corrente in vim è diversa da quella in cui è stato avviato vim?

Aug 21 2020

vim mostra una directory di lavoro corrente diversa da quella con cui ho avviato vim dalla riga di comando. Il problema scompare se corro senza il mio .vimrc( vim -u NONE). Come posso eseguire il debug di questo per capire perché sta accadendo?

$ pwd /Users/rbednark/Dropbox/git/quizme_personal_files/bin $ vim --noplugin
:pwd 
/Users/rbednark/Dropbox/git/quizme_personal_files/bin
:edit settings.sh
:pwd 
/Users/rbednark/quizme-read-only-prod
(expected: 
  /Users/rbednark/Dropbox/git/quizme_personal_files/bin
 actual: 
  /Users/rbednark/quizme-read-only-prod
)

Il problema scompare se non utilizzo il mio .vimrc:

$ vim -u NONE

Appunti:

  • :set autochdir? uscite noautochdir
  • :verbose set autochdir? uscite noautochdir
  • :!pwded :pwdentrambi generano la stessa directory
  • Il problema si verifica anche con vim --noplugin
  • Io ho recentemente aggiornato vime python(via brew upgrade).
  • Ho Non cambiato .vimrcultimamente (altro che aggiungere qualche commento). È sotto il controllo della versione in git, quindi ho confermato che queste sono state le uniche modifiche.
  • Io ho installato e aggiornato miei plugin con vundle ( :VundleInstalle :VundleUpdate).
  • Io ho apportato alcune modifiche al mio .bashrcma nulla che penso che avrebbe cambiato il comportamento vim.
  • Sistema operativo: macOS Mojave 10.14.6
  • vim: 8.2 (12 dicembre 2019, compilato il 20 agosto 2020 22:44:15) Compilato da Homebrew

EDIT: inizialmente pensavo che fosse dovuto al fatto :edit other-file, ma ora lo vedo solo modificando un singolo file, quindi ho modificato quanto sopra per rimuovere quell'aspetto non necessario.

Risposte

1 RobBednark Aug 23 2020 at 19:22

Motivo : mi aveva fatto un :lcdcerto punto, e la mia .vimrcha autocmds per mkviewe loadviewquando si lascia e inserendo un buffer, in modo da modificare il file di nuovo stava facendo una :lcdper l'altra directory.

Soluzioni:

opzione 1 - cambia la directory di lavoro corrente nella directory del file in fase di modifica e salva:

cd %:p:h
:wq

opzione 2 : rimuovi il file di visualizzazione corrispondente, ad es.

$ rm ~/.vim/view/*myfile*

Come ho risolto / eseguito il debug:
ho diviso in due il mio .vimrcfile per determinare la linea incriminata, che era:

autocmd BufWinEnter * silent! loadview

Ciò indicava che era dovuto a una vista che veniva caricata. Ho quindi visualizzato il viewfile corrispondente ~/.vim/viewe ho cercato il nome della directory, che ha prodotto questa riga:

lcd ~/quizme-read-only-prod

Vedi anche: Directory di lavoro diversa dalla directory file corrente?