Come creare un'opzione per inserire il timestamp?


8

Durante la modifica di documenti di testo, devo inserire frequentemente i timestamp. Ho pensato di automatizzarlo in 2 modi diversi. Nessuno di questi sembra funzionare.

  1. Usando azioni nautilus

Ho impostato una nuova azione contestuale a destra che esegue il comando date|xclip

inserisci qui la descrizione dell'immagine

Questo contesto di destra non viene visualizzato quando faccio clic con il pulsante destro del mouse in altre applicazioni (come terminale o browser). Inoltre quando appare, e faccio clic su di esso, non fa nulla.

  1. Usando la scorciatoia da tastiera

Ho impostato una nuova scorciatoia da tastiera che dovrebbe eseguire il datecomando ma non lo fa.

inserisci qui la descrizione dell'immagine

Qualche puntatore?

Grazie.

Risposte:


11

Le scorciatoie da tastiera di GNOME dovrebbero funzionare.

Ecco perché ciò che hai provato non ha funzionato: la scorciatoia da tastiera esegue il datecomando, ma non fa nulla con l'output (che viene appena scartato). Dovresti reindirizzarlo a xclip, come date | xclipcopiarlo nella selezione X ( non negli appunti). Quindi puoi incollarlo nel tuo documento facendo clic con il tasto centrale. Se vuoi essere in grado di usare Ctrl-V, usa invece date | xclip -selection cper copiarlo negli appunti effettivi.

Un'altra alternativa è utilizzare xdotoolper digitare la data direttamente nel documento. Assegna al tuo collegamento

xdotool type "$(date)"

Quindi, quando si preme il tasto di scelta rapida, calcolerà la data corrente e digiterà i caratteri nel documento.

Per il formato ISO 8601, utilizzare xdotool type "$(date --rfc-3339=s)".


Se non funziona: poiché si tratta di comandi shell (al contrario degli eseguibili), potrebbe essere necessario passare il comando bashquando li si specifica nel collegamento. Il tuo comando sarebbe quindi:

bash -c 'xdotool type "$(date --rfc-3339=s)"'

Grazie. Provato. Ma non funziona. Ho assegnato il collegamento a CTRL +; e faccio clic su questa combinazione particolare sul desktop, quindi faccio clic su CTRL + V (diciamo in Gmail) ma non viene incollato. Devo riavviare il laptop?
user13107

@ user13107: Si scopre che, per impostazione predefinita, xclipcopia il testo non negli appunti, ma nella selezione X. Per incollarlo, usa il tasto centrale anziché Ctrl-V.
Lumaca meccanica

Usare ha bash -cfatto il trucco, ma c'è qualche tipo di ritardo nella digitazione. Quando faccio clic sul collegamento, il timestamp completo non viene digitato utilizzando xdotool. Alcuni numeri iniziali vengono divorati, ad esempio 1-07 15:14:35+08:00oppure013-01-07 15:14:35+08:00
user13107

1
@ user13107 Ho avuto lo stesso problema. Dopo qualche prova ed errore ho finito con il comando bash -c 'date | xclip -selection clipboard && xdotool key 'ctrl+v''che funziona perfettamente.
Immanuel Weihnachten

1
@ user13107 - questo perché non si utilizza xdotool --clearmodifiers- alcuni tasti vengono digitati con il tasto Ctrl (ad es. - spazio, viene ingoiato). Alcuni caratteri non verranno digitati (ad es. :- che viene spostato), ma sto usando un comando seguente: xdotool type --clearmodifiers $(date "+%Y-%m-%d,%H-%I")che funziona per me.
Tomasz Gandor,

3

Lo sto usando con successo come scorciatoia da tastiera personalizzata assegnata a Ctrl+Shift+D:

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

Ho scoperto che l'aggiunta di un leggero ritardo ha risolto i problemi con i caratteri iniziali mancanti e non inquina i miei appunti.

Nota che sto usando una versione leggermente personalizzata del formato RFC 3339 / ISO 8601: lo uso spesso in contesti in cui desidero evitare lo spazio datenell'output RFC 3339, ma trovo Tche separa la data dall'ora in Timestamp ISO 8601 piuttosto poco intuitivi e difficili da leggere, quindi trovo che un carattere di sottolineatura funzioni bene.


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

Uso Super+Qcome scorciatoia e devo cancellare il supermodificatore prima di inviare il file date. Ho provato --clearmodifiersma ciò causerebbe il unity dashpop-up dopo l'esecuzione del collegamento [1]

[1] Il motivo che unity dashverrà visualizzato in seguito è prima che supervenga ripristinato se --clearmodifiersviene utilizzato Citazione daman xdotool

CLEARMODIFIERS
       Any command taking the --clearmodifiers flag will attempt to clear any
       active input modifiers during the command and restore them afterwards.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.