Qual é a maneira mais fácil de obter uma tecla de atalho para o timestamp aaaa-mm-dd hh: mm: ss no Mac?

10

No Windows , eu uso o editor PSPad , que possui um registro de data e hora ALT-D no qual você pode editar o formato, por exemplo. aaaa-mm-dd hh: mm: ss .

Ao trabalhar fora de um editor, por exemplo Google Docs , eu tenho Autohotkey que eu programo CTRL-D para inserir um timestamp de aaaa-mm-dd hh: mm: ss.

Agora estou trabalhando em um Mac usando principalmente TextWrangler como meu editor, mas não consigo encontrar uma tecla de atalho de marca de data / hora em seus recursos.

Qual é a maneira mais fácil de obter uma tecla de atalho hh: mm: ss no Mac, tanto em um editor de texto (livre) quanto em um equivalente autohotkey (livre)?

    
por Edward Tanguay 30.12.2010 / 09:36

5 respostas

16

Uma opção é usar um script de shell ou um script Python / Perl / Ruby.

Uma opção, usando o 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)

Outro, mais curto, por @NReilingh , usando date (script de shell):

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

Use /Applications/Automator.app para criar um Serviço que execute este script. Adicione a ação Executar o Script do Shell Automator e insira o código acima. Selecione nenhuma entrada em qualquer aplicação e substitui o texto selecionado . Então salve.

Ele será colocado no menu Serviços , que pode ser acessado na barra de menus de qualquer aplicativo, selecionando o menu com o nome do aplicativo. Pode parecer algo assim quando você o usa:

AtribuaatalhosdetecladonopaineldepreferênciasTecladoemPreferênciasdoSistema.

O TextExpander não mais tem recursos semelhantes aos que você deseja. É um aplicativo projetado para inserção de snippets, por exemplo para modelos de email parciais.

TextMate é um editor comercial extensível que permite definir facilmente comandos personalizados, novamente em shell ou linguagens de script, e atribuir atalhos de teclado para eles.

    
por 30.12.2010 / 09:43
4

Há um bug em 10.7 e 10.8, onde os atalhos para os serviços do Automator nem sempre funcionam até que o menu de serviços seja exibido na barra de menus. Há também um atraso perceptível antes que os serviços sejam executados. Outra opção seria atribuir um atalho para um script assim:

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 não ignora as teclas modificadoras pressionadas, portanto adicione um pequeno atraso ao início se você executar o script com um atalho que tenha outras teclas modificadoras além do comando. FastScripts aguarda até que as teclas modificadoras sejam liberadas antes de executar scripts que contenham comandos de pressionamento de tecla ou de código-chave.

    
por 18.06.2011 / 16:44
1

Você pode instalar um complemento do Freeware chamado WordService que adiciona essa funcionalidade como um serviço, para o qual você pode atribuir um atalho de teclado em Preferências do Sistema - > Teclado - > Atalhos.

Aqui está um artigo sobre isso com dicas do Mac OSX - link

Faça download do link ou da App Store link

    
por 02.07.2014 / 13:31
1

A solução da Lauri é muito mais elegante do que a minha, mas aqui está minha solução somente para AppleScript. É mais rápido do que percorrer a área de transferência e usar um script de shell? Talvez.

De qualquer forma: Existem muitas soluções para atribuí-lo a uma chave, mas descobri que o mais fácil é Quicksilver Spark FastScripts . O Spark pode simplesmente usar o scpt diretamente, que é o que a solução AppleScript salva.

Disparo de Data e Timestamp no 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
    
por 17.12.2012 / 09:37
0

Como uma atualização para esta questão, os usuários do OS X El Capitan podem achar o seguinte AppleScript útil.

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

Os usuários podem criar um fluxo de trabalho Executar o AppleScript conforme descrito na resposta acima por @ daniel-beck. O exemplo que criei é mostrado abaixo:

    
por 07.09.2016 / 18:02