Antworten:
Wie bereits vorgeschlagen, können Sie autochdir verwenden, das in das Verzeichnis der geöffneten Datei wechselt. Die andere Option ist
:cd mydirectory
Dadurch wird das Verzeichnis geändert. Dies kann ein absoluter oder relativer Pfad sein, :cd ..
der sich um eine Ebene nach oben bewegt. Oder Sie können verwenden, :cd %:h
welches auch in das Verzeichnis wechselt, in dem sich die aktuelle Datei befindet, ohne jedoch autochdir festzulegen.
:cd
wechselt das Verzeichnis in Ihr Ausgangsverzeichnis (oder druckt unter Windows das aktuelle Verzeichnis).
:cd -
ändert das Verzeichnis in das vorherige Verzeichnis, das Sie besucht haben.
%
übersetzt in den aktuellen Dateinamen einschließlich Pfad, :
fügt Modifikator hinzu, h
ist Kopf, dh der Pfad bis zum letzten Pfadtrennzeichen, das den Dateinamen selbst ausschließt.
Wenn Sie das Dateisystem mit dem netrw-Datei-Explorer durchsuchen, können Sie das aktuelle Verzeichnis durch Drücken der Taste c festlegen.
set autochdir
, um den 'c' key
Take-Effekt in der Shell zu erzielen, damit Sie ihn !command args
unter geändertem Verzeichnis verwenden können.
Versuchen Sie, set autochdir
zu Ihrem hinzuzufügen .vimrc
. Wenn Sie es nur einmal ändern möchten, verwenden Sie :cd
(oder :cd!
erzwingen Sie es).
cnoremap cd. lcd %:p:h
und nnoremap ,cd :cd %:p:h<CR>:pwd<CR>
stattdessen
'c' key
Netrw-Datei-Explorer.
Ich weiß nicht, was mit vim los ist. Ich möchte das Verzeichnis, in dem ich vim starte, als das aktuelle.
Ich habe den obigen Tipp zu autochd befolgt und ihn in meiner .vimrc auf noautcd gesetzt.
Ich habe es noch nicht getan, aber ich bin dabei, vim von nun an so zu starten:
vim —cmd 'cd `pwd`'
Dadurch bleibt es beim aktuellen Verzeichnis!
Mit netrw:
zusätzlich zum Drücken der cTaste zum Einstellen des aktuellen Verzeichnisses können Sie auch Folgendes eingeben:
let g:netrw_keepdir= 0
in deinem .vimrc
; Dies bedeutet, netrw
dass das Browserverzeichnis mit dem aktuellen Verzeichnis identisch bleibt.
Wenn Sie dies zu my .vimrc
hinzufügen, wird das Arbeitsverzeichnis von Vim automatisch in die aktuelle Datei geändert:
autocmd BufEnter * silent! :lcd%:p:h
set autochdir
macht das auch :-)