Frage

EditPad Lite hat eine nette Funktion (STRG-E, STRG-ICH), der einen Zeitstempel einfügt, z.B.„2008-09-11 10:34:53“ in Ihren Code ein.

Was ist der beste Weg, 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, daher möchte ich keine Abkürzungen im Home-Verzeichnis erstellen, wenn es eine andere integrierte Möglichkeit gibt, einen Zeitstempel zu erhalten.)

War es hilfreich?

Lösung

http://kenno.wordpress.com / 2006/08/03 / vim-Spitze-Insert-Zeitstempel /

es ausprobiert, es funktioniert auf meinem Mac:

:r! date

erzeugt:

Thu Sep 11 10:47:30 CEST 2008

Dieses:

:r! date "+\%Y-\%m-\%d \%H:\%M:\%S"

erzeugt:

2008-09-11 10:50:56

Andere Tipps

Um es Cross-Plattform funktioniert, setzen Sie einfach die folgende in Ihrer vimrc:

nmap <F3> i<C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR><Esc>
imap <F3> <C-R>=strftime("%Y-%m-%d %a %I:%M %p")<CR>

Jetzt können Sie drücken Sie einfach F3 jederzeit innerhalb Vi / Vim und Sie erhalten einen Zeitstempel wie 2016-01-25 Mo 12:44 an der Cursorposition eingefügt bekommen.

Für eine vollständige Beschreibung der verfügbaren Parameter überprüfen Sie die Dokumentation der C-Funktion strftime () .

Warum wird mit jeder :r!? Finden Sie eine leere Zeile und geben !!date von Befehlsmodus. Speichern Sie einen Tastendruck!

[NB. Dies wird die aktuelle Rohrleitung in stdin und ersetzt dann die Zeile mit der Befehlsausgabe; daher auch der Teil „eine leere Zeile finden“.]

Als Erweiterung @Swaroop C H Antwort,

^R=strftime("%FT%T%z")

ist eine kompakte Form, die auch die Zeitzone (eigentlich den Unterschied von UTC in einer ISO-8601-kompatible Form) gedruckt werden.

Wenn Sie lieber ein externes Tool aus irgendeinem Grund verwenden,

:r !date --rfc-3339=s

gibt Ihnen einen vollständigen RFC-3339-konformen Zeitstempel; verwende ns statt s für Spock artige Präzision und Rohr durch tr ' ' T ein Kapital T anstelle ein Leerzeichen zwischen Datum und Uhrzeit zu verwenden.

Auch finden Sie könnte es nützlich zu wissen, dass

:source somefile.vim

in Befehlen von somefile.vim gelesen werden. So erhalten Sie einen benutzerdefinierten Satz von Zuordnungen einrichten könnten, usw., und es dann laden, wenn Sie Vim verwenden auf dem Konto

: r! Datum

Sie können dann Format an den Befehl date (Mann Datum) hinzufügen, wenn Sie genau das gleiche Format haben möchten, und fügen Sie diese als vim alias auch

: r! Datum + "\% Y - \% m - \% d \% H: \% M: \% S"

Das erzeugt das Format, das Sie in Ihrem Beispiel zeigten (Datum in der Schale nicht \% verwendet, sondern nur%, vim% unter dem Namen der aktuellen Datei ersetzt, so dass Sie es entkommen müssen).

Sie können eine Karte in Ihrem .vimrc hinzufügen für den Befehl automatisch zum Beispiel zu setzen, jedes Mal, wenn Sie drücken F3:

:map <F3> :r! date +"\%Y-\%m-\%d \%H:\%M:\%S"<cr>

(die von oben :) Edited) (Edit: Änderungstextteil-Code, so dass

<F3> 

angezeigt werden)

Werfen Sie einen Blick auf die Spitze gewidmet zu Zeitstempel Einfügen / update auf vim.wikia.

Für einen Unix-Zeitstempel:

:r! date +\%s

Sie können diesen Befehl auch auf eine Taste (zB F12) in VIM Karte, wenn Sie es eine Menge zu verwenden:

Setzen Sie diese in Ihrem .vimrc:


map  <F12> :r! date +\%s<cr>

Von der Vim Wikia .

Ich benutze diese statt mit der Hand zu schlagen eine F-Taste bewegen:

:iab <expr> tds strftime("%F %b %T")

Jetzt im Insert-Modus geben Sie es einfach tds und sobald ich die Leertaste oder Rückkehr getroffen, erhalte ich das Datum und die Typisierung halten.

Ich habe die %b drin, weil ich die Monatsnamen wie das Sehen. Die %F gibt mir etwas nach Datum zu sortieren. Ich könnte das zu %Y%m%d ändern, damit es keine Zeichen zwischen den Einheiten sind.

Eine weitere schnelle Art und Weise nicht von früheren Antworten enthält: Typ -

!! Datum

Unix, zu verwenden:

!!date

Fenster, benutzen Sie:

!!date /t

Weitere Details: siehe Insert_current_date_or_time

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top