Ich befinde mich an der Position, an der ich eine neue Datei im selben Verzeichnis erstellen möchte wie die geöffnete Datei. Wie erstelle ich eine neue Datei im Verzeichnis der geöffneten Datei in vim? Gibt es auch einen Ort, an dem ich diese Dinge selbst lernen kann? Googeln hat nicht geholfen.
90
Antworten:
In Vim werden neue Dateien erstellt, wie vorhandene Dateien bearbeitet werden, und zwar über Befehle wie
:edit filename
oder:split filename
. Um sie auf der Festplatte zu speichern, müssen Sie (optional Inhalte eingeben und) über beibehalten:write
.Wie eine Eingabeaufforderung hat Vim eine Vorstellung vom aktuellen Verzeichnis (
:pwd
listet es auf). Alle Dateipfade sind relativ dazu. Sie müssen den Pfad zu Ihrer aktuellen Datei nicht duplizieren, es gibt einige nette Verknüpfungen für sie:%
Verweist auf die aktuelle Datei,:h
ist ein Modifikator für ihr Verzeichnis, abzüglich des Dateinamens (vgl.:help filename-modifiers
). So,erstellt eine neue Datei mit dem Namen
filename
im selben Verzeichnis wie die aktuell geöffnete Datei und schreibt sie.Alternativ möchten einige Leute, dass Vim immer in das Verzeichnis der aktuellen Datei wechselt. Dies kann durch Platzieren konfiguriert werden
in Ihre
~/.vimrc
Datei (die beim Start von Vim gelesen wird). Dann wird oben einfachSchließlich hat Vim eine großartige eingebaute
:help
. Lerne zu navigieren und zu suchen!quelle
autochdir
ist leider schuppig und ich stellte fest, dass ich mich nicht darauf verlassen konnte. Stattdessen habe ich ein Autocmd in mein vimrc eingefügt:autocmd BufEnter * silent! lcd %:p:h:gs/ /\\ /
Sie sollten es mit dem Plugin "nerdtree" versuchen. Im Nerdtree-Fenster haben Sie die Taste m eingegeben, und die Auswahlmöglichkeiten für den Dateivorgang werden angezeigt
quelle
Wenn Sie eine neue Datei erstellen und diese auch im Fenster neben Ihrer aktuellen Datei anzeigen möchten, können Sie Folgendes versuchen:
Das
vsp
steht fürvertical split
und teilt den Bildschirm in zwei Hälften, wobei eine Ihre aktuelle Datei und die andere Ihre neue Datei zeigt (funktioniert auch mit justsp
, was eine horizontale Aufteilung ist).Gemäß dem obigen Kommentar von @ MartinLyne wird die Datei im Verzeichnis der Datei erstellt, in der Sie sie geöffnet haben
vim
. Um dies anzupassen, können Sie das aktuelle Arbeitsverzeichnis wie folgt ändern:Dieser Befehl ändert das aktuelle Arbeitsverzeichnis in das Verzeichnis der aktiven Datei. Wenn Sie also den
vsp
Befehl (oder einen der oben genannten Befehle) ausführen, wird die Datei in diesem Verzeichnis erstellt.quelle
Wenn Sie vim an einem nicht vorhandenen Ort wie geöffnet haben
$ vim /etc/<some_folder/<next_folder>/file.cfg
Um dann ein neues Verzeichnis zu erstellen, während Sie sich in vim befinden, führen Sie es einfach im normalen Modus aus
:! mkdir -p /etc/<some_folder/<next_folder>
und speichern Sie dann Ihr Dokument wie gewohnt:w :x ZZ
(was auch immer Sie möchten).das ist es
quelle
Das ist für Gvim! Geben Sie dies ein, um das aktuelle Verzeichnis anzuzeigen.
dann ändern Sie es mit
Speichern oder erstellen Sie dort eine neue Datei
Jetzt sehen Sie noch einmal die Datei
quelle
Ich bin ziemlich spät zur Party, aber eine andere Möglichkeit ist, NERDtree mit
:E
oder:Explore
(oder seinen Aufteilungsalternativen:Vexplore
/:Sexplore
==:Vex
/:Sex
) zu öffnen .In NerdTree können Sie eine neue Datei mit erstellen
%
und den Namen eingeben . Die Datei wird automatisch geöffnet und nach dem:w
Speichern erstellt.quelle