2016-11-20 3 views
0

EDITDirectory-Änderungen nach dem Öffnen bestimmter Dateien

Das Szenario geändert. Entschuldigen Sie, wenn Sie die Frage etwas zu früh stellen.

beim Öffnen einer Datei (vim filename.ext oder :e filename.txt, etc.), wenn die CWD ~/Sites/A ist, Vim Änderungen an anderen CWD (~/Sites/B).

Ich fand heraus, dass vim tut dies wegen einer Datei in meinem ~/.vim/view/ Ordner, genannt ~=+Sites=+B=+src=+filename.txt=.

Die Datei innerhalb ~/.vim/view/ enthält:

let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0 
argglobal 
setlocal fdm=manual 
setlocal fde=0 
setlocal fmr={{{,}}} 
setlocal fdi=# 
setlocal fdl=0 
setlocal fml=1 
setlocal fdn=20 
setlocal fen 
silent! normal! zE 
let s:l = 200 - ((13 * winheight(0) + 11)/23) 
if s:l < 1 | let s:l = 1 | endif 
exe s:l 
normal! zt 
200 
normal! 030| 
lcd ~/Sites/B 
let &so = s:so_save | let &siso = s:siso_save 
doautoall SessionLoadPost 
" vim: set ft=vim : 

Warum ist die Linie lcs ~/Sites/B in dieser Datei stehen? Innerhalb gab es nie eine Datei namens filename.ext.

Aus Gründen der Vollständigkeit, das ist meine Frage, bevor ich den Fehler lokalisiert:

Wenn ich vimgrep etwas in einer Code-Basis in ~/Sites/a befindet (zB :vimgrep DateCell src/**/*) in ein anderes Verzeichnis aktuelle Arbeitsverzeichnis Änderungen des vim ~/Sites/B .

Jeder nachfolgende Aufruf an vimgrep oder einen anderen Arbeitsverzeichnis-bewussten Befehl schlägt fehl oder gibt falsche Ergebnisse zurück, da es im Verzeichnis ~/Sites/B arbeitet.

Was könnte das verursachen?

Was ich tun, um den Fehler/falsches Verhalten zu erreichen:

  1. cd ~/Sites/A
  2. vim
  3. vimgrep something src/**/*
  4. :!pwd zeigt ~/Sites/B
  5. :quit
  6. pwd 01 zeigt

EDIT

Es stellt sich heraus, dass die Verzeichnisänderung geschieht auch, wenn ich nicht vimgrep verwenden. Ich weiß immer noch nicht, was den Fehler verursacht.

BTW: Es ist immer das gleiche Verzeichnis (~/Sites/B), vim ändert sich zu. Egal in welchem ​​Verzeichnis ich arbeite.

Vim Version: 8.0.2
OS Version: OS X 10.10.5

+0

Es passiert, wenn ich eine Datei mit NERDTree öffnen. Aber nicht immer. Nur bei einigen Dateien. –

+0

'vimgrep' macht das nicht, wie Sie bemerkt haben; Möglicherweise möchten Sie den Fragentitel aktualisieren. Es ist wahrscheinlich, dass ein Plugin, das Sie verwenden, dies tut, oder Sie haben eine 'cd' oder' lcd' irgendwo in Ihrer '.vimrc'. Versuche Plugins zu entfernen, um den Schuldigen zu identifizieren. –

+0

Danke, Jim. Ich habe alle Plugins außer NERDTree deaktiviert. Problem bleibt. Ich habe herausgefunden, dass die Ursache NICHT so ist, wie in meiner Frage beschrieben. Aber beim Öffnen einer Datei von NERDTree. Was soll ich mit der falschen Frage machen? Irgendjemand eine Idee? Das Ändern des Titels wird nicht ausreichen. Soll ich für löschen und eine neue Frage erstellen? –

Antwort

0

Die ~=+Sites=+B=+src=+filename.txt= ist eine gespeicherte Ansicht für ~/Sites/B/src/filename.txt.Die Frage ist: Warum wird es geladen, wenn Sie eine Datei aus einem anderen Verzeichnis öffnen (mit dem gleichen Namen oder einem anderen, nicht ganz klar aus Ihrer Frage)?

Normalerweise müssen Ansichten manuell erstellt und wiederhergestellt werden. Sie scheinen etwas in Ihrer Konfiguration (:autocmd) zu haben, dass automatisch gespeicherte Ansichten wiederherstellt, und dass etwas einen Fehler in der Pfadsuche hat (oder, weniger wahrscheinlich, Ihr Dateisystem ist durcheinander und Sie haben dort Symlinks). Finde das und schalte es aus/repariere es.

Verwandte Themen