Quelle est la façon la plus simple d'obtenir un raccourci clavier d'horodatage aaaa-mm-jj hh: mm: ss sur le Mac?

11

Sous Windows, j'utilise l' éditeur PSPad qui a un joli horodatage ALT-D dont vous pouvez modifier le format, par exemple aaaa-mm-jj hh: mm: ss .

Lorsque je travaille en dehors d'un éditeur, par exemple Google Docs , j'ai Autohotkey que j'ai programmé CTRL-D pour insérer un horodatage aaaa-mm-jj hh: mm: ss.

Je travaille maintenant sur un Mac utilisant principalement TextWrangler comme éditeur, mais je ne trouve pas de raccourci clavier d'horodatage dans ses fonctionnalités.

Quelle est la façon la plus simple d'obtenir un raccourci clavier aaaa-mm-jj hh: mm: ss sur Mac, dans un éditeur de texte (gratuit) ou un équivalent autohotkey (gratuit)?

Edward Tanguay
la source
Veuillez commenter ma réponse si cela ne fonctionne pas pour vous.
Daniel Beck

Réponses:

17

Une option consiste à utiliser un script shell ou un script Python / Perl / Ruby.

Une option, en utilisant Python :

#!/usr/bin/env python
import time
t = time.localtime()
# yyyy-mm-dd hh:mm:ss
print '%d-%02d-%02d %02d:%02d:%02d' % (t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec)

Un autre, plus court, par @NReilingh , en utilisant date(script shell):

date "+%Y-%m-%d %T"

Utilisez /Applications/Automator.apppour créer un service qui exécute ce script. Ajoutez l'action Run Shell Script Automator et insérez le code ci-dessus. Ne sélectionnez aucune entrée dans aucune application et remplace le texte sélectionné . Enregistrez ensuite.

Il sera placé dans le menu Services accessible depuis la barre de menus de n'importe quelle application en sélectionnant le menu avec le nom de l'application. Cela pourrait ressembler à ceci lorsque vous l'utilisez:

texte alternatif

Attribuez des raccourcis clavier dans le volet des préférences Clavier des Préférences Système .

texte alternatif


Le TextExpander qui n'est plus gratuit a une fonctionnalité similaire à ce que vous voulez. Il s'agit d'une application conçue pour l'insertion d'extraits de code, par exemple pour les modèles d'e-mails partiels.


TextMate est un éditeur commercial extensible qui vous permet de définir facilement des commandes personnalisées, là encore dans des langages de shell ou de script, et de leur attribuer des raccourcis clavier.

Daniel Beck
la source
Si je le dis moi-même, $ date "+%Y-%m-%d %T"c'est un peu plus compact ... mais je ne peux pas faire en sorte que l'un ou l'autre fonctionne comme je le souhaite. Comment est-il censé obtenir une action d'automate pour insérer du texte à l'entrée de texte actuelle?
NReilingh
D'accord, compris: le "Remplace le texte sélectionné" en haut DOIT être vérifié pour que la sortie du script shell brut soit insérée. Cette fichue chose m'a pris une demi-heure pour comprendre - j'étais sur le point de poster une réponse en utilisant la touche AppleScript à la place. Assurez-vous également de définir «Le service ne reçoit aucune entrée dans aucune application» en haut si vous souhaitez que le service soit universellement accessible.
NReilingh
@NReilingh Désolé à ce sujet, mais j'étais pressé lorsque j'ai posté ceci, avec l'intention de l'améliorer une fois que j'aurais eu la chance (ce qui est dans quelques minutes maintenant).
Daniel Beck
Je voudrais ajouter que vous devez sélectionner usr/bin/env Pythonou quelque chose comme ça (celui qui a Python) dans le menu déroulant, sinon, quelle que soit l'application qui appelle le script Service, elle ne saura pas reconnaître que son Python, je pense. Au moins, cela n'a pas fonctionné pour moi jusqu'à ce que je le fasse.
Comment puis-je désélectionner le texte par la suite?
schmunk
4

Il y a un bug dans 10.7 et 10.8 où les raccourcis pour les services Automator ne fonctionnent pas toujours tant que le menu des services n'a pas été affiché dans la barre de menus. Il existe également un délai notable avant l'exécution des services. Une autre option serait d' attribuer un raccourci à un script comme celui-ci:

set old to the clipboard as record
set the clipboard to (do shell script "date '+%Y-%m-%d %H:%M:%S'")
tell application "System Events" to keystroke "v" using command down
delay 0.05
set the clipboard to old

keystroken'ignore pas les touches de modification maintenues enfoncées, donc ajoutez un petit retard au début si vous exécutez le script avec un raccourci qui a d'autres touches de modification que la commande. FastScripts attend la libération des touches de modification avant d'exécuter des scripts contenant des commandes de touches ou de code de touche.

Lri
la source
Quel est le but Cmd-Centre le stockage de l'ancien presse-papiers et la définition du nouveau contenu du presse-papiers?
Daniel Beck
@DanielBeck Rien, merci de l'avoir signalé.
Lri
L'utilisation du presse-papiers est un gâchis, en particulier si l'utilisateur utilise ClipMenu ou quelque chose de similaire.
Dan Rosenstark
@Yar Alfred ignore les presse-papiers "transitoires" et keystrokene sait pas comment insérer des deux-points avec ma disposition de clavier (mais c'est un peu un cas de bord). keystrokepourrait être mieux pour insérer de courtes chaînes uniquement ASCII comme celle-ci.
Lri
Ouf vient de vérifier avec l'espagnol, pensant que mon Applescript ne fonctionnerait peut-être pas. Heureux que ce soit ok, désolé que certaines langues n'aient pas la même priorité. C'est pourquoi les scripts sont tellement plus ennuyeux que la programmation;) Vérifie l'utilisation d'AlfredApp pour cela. Ils méritent probablement le $$$
Dan Rosenstark
1

Vous pouvez installer un module complémentaire Freeware appelé WordService qui ajoute cette fonctionnalité en tant que service, auquel vous pouvez attribuer un raccourci clavier dans Préférences Système -> Clavier -> Raccourcis.

Voici un article à ce sujet dans Mac OSX Tips - http://www.macosxtips.co.uk/index_files/automatically-insert-date-and-time.php

Téléchargez depuis http://www.devontechnologies.com/download/products.html ou depuis App Store http://appstore.com/mac/wordservice

Motin
la source
1

La solution de Lauri est bien plus élégante que la mienne, mais voici ma solution AppleScript uniquement. Est-ce plus rapide que de parcourir le presse-papiers et d'utiliser un script shell? Peut être.

Quoi qu'il en soit: il existe de nombreuses solutions pour l'attribuer à une clé, mais j'ai trouvé que le plus simple est Quicksilver Spark FastScripts . Spark peut simplement utiliser le scpt directement, ce que la solution AppleScript enregistre.

Déclencheur de date et d'horodatage dans OSX

-- yar2050 (Dan Rosenstark)'s favorite date format 
-- 2017-08-03 update
on fillInZero(int)
    if (int < 10) then set int to "0" & int
    return int as string
end fillInZero

set theDate to (current date)
set theHour to fillInZero(hours of (theDate) as integer)
set theMinutes to fillInZero(minutes of (theDate) as integer)
tell theDate to get (its month as integer)
set theMonth to fillInZero(result)
set theDay to fillInZero(day of theDate)
tell (theDate) to get (its year as integer) & "-" & (theMonth) & "-" & theDay & " " & (theHour) & ":" & theMinutes
set date_ to (result as string)
tell application "System Events"
    set frontmostApplication to name of the first process whose frontmost is true
end tell


tell application frontmostApplication
    delay 0.2 -- I have no idea why this is necessary
    activate
    tell application "System Events"
        if (frontmostApplication = "Evernote") then
            keystroke "h" using {command down, shift down}
            keystroke "b" using {command down}
            keystroke date_
            keystroke "b" using {command down}
        else
            keystroke date_
        end if
    end tell
end tell
Dan Rosenstark
la source
0

En tant que mise à jour de cette question, les utilisateurs d'OS X El Capitan pourraient trouver utile le AppleScript suivant.

set the clipboard to (do shell script "date +%Y-%m-%d\" \"%H:%M:%S")
tell application "System Events"
    keystroke "v" using command down
end tell

Les utilisateurs peuvent créer un workflow Exécuter AppleScript comme décrit dans la réponse ci-dessus par @ daniel-beck. L'exemple que j'ai créé est illustré ci-dessous:

capture d'écran d'AppleScript dans l'automate

Jerry W.
la source