EditPad Lite hat eine nette Funktion ( CTRL- E, CTRL- I), die einen Zeitstempel, z. B. "2008-09-11 10:34:53", in Ihren Code einfügt.
Was ist der beste Weg, um diese Funktionalität in Vim zu erhalten?
(Ich verwende Vim 6.1 auf einem Linux-Server über SSH. In der aktuellen Situation teilen sich einige von uns ein Login, sodass ich keine Abkürzungen im Home-Verzeichnis erstellen möchte, wenn es eine andere integrierte Möglichkeit gibt, einen Zeitstempel zu erhalten. )
:r!date "+\%F \%T"
oder:r!date +\%F\ \%T
.Damit es plattformübergreifend funktioniert, geben Sie einfach Folgendes in Ihre Datei ein
vimrc
:Jetzt können Sie in Vi / Vim jederzeit F3 drücken und erhalten einen Zeitstempel wie
2016-01-25 Mo 12:44
am Cursor eingefügt.Eine vollständige Beschreibung der verfügbaren Parameter finden Sie in der Dokumentation der C-Funktion strftime () .
quelle
Warum benutzt jeder
:r!
? Suchen Sie eine leere Zeile und geben Sie sie im!!date
Befehlsmodus ein. Speichern Sie einen Tastendruck![nb Dies leitet die aktuelle Zeile in stdin weiter und ersetzt dann die Zeile durch die Befehlsausgabe. daher der Teil "Finde eine leere Zeile".]
quelle
Als Erweiterung der Antwort von @Swaroop CH
ist ein kompakteres Formular, das auch die Zeitzone druckt (tatsächlich der Unterschied zu UTC in einem ISO-8601-kompatiblen Formular).
Wenn Sie aus irgendeinem Grund lieber ein externes Tool verwenden,
Sie erhalten einen vollständigen RFC-3339-kompatiblen Zeitstempel. Verwenden Sie
ns
anstelle vons
für Spock-ähnliche Präzision und leiten Sietr ' ' T
ein großes T anstelle eines Leerzeichens zwischen Datum und Uhrzeit durch.Vielleicht finden Sie es auch nützlich, das zu wissen
liest Befehle ein von
somefile.vim
: Auf diese Weise können Sie einen benutzerdefinierten Satz von Zuordnungen usw. einrichten und ihn dann laden, wenn Sie vim für dieses Konto verwenden.quelle
:put=strftime(""%FT%T%z")
: r! Datum
Sie können dann dem Datumsbefehl (man date) ein Format hinzufügen, wenn Sie genau dasselbe Format wünschen, und dieses auch als vim-Alias hinzufügen
: r! Datum + "\% Y - \% m - \% d \% H: \% M: \% S"
Dadurch wird das Format erzeugt, das Sie in Ihrem Beispiel gezeigt haben (Datum in der Shell verwendet nicht \%, sondern nur%, vim ersetzt% durch den Namen der aktuellen Datei, sodass Sie es maskieren müssen).
Sie können Ihrer .vimrc eine Karte hinzufügen, damit sie den Befehl automatisch ausgibt, z. B. jedes Mal, wenn Sie F3 drücken:
(Bearbeitet von oben :)) (Bearbeiten: Textteil in Code ändern, damit
kann angezeigt werden)
quelle
Für einen Unix-Zeitstempel:
Sie können diesen Befehl auch einem Schlüssel (z. B. F12) in VIM zuordnen, wenn Sie ihn häufig verwenden:
Tragen Sie dies in Ihre .vimrc ein:
quelle
Aus dem Vim Wikia .
Ich benutze dies, anstatt meine Hand bewegen zu müssen, um eine F-Taste zu drücken:
Jetzt im Einfügemodus tippe einfach tds und sobald ich die Leertaste drücke oder zurückkehre, erhalte ich das Datum und tippe weiter.
Ich habe das
%b
da reingelegt, weil ich den Monatsnamen gerne sehe. Das%F
gibt mir etwas nach Datum zu sortieren. Ich könnte das ändern,%Y%m%d
damit zwischen den Einheiten keine Zeichen stehen.quelle
Unix, benutze:
Windows, verwenden Sie:
Weitere Details: Siehe Insert_current_date_or_time
quelle
Ein weiterer schneller Weg, der in früheren Antworten nicht enthalten ist: type-
!!Datum
quelle
Ich wollte einen benutzerdefinierten Befehl
:Date
(keine Tastenbelegung), um das Datum an der aktuellen Cursorposition einzufügen.Leider führen einfache Befehle wie
r!date
zu einer neuen Zeile. Also kam ich schließlich auf Folgendes:Hiermit wird die Datums- / Zeitzeichenfolge an der Cursorposition hinzugefügt, ohne dass eine neue Zeile hinzugefügt wird (ändern Sie diese,
normal a
um sie nach der Cursorposition hinzuzufügen).quelle