So fügen Sie das Datum in vim ein


23

In vim können Sie Befehle mit "!" Ausführen. Sie können dies mit "r" kombinieren, um die Ausgabe in Ihren aktuellen Puffer einzufügen.

: r! date
Fr Jul 20 09:39:26 SAST 2012

fügt das Datum in eine Datei ein.

Wenn ich jetzt versuche, etwas interessanteres zu machen, wie Datum mit anderem Format +% F. In der Befehlszeile

$ date +% F
2012-07-20

In vim

: r! date "+% F"
message.to.followup.lstF

Welcher gibt den Namen der Datei aus und setzt F danach. So wird das r! date "+% F" in vim erweitert und nicht in der Befehlszeile ausgeführt. Was muss ich tun, um dies auszuführen, damit der Inhalt in vim abgelegt wird?

Vielleicht hat vim eine bessere Möglichkeit, Daten in Dateien einzufügen.



Hier ist eine weitere gültige Antwort mit <F3>. Sie müssen Ihr Datumsformat ändern vimrc, um es automatisch in ein beliebiges Format zu bringen .
Nilon

Antworten:


21

Vim hat eine interne strftime()Funktion. Versuchen Sie dies (im Einfügemodus):

<C-r>=strftime('%F')<CR>

1
Ich wähle Ihre Antwort als die vim ähnlichste Art, Dinge zu tun.
Nelaaro

1
Und im normalen Modus ist dies dasselbe (Datum an der aktuellen Position einfügen ): "=strftime("%F")<CR>P(Quelle: vim.wikia.com/wiki/Insert_current_date_or_time )
erik

19

Ich habe weiter experimentiert, bis ich herausgefunden habe, dass vim das Zeichen "%" erweitert. Entkomme einfach "\%" und alles funktioniert wie erwartet.

: r! date "+ \% F"
2012-07-20

Jetzt kann ich Daten in Dateien einfügen, wie ich möchte

: r! date "+ \% F" -d "-2 day"
2012-07-18


1
+1 Das können Sie mit anderen Programmen als dateauch verwenden, und daher ist es leichter zu merken als das internationale "strftime" -Ding.
Mathe

10

Eine andere Methode, ohne zu entkommen, mit system():

system('date +%F')

Im INSERT- Modus:

<C-r>=system('date +%F')<CR>

Im NORMAL- Modus:

:put=system('date +%F')<CR>

1
<Cr> ist sehr nützlich, ich wünschte, ich hätte mehr Zeit damit verbracht, die Hilfe in vim zu lesen.
Nelaaro

1
Es ist niemals zu spät.
Romainl
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.