Wie stelle ich das Arbeitsverzeichnis / das aktuelle Verzeichnis in Vim ein?


108

Wenn ich also mit dem Befehl: e eine neue Datei erstellen möchte, möchte ich nicht den gesamten Pfad angeben, sondern nur den neuen Dateinamen. Kann es gemacht werden?

Antworten:


143

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 %:hwelches 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.


13
Wenn Sie mehrere Fenster verwenden, können Sie sogar Folgendes verwenden: lcd, um das Verzeichnis nur für das aktuelle Fenster zu ändern.
Nutzlos

1
@ Nutzlos: interessant ... Ich glaube nicht, dass ich das jemals wollen würde, aber ich nehme an, das ist Geschmackssache. Danke für die Information.
Falstro

3
Ich versuche herauszufinden, was%: h bedeutet, irgendeine Hilfe?
Michael

10
@Michael %übersetzt in den aktuellen Dateinamen einschließlich Pfad, :fügt Modifikator hinzu, hist Kopf, dh der Pfad bis zum letzten Pfadtrennzeichen, das den Dateinamen selbst ausschließt.
Falstro

@falstro, wissen Sie, wie: Der Befehl cd kann auf alle Fenster innerhalb derselben vim-laufenden Instanzen angewendet werden? Beispiel: bei Verwendung von split: sp
mgouin

15

Wenn Sie das Dateisystem mit dem netrw-Datei-Explorer durchsuchen, können Sie das aktuelle Verzeichnis durch Drücken der Taste c festlegen.


Verwenden Sie diese Option auch set autochdir, um den 'c' keyTake-Effekt in der Shell zu erzielen, damit Sie ihn !command args unter geändertem Verzeichnis verwenden können.
Pimgeek

9

Versuchen Sie, set autochdirzu Ihrem hinzuzufügen .vimrc. Wenn Sie es nur einmal ändern möchten, verwenden Sie :cd(oder :cd!erzwingen Sie es).


1
Die Hilfe sagt, dass dies einige Plugins kaputt macht (ich weiß nicht welche), also habe ich die Vorsichtsmaßnahme getroffen, Mapping in meine .vimrc hinzuzufügen: cnoremap cd. lcd %:p:hund nnoremap ,cd :cd %:p:h<CR>:pwd<CR>stattdessen
ErichBSchulz

Verwenden Sie dazu auch den 'c' keyNetrw-Datei-Explorer.
Pimgeek

3

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!


2

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, netrwdass das Browserverzeichnis mit dem aktuellen Verzeichnis identisch bleibt.


Dies scheint ein äquivalentes Verhalten zu haben wie: lcd für jede Änderung des netrw-Ordners. Haben Sie eine Idee, wie diese Einstellung stattdessen einer CD entsprechen könnte (Verzeichnis für alle Fenster ändern)? Vielen Dank!
mgouin

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.