Wie erstelle ich eine Datei mit dem Namen file2.ext, wenn sich mein Cursor in file2.ext befindet? Ein bisschen wie gfnur zum Erstellen neuer Dateien (dies ist eine hypothetische Situation, nur gedacht, dass sie eines Tages hilfreich sein könnte).
Es gibt jedoch eine reine Vim-Lösung, die plattformübergreifend portierbar ist. Die integrierte Funktion writefileschreibt zeilenweise eine Liste in eine Datei. Wenn die Eingabeliste leer ist, wird natürlich eine leere Datei erstellt. ( :help writefileEinzelheiten siehe .) Wir können diesen Nebeneffekt ausnutzen:
Ich nahm die ausgezeichnete Antwort von ib oben und erweiterte sie wie folgt. Mein Ziel war es, mit vim neue Markdown-Dateien zu erstellen, die für ein Wiki benötigt werden (in diesem Fall ein Gollum-Wiki).
Das Obige funktioniert wie in der Antwort angegeben. Zuerst dachte ich jedoch, dass es nicht funktioniert, weil ich das Öffnen der Datei in vim nicht wirklich gesehen habe. Wenn Sie das zweite Codebit unten verwenden, wird eine neue Datei geöffnet - das ist mehr, wonach ich gesucht habe. Also habe ich sie kombiniert und versucht:
map <leader>cf :e <cfile><cr>
Dies funktioniert jedoch nicht für ein Wiki, da beim Versuch, eine neue Datei im Wiki mit einer Syntax wie [[the-new-file]]der Wiki-Syntax zu erstellen, die Erweiterung der Datei in den Klammern nicht zulässig ist. Vim muss jedoch die Erweiterung kennen, wenn eine neue Datei erstellt wird, damit dies funktioniert. In diesem Fall habe ich verwendet:
map <leader>cf :e <cfile>.md<cr>
so konnte ich neue Markdown-Dateien erstellen. Es gibt Möglichkeiten, dies weiter anzupassen (z. B. indem die Erweiterung nicht fest codiert wird), aber das oben Genannte funktioniert gut für meine Anforderungen. Wenn ich jemals eine andere Erweiterung benötige (zum Beispiel um eine .wiki-Datei zu speichern), nehme ich wahrscheinlich einfach die einfache Route und erstelle eine andere Karte wie:
map <leader>cwf :e <cfile>.wiki<cr>
Als Nebeneffekt können Sie denselben Befehl verwenden, um die bereits vorhandene Markdown-Datei zu öffnen (der Standardbefehl gffunktioniert hier nicht, da die Dateierweiterung fehlt).
gffunktioniert wenn set suffixesadd=.wiki. Eine verbesserte Version von Ihnen cfwäre eine, die dies respektiert suffixesadd, zumindest für den Fall, dass sie nur einen Artikel enthält.
<cfile>
statt<C-r><C-f>
Ich nahm die ausgezeichnete Antwort von ib oben und erweiterte sie wie folgt. Mein Ziel war es, mit vim neue Markdown-Dateien zu erstellen, die für ein Wiki benötigt werden (in diesem Fall ein Gollum-Wiki).
Ich habe zuerst versucht:
Das Obige funktioniert wie in der Antwort angegeben. Zuerst dachte ich jedoch, dass es nicht funktioniert, weil ich das Öffnen der Datei in vim nicht wirklich gesehen habe. Wenn Sie das zweite Codebit unten verwenden, wird eine neue Datei geöffnet - das ist mehr, wonach ich gesucht habe. Also habe ich sie kombiniert und versucht:
Dies funktioniert jedoch nicht für ein Wiki, da beim Versuch, eine neue Datei im Wiki mit einer Syntax wie
[[the-new-file]]
der Wiki-Syntax zu erstellen, die Erweiterung der Datei in den Klammern nicht zulässig ist. Vim muss jedoch die Erweiterung kennen, wenn eine neue Datei erstellt wird, damit dies funktioniert. In diesem Fall habe ich verwendet:so konnte ich neue Markdown-Dateien erstellen. Es gibt Möglichkeiten, dies weiter anzupassen (z. B. indem die Erweiterung nicht fest codiert wird), aber das oben Genannte funktioniert gut für meine Anforderungen. Wenn ich jemals eine andere Erweiterung benötige (zum Beispiel um eine .wiki-Datei zu speichern), nehme ich wahrscheinlich einfach die einfache Route und erstelle eine andere Karte wie:
Als Nebeneffekt können Sie denselben Befehl verwenden, um die bereits vorhandene Markdown-Datei zu öffnen (der Standardbefehl
gf
funktioniert hier nicht, da die Dateierweiterung fehlt).quelle
gf
funktioniert wennset suffixesadd=.wiki
. Eine verbesserte Version von Ihnencf
wäre eine, die dies respektiertsuffixesadd
, zumindest für den Fall, dass sie nur einen Artikel enthält.