Macでyyyy-mm-dd hh:mm:ssタイムスタンプホットキーを取得する最も簡単な方法は何ですか?


11

上のWindowsの私が使用PSPADのあなたはの形式、例えば編集することができます素敵なALT-Dのタイムスタンプがある編集者:MM:SS YYYY-MM-DD HHを

Googleドキュメントなどのエディタの外部で作業する場合、CTRL-Dでyyyy-mm-dd hh:mm:ssタイムスタンプを挿入するようにプログラムしたAutohotkeyがあります。

私はMacで作業していて、ほとんどがTextWranglerエディターとして使用していますが、その機能にタイムスタンプホットキーが見つかりません。

Macでyyyy-mm-dd hh:mm:ssホットキーを取得する最も簡単な方法は、(無料の)テキストエディターまたは同等の(無料の)自動ホットキーです。


うまくいかない場合は、私の答えにコメントしてください。
ダニエルベック

回答:


17

1つのオプションは、シェルスクリプトまたはPython / Perl / Rubyスクリプトを使用することです。

Pythonを使用する1つのオプション:

#!/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)

@NReilinghによるもう1つの短い方法date(シェルスクリプト)の使用:

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

このスクリプトを実行/Applications/Automator.appするサービスを作成するために使用します。Run Shell Script Automatorアクションを追加し、上記のコードを挿入します。どのアプリケーション入力を選択せず選択したテキスト置き換えます。次に保存します。

アプリケーションの名前のメニューを選択することにより、アプリケーションのメニューバーからアクセスできる[ サービス ]メニューに配置されます。使用すると次のようになります。

代替テキスト

で割り当てキーボードショートカットキーボードでの環境設定パネルシステム環境設定

代替テキスト


もはや無料ではないTextExpanderには、あなたが望むものに似た機能があります。これは、部分的なメールテンプレートなどのスニペット挿入用に設計されたアプリケーションです。


TextMateは、シェルまたはスクリプト言語でカスタムコマンドを簡単に定義し、それらにキーボードショートカットを割り当てることができる拡張可能な商用エディターです。


私がそう言うなら$ date "+%Y-%m-%d %T"、もう少しコンパクトです...しかし、私はこれらのどちらも私が望むように機能させることができません。現在のテキスト入力にテキストを挿入するオートマトンアクションを取得するにはどうすればよいですか?
NReilingh 2010

さて、それを理解しました:上部にある "Replaces selected text"をチェックして、挿入する生のシェルスクリプト出力をチェックする必要があります。くそったれのことを理解するのに30分かかりました-代わりにAppleScriptキーストロークを使用して回答を投稿しようとしていました。また、サービスに普遍的にアクセスできるようにしたい場合は、上部にある「サービスがどのアプリケーションでも入力を受信しない」を定義してください。
NReilingh 2010

@NReilingh申し訳ありませんが、私がこれを投稿したので急いでいました。機会があったらすぐに改善するつもりです(これは数分後です)。
ダニエルベック

usr/bin/env Pythonドロップダウンメニューから選択する必要があること、またはそのようなもの(Pythonを含むもの)を追加する必要があります。そうしないと、サービススクリプトを呼び出すアプリケーションは、Pythonを認識できないことになります。少なくともそれができるまで私にはうまくいきませんでした。

後でテキストの選択を解除するにはどうすればよいですか?
Schmunk、2015年

4

10.7と10.8にはバグがあり、メニューバーからサービスメニューが表示されるまで、Automatorサービスのショートカットが機能しない場合があります。また、サービスが実行されるまでに顕著な遅延があります。別のオプションは、次のようにスクリプトにショートカット割り当てることです。

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は押された修飾キーを無視しないため、コマンド以外の修飾キーを持つショートカットを使用してスクリプトを実行する場合は、開始に少し遅延を追加します。FastScriptは、修飾キーが解放されるまで待機してから、キーストロークまたはキーコードコマンドを含むスクリプトを実行します。


Cmd-C古いクリップボードを保存してから新しいクリップボードの内容を設定するまでの目的は何ですか?
ダニエルベック

@DanielBeck何も指摘してくれてありがとう。
Lri

クリップボードの使用は、特にユーザーがClipMenuまたは類似のものを使用している場合、混乱します。
Dan Rosenstark

@Yar Alfredは「一時的な」クリップボードを無視keystrokeし、私のキーボードレイアウトでコロンを挿入する方法を知りません(ただし、少し大文字の場合です)。keystrokeただし、このように短いASCIIのみの文字列を挿入するのに適しています。
Lri

スペイン語でチェックしたばかりなのに、多分私のApplescriptが機能しないと思いました。大丈夫ですが、特定の言語に同じ優先順位が与えられていないのは残念です。これが、スクリプト作成がプログラミングよりもはるかに煩わしい理由です;)そのためにAlfredAppを使用することを確認します。彼らはおそらく$$$に値する
ダン・ローゼンスターク

1

この機能をサービスとして追加するWordServiceと呼ばれるフリーウェアアドオンをインストールできます。これには、システム環境設定->キーボード->ショートカットでキーボードショートカットを割り当てることができます。

Mac OSXヒントからの記事はこちら-http ://www.macosxtips.co.uk/index_files/automatically-insert-date-and-time.php

http://www.devontechnologies.com/download/products.htmlまたはApp Store http://appstore.com/mac/wordserviceからダウンロードします


1

Lauriのソリューションは私のものよりもはるかにエレガントですが、これが私のAppleScriptのみのソリューションです。クリップボードを実行してシェルスクリプトを使用するよりも高速ですか?多分。

とにかく、キーに割り当てるソリューションはたくさんありますが、最も簡単なのはQuicksilver Spark FastScriptsであることがわかりました。Sparkはscptを直接使用できます。これは、AppleScriptソリューションが節約するものです。

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

0

この質問に対する更新として、OS X El Capitanのユーザーは、次のAppleScriptが役立つと思うかもしれません。

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

ユーザーは、@ daniel-beckによる上記の回答で説明されているように、AppleScript実行ワークフローを作成できます。私が作成した例を以下に示します。

オートマトンのアップルスクリプトのスクリーンショット

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.