14 votos

¿Cuál es la forma más sencilla de obtener una aaaa-mm-dd hh:mm:ss timestamp tecla de acceso directo en el Mac?

En Windows yo uso el PSPad editor que tiene una bonita ALT-D marca de tiempo que usted puede editar el formato de, por ejemplo, aaaa-mm-dd hh:mm:ss.

Cuando se trabaja fuera de un editor, por ejemplo, Google Docs, he Autohotkey que he programado CTRL-D para insertar una aaaa-mm-dd hh:mm:ss hora y la fecha.

Ahora estoy trabajando en un Mac usando TextWrangler como mi editor, pero no puedo encontrar una marca de tecla de acceso rápido en sus características.

¿Cuál es la forma más sencilla de obtener una aaaa-mm-dd hh:mm:ss atajo de teclado en Mac, ya sea en un (gratis) editor de texto o un (gratis) autohotkey equivalente?

19voto

Daniel Beck Puntos 72548

Una opción es utilizar un script de shell o Python/Perl/script de Ruby.

Una opción, el uso de 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)

Otro, más corto, por @NReilingh, usando date (shell script):

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

Uso /Applications/Automator.app a crear un Servicio que se ejecuta este script. Agregar el Ejecutar el Shell Script de Automator acción e inserte el código de arriba. Seleccione ninguna entrada en cualquier aplicación y reemplaza el texto seleccionado. A continuación, guardar.

Será colocado en los Servicios de menú que se puede acceder desde cualquier aplicación de la barra de menús seleccionando el menú con el nombre de la aplicación. Podría ser algo como esto cuando se utiliza:

alt text

Asignar métodos abreviados de teclado en el Teclado en el panel de preferencias de Preferencias del Sistema.

alt text


El ya no es libre, TextExpander tiene una característica similar a lo que usted desea. Es una aplicación diseñada para la inserción de fragmentos de, por ejemplo, por parciales de plantillas de correo electrónico.


TextMate es extensible, comercial editor que permite definir fácilmente comandos personalizados, de nuevo en la concha o lenguajes de scripting, y asignar atajos de teclado para ellos.

4voto

Dave Puntos 986

Hay un error en el 10.7 y 10.8 donde accesos directos para Automator servicios no siempre funcionan hasta que el menú de los servicios ha sido mostrado en la barra de menú. También hay un retraso notable antes de que los servicios se ejecutan. Otra opción sería la de asignar un acceso directo a una secuencia como esta:

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

keystroke no omitir presionada las teclas modificadoras, por lo que añadir un pequeño retraso para el inicio si se ejecuta la secuencia de comandos con un acceso directo que tiene otras teclas de comando. FastScripts espera hasta que las teclas modificadoras son liberados antes de ejecutar secuencias de comandos que contienen la pulsación de tecla o código de la clave de comandos.

1voto

Yar Puntos 3025

Lauri la solución es la forma más elegante que la mía, pero he aquí mi AppleScript-la única solución. Es más rápido que corre a través del portapapeles y el uso de un script de shell? Tal vez.

De todos modos: Hay un montón de soluciones para conseguir asignado a una tecla, pero he encontrado que es la más sencilla de Azogue Chispa. La chispa puede usar el scpt directamente, que es lo que el AppleScript solución de guarda.

La fecha y la hora de Desencadenar en OSX

        -- yar2050 (Dan Rosenstark)'s favorite date format 
        -- 2012 (2012-12-17 13:53)
        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 (it's month as integer)
        set theMonth to fillInZero(result)
        set theDay to fillInZero(day of theDate)
        tell (theDate) to get (it's 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"
                keystroke date_
            end tell
        end tell

1voto

user40466 Puntos 11

Usted puede instalar un Freeware add-on llamado WordService que añade esta funcionalidad como un servicio, por el cual se puede asignar un método abreviado de teclado en Preferencias del Sistema -> Teclado -> accesos directos.

Aquí está un artículo acerca de Mac OSX Consejos - http://www.macosxtips.co.uk/index_files/automatically-insert-date-and-time.php

Descarga de http://www.devontechnologies.com/download/products.html o desde la App Store http://appstore.com/mac/wordservice

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: