Wenn ich eine Datei mit einer Shebang-Zeile (z. B. #!/bin/bash
) in Vim geöffnet habe und die Datei Ausführungsberechtigungen hat (dh chmod +x
), weiß ich, dass ich diese eingeben kann, um sie auszuführen, ohne den Editor zu verlassen:
:! %:p
:
für den Befehlsmodus!
um einen Shell-Befehl auszuführen%
um auf die Datei im aktuellen Puffer zu verweisen:p
um den vollständigen Pfad der aktuellen Datei zu verwenden
Gibt es eine kürzere Abkürzung für diese häufige Aufgabe?
zB gibt es eine ZZ
Verknüpfung für :wq
usw.
nnoremap <F9> :!%:p<Enter><Enter>
um auchPress ENTER or type command to continue
nach der Skriptausführung zu überspringennnoremap <F9> :!%:p<Enter><Enter>
führt den Code aus und kehrt sofort zu vim zurück. Verwenden Sie die einzelne Eingabetastennoremap <F9> :!%:p<Enter>
, um den Ausgabebildschirmnnoremap
. Beachten Sie auch, dass dies Dateinamen mit Leerzeichen nicht richtig behandelt. Siehe diese Antwort unten.nnoremap <F9> :!clear && %:p<Enter>
Keine der vorherigen Antworten funktioniert, wenn Ihr Dateiname / Verzeichnispfad Leerzeichen enthält. Einfache Lösung.
quelle
Wenn Sie keine Berechtigungen festgelegt haben, können Sie Folgendes ausführen:
quelle
Nachdem Sie das einmal ausgeführt haben, wird es durch einen Kurzfilm
:!!
wiederholt.quelle
Sie können Ihrer .vimrc eine Schlüsselzuordnung hinzufügen
quelle
Geben Sie beim Starten von vi den Dateipfad explizit an, wie folgt: "vi ./blablabla"
Danach starten Sie jederzeit mit nur :!%
Die andere Variante besteht darin, den Befehl vi wie folgt aufzurufen
quelle