Wie erstelle ich eine Option zum Einfügen eines Zeitstempels?

8

Beim Bearbeiten von Textdokumenten muss ich häufig Zeitstempel setzen. Ich dachte daran, es auf zwei verschiedene Arten zu automatisieren. Nichts davon scheint zu funktionieren.

  1. Verwenden von Nautilus-Aktionen

Ich habe eine neue Aktion für den richtigen Kontext eingerichtet, mit der der Befehl ausgeführt wird date|xclip

Geben Sie hier die Bildbeschreibung ein

Dieser rechte Kontext wird nicht angezeigt, wenn ich mit der rechten Maustaste auf andere Anwendungen (z. B. Terminal oder Browser) klicke. Außerdem, wenn es erscheint und ich darauf klicke, macht es nichts.

  1. Verwenden der Tastenkombination

Ich habe eine neue Tastenkombination eingerichtet, die den dateBefehl ausführen soll, dies aber nicht tut.

Geben Sie hier die Bildbeschreibung ein

Irgendwelche Hinweise?

Vielen Dank.

user13107
quelle

Antworten:

11

GNOME-Tastaturkürzel sollten funktionieren.

Hier ist der Grund, warum das, was Sie versucht haben, nicht funktioniert hat: Ihre Tastenkombination führt den dateBefehl aus, tut jedoch nichts mit der Ausgabe (die nur verworfen wird). Sie sollten eine Pipe an xclip, wie date | xclipes auf der X - Auswahl kopieren ( nicht Zwischenablage). Anschließend können Sie es durch Klicken mit der mittleren Maustaste in Ihr Dokument einfügen. Wenn Sie Strg-V verwenden möchten, date | xclip -selection ckopieren Sie es stattdessen in die eigentliche Zwischenablage.

Eine andere Alternative besteht darin xdotool, das Datum direkt in Ihr Dokument einzugeben. Weisen Sie Ihrer Verknüpfung zu

xdotool type "$(date)"

Wenn Sie dann die Tastenkombination drücken, wird das aktuelle Datum berechnet und die Zeichen in Ihr Dokument eingegeben.

Verwenden Sie für das ISO 8601-Format xdotool type "$(date --rfc-3339=s)".


Wenn es nicht funktioniert: Da es sich um Shell-Befehle handelt (im Gegensatz zu ausführbaren Dateien), müssen Sie den Befehl möglicherweise an übergeben, bashwenn Sie sie in Ihrer Verknüpfung angeben. Ihr Befehl wäre dann:

bash -c 'xdotool type "$(date --rfc-3339=s)"'
Mechanische Schnecke
quelle
Vielen Dank. Ich habe es versucht. Aber es funktioniert nicht. Ich habe die Tastenkombination STRG + zugewiesen. und ich klicke auf diese bestimmte Kombination auf dem Desktop und dann auf STRG + V (z. B. in Google Mail), aber es wird nicht eingefügt. Muss ich den Laptop neu starten?
user13107
@ user13107: Es stellt sich heraus, dass xclipder Text standardmäßig nicht in die Zwischenablage, sondern in die X-Auswahl kopiert wird. Verwenden Sie zum Einfügen den mittleren Klick anstelle von Strg-V.
Mechanische Schnecke
Verwenden bash -chat den Trick gemacht, aber es gibt eine Art Verzögerung beim Tippen. Wenn ich auf die Verknüpfung klicke, wird der vollständige Zeitstempel nicht mit xdotool eingegeben. Einige Anfangszahlen werden aufgefressen, zB 1-07 15:14:35+08:00oder013-01-07 15:14:35+08:00
user13107
1
@ user13107 Ich hatte das gleiche Problem. Nach einigem Ausprobieren kam ich zu dem Befehl bash -c 'date | xclip -selection clipboard && xdotool key 'ctrl+v'', der perfekt funktioniert.
Immanuel Weihnachten
1
@ user13107 - Dies liegt daran, dass Sie nicht verwenden xdotool --clearmodifiers- einige Tasten werden mit der Strg-Taste eingegeben (z. B. Leerzeichen, es wird verschluckt). Einige Zeichen werden nicht eingegeben (z. B. :- was verschoben wird), aber ich verwende einen folgenden Befehl: xdotool type --clearmodifiers $(date "+%Y-%m-%d,%H-%I")der für mich funktioniert.
Tomasz Gandor
3

Ich habe dies erfolgreich als benutzerdefinierte Tastenkombination verwendet, die zugewiesen wurde für Ctrl+Shift+D:

bash -c 'sleep 0.3 && xdotool type "$(date -u +%Y-%m-%d_%H:%M:%SZ)"'

Ich habe festgestellt, dass das Hinzufügen einer leichten Verzögerung die Probleme mit fehlenden Anfangszeichen gelöst hat und meine Zwischenablage nicht verschmutzt.

Beachten Sie, dass ich eine leicht angepasste Version des RFC 3339 / ISO 8601-Formats verwende: Ich verwende diese häufig in Kontexten, in denen ich den Platz in dateder RFC 3339-Ausgabe vermeiden möchte , aber ich finde die T, die das Datum von der Uhrzeit in trennt ISO 8601-Zeitstempel sind eher unintuitiv und schwer zu lesen, daher finde ich, dass ein Unterstrich gut funktioniert.

Gabriel Grant
quelle
1
bash -c 'xdotool keyup super && xdotool type "$(date +%Y.%m.%d)"'

Ich verwende es Super+Qals Verknüpfung und muss den superModifikator löschen, bevor ich das sende date. Ich habe es versucht, --clearmodifiersaber das würde dazu führen, dass unity dashdas angezeigt wird, nachdem die Verknüpfung ausgeführt wurde. [1]

[1] Der Grund, warum unity dashdanach auftauchen würde, ist, bevor das superwiederhergestellt wird, wenn --clearmodifierses verwendet wird. Zitat ausman xdotool

CLEARMODIFIERS
       Any command taking the --clearmodifiers flag will attempt to clear any
       active input modifiers during the command and restore them afterwards.
Sungam
quelle