Jak stworzyć opcję wstawiania znacznika czasu?


8

Podczas edycji dokumentów tekstowych muszę często umieszczać znaczniki czasu. Myślałem o zautomatyzowaniu go na 2 różne sposoby. Żaden z nich nie działa.

  1. Używanie nautilusów

Skonfigurowałem nową akcję w prawym kontekście, która uruchamia polecenie date|xclip

wprowadź opis zdjęcia tutaj

Ten prawy kontekst nie pojawia się, gdy klikam prawym przyciskiem myszy w innych aplikacjach (takich jak terminal lub przeglądarka). Co więcej, kiedy się pojawia i klikam na niego, nic nie robi.

  1. Za pomocą skrótu klawiaturowego

Skonfigurowałem nowy skrót klawiaturowy, który powinien wykonywać datepolecenia, ale ich nie wykonuje.

wprowadź opis zdjęcia tutaj

Jakieś wskazówki?

Dzięki.

Odpowiedzi:


11

Skróty klawiaturowe GNOME powinny działać.

Oto dlaczego próbujesz nie działać: skrót klawiaturowy uruchamia datepolecenie, ale nie robi nic z danymi wyjściowymi (które są po prostu odrzucane). Powinieneś go potokować xclip, date | xclipaby skopiować go do zaznaczenia X ( nie do schowka). Następnie możesz wkleić go do dokumentu, klikając środkowym przyciskiem myszy. Jeśli chcesz móc korzystać z Ctrl-V, zamiast tego użyj, date | xclip -selection caby skopiować go do faktycznego schowka.

Inną alternatywą jest xdotoolwpisanie daty bezpośrednio w dokumencie. Przypisz do swojego skrótu

xdotool type "$(date)"

Następnie, po naciśnięciu klawisza skrótu, obliczy on bieżącą datę i wprowadzi znaki do dokumentu.

W przypadku formatu ISO 8601 użyj xdotool type "$(date --rfc-3339=s)".


Jeśli to nie działa: Ponieważ są to polecenia powłoki (w przeciwieństwie do plików wykonywalnych), może być konieczne przekazanie polecenia bashpodczas określania ich w skrócie. Twoje polecenie będzie wtedy:

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

Dzięki. Spróbował tego. Ale to nie działa. Przypisałem skrót CTRL +; i klikam tę konkretną kombinację na pulpicie, a następnie klikam CTRL + V (powiedzmy w Gmailu), ale nie wkleja się. Czy muszę ponownie uruchamiać laptopa?
user13107

@ user13107: Okazuje się, że domyślnie xclipkopiuje tekst nie do schowka, ale do zaznaczenia X. Aby go wkleić, użyj środkowego kliknięcia zamiast Ctrl-V.
Ślimak mechaniczny

Używanie bash -czrobiło lewę, ale jest pewne opóźnienie w pisaniu. Po kliknięciu skrótu pełny znacznik czasu nie jest wpisywany za pomocą xdotool. Niektóre początkowe liczby są zjadane, np. 1-07 15:14:35+08:00Lub013-01-07 15:14:35+08:00
użytkownik13107

1
@ user13107 Miałem ten sam problem. Po kilku próbach i błędach skończyłem z poleceniem, bash -c 'date | xclip -selection clipboard && xdotool key 'ctrl+v''które działa idealnie.
Immanuel Weihnachten

1
@ user13107 - dzieje się tak, ponieważ nie używasz xdotool --clearmodifiers- niektóre klawisze są wpisywane za pomocą Ctrl (np. spacja, zostaje połknięta). Niektóre znaki nie zostaną wpisane (np. :- który jest przesunięty), ale używam następującego polecenia: xdotool type --clearmodifiers $(date "+%Y-%m-%d,%H-%I")które działa dla mnie.
Tomasz Gandor,

3

Z powodzeniem używam tego jako niestandardowego skrótu klawiaturowego przypisanego do Ctrl+Shift+D:

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

Odkryłem, że dodanie niewielkiego opóźnienia rozwiązało problemy z brakującymi początkowymi znakami i nie zanieczyszcza mojego schowka.

Zauważ, że używam nieco spersonalizowanej wersji formatu RFC 3339 / ISO 8601: Często używam tego w kontekstach, w których chcę uniknąć miejsca na datewyjściu RFC 3339, ale znajduję ten, Tktóry oddziela datę od czasu w Znaczniki czasu ISO 8601 są raczej nieintuicyjne i trudne do odczytania, więc uważam, że podkreślenie działa dobrze.


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

Używam Super+Qjako skrótu i superprzed wysłaniem muszę wyczyścić modyfikator date. Próbowałem, --clearmodifiersale spowoduje to, unity dashże wyskakuje po uruchomieniu skrótu [1]

[1] Powód unity dashpojawiłby się później, zanim superzostanie przywrócony, jeśli --clearmodifierszostanie użyty Cytat zman xdotool

CLEARMODIFIERS
       Any command taking the --clearmodifiers flag will attempt to clear any
       active input modifiers during the command and restore them afterwards.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.