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.

Nelaaro
quelle
Mögliches Duplikat: stackoverflow.com/questions/6344750/…
Ciro Santilli am
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>
Heptit
quelle
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

Nelaaro
quelle
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>
romainl
quelle
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