วิธีที่ง่ายที่สุดในการรับฮอตคีย์ yyyy-mm-dd hh: mm: ss: timestamp บน Mac คืออะไร?


12

เมื่อวันที่ใช้ Windowsผมใช้PSPadแก้ไขซึ่งมีดี ALT-D ประทับเวลาซึ่งคุณสามารถแก้ไขรูปแบบของ e กรัมHH YYYY-MM-DD: mm: ss

เมื่อทำงานนอกโปรแกรมแก้ไขเช่นGoogle เอกสารฉันมีAutohotkeyซึ่งฉันได้ตั้งโปรแกรม CTRL-D เพื่อแทรก yyyy-mm-dd hh: mm: ss timestamp

ตอนนี้ฉันทำงานบนMacส่วนใหญ่ใช้TextWranglerเป็นตัวแก้ไข แต่ฉันไม่สามารถหาฮอตคีย์ลัดในคุณลักษณะของมันได้

วิธีที่ง่ายที่สุดในการรับฮอตคีย์ yyyy-mm-dd hh: mm: ss บน Mac ไม่ว่าจะเป็นในโปรแกรมแก้ไขข้อความ (ฟรี) หรือเทียบเท่า autohotkey (ฟรี) คืออะไร?


โปรดแสดงความคิดเห็นกับคำตอบของฉันหากไม่ได้ผลสำหรับคุณ
Daniel Beck

คำตอบ:


18

ทางเลือกหนึ่งคือการใช้เชลล์สคริปต์หรือสคริปต์ Python / Perl / Ruby

ตัวเลือกหนึ่งโดยใช้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)

อีกอันสั้นกว่าโดย@NReilinghโดยใช้date(เชลล์สคริปต์):

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

ใช้/Applications/Automator.appเพื่อสร้างบริการที่รันสคริปต์นี้ เพิ่มแอคชันRun Shell Script Automator และใส่รหัสด้านบน เลือกการป้อนข้อมูลที่ไม่มีในโปรแกรมใด ๆและข้อความแทนที่เลือก จากนั้นบันทึก

มันจะถูกวางไว้ในเมนูบริการซึ่งสามารถเข้าถึงได้จากแถบเมนูของแอปพลิเคชันใด ๆ โดยเลือกเมนูที่มีชื่อแอปพลิเคชัน อาจมีลักษณะเช่นนี้เมื่อคุณใช้:

ข้อความแสดงแทน

แป้นพิมพ์ลัดกำหนดในแป้นพิมพ์บานหน้าต่างการตั้งค่าในการตั้งค่าระบบ

ข้อความแสดงแทน


TextExpanderไม่มีฟรีอีกต่อไปมีคุณสมบัติคล้ายกับสิ่งที่คุณต้องการ เป็นแอปพลิเคชันที่ออกแบบมาสำหรับการแทรกข้อมูลโค้ดเช่นแม่แบบอีเมลบางส่วน


TextMateเป็นโปรแกรมแก้ไขเชิงพาณิชย์ที่สามารถขยายได้ซึ่งช่วยให้คุณสามารถกำหนดคำสั่งที่กำหนดเองได้อย่างง่ายดายอีกครั้งในภาษาของเชลล์หรือสคริปต์และกำหนดแป้นพิมพ์ลัดให้กับพวกเขา


ถ้าฉันพูดอย่างนั้นตัวเอง$ date "+%Y-%m-%d %T"มันเล็กกว่านี้อีกเล็กน้อย ... แต่ฉันก็ไม่สามารถทำสิ่งเหล่านี้ได้ตามที่ฉันต้องการ เป็นวิธีที่ควรได้รับการดำเนินการอัตโนมัติเพื่อแทรกข้อความที่ป้อนข้อความปัจจุบัน
NReilingh

เอาล่ะลองคิดดู: "แทนที่ข้อความที่เลือก" ที่ด้านบนต้องถูกตรวจสอบเพื่อเอาท์พุทสคริปต์เชลล์ดิบที่จะแทรก สิ่งที่บ้าเอาฉันครึ่งชั่วโมงเพื่อคิดออก - ฉันกำลังจะโพสต์คำตอบโดยใช้การกดแป้นพิมพ์ AppleScript แทน นอกจากนี้ตรวจสอบให้แน่ใจว่าได้กำหนด "บริการไม่ได้รับอินพุตในแอปพลิเคชันใด ๆ " ที่ด้านบนหากคุณต้องการให้บริการสามารถเข้าถึงได้ทั่วโลก
NReilingh

@Reilingh ขออภัยเกี่ยวกับเรื่องนี้ แต่ฉันกำลังรีบที่ฉันโพสต์นี้ด้วยความตั้งใจที่จะปรับปรุงมันเมื่อฉันมีโอกาส (ซึ่งในไม่กี่นาทีตอนนี้)
Daniel Beck

ฉันต้องการเพิ่มว่าคุณต้องเลือกusr/bin/env Pythonหรืออะไรทำนองนั้น (อันที่มี Python) จากเมนูแบบหล่นลงไม่เช่นนั้นแอปพลิเคชันใดก็ตามที่เรียกว่าสคริปต์บริการจะไม่ทราบว่าเป็น Python ของมัน อย่างน้อยมันก็ไม่ได้ผลสำหรับฉันจนกว่าฉันจะทำเช่นนั้น

ฉันจะยกเลิกการเลือกข้อความหลังจากนั้นได้อย่างไร
schmunk

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อย่าเพิกเฉยต่อคีย์ตัวปรับแต่งที่ค้างไว้ดังนั้นเพิ่มความล่าช้าเล็กน้อยในการเริ่มต้นหากคุณเรียกใช้สคริปต์ด้วยช็อตคัตที่มีคีย์ตัวปรับแต่งอื่นนอกเหนือจากคำสั่ง FastScriptsรอจนกว่าจะปล่อยคีย์ตัวดัดแปลงก่อนเรียกใช้สคริปต์ที่มีคำสั่ง keystroke หรือคีย์รหัส


วัตถุประสงค์ของการCmd-Cจัดเก็บคลิปบอร์ดเก่าและการตั้งค่าเนื้อหาคลิปบอร์ดใหม่คืออะไร
Daniel Beck

@DanielBeck ไม่มีอะไรขอบคุณที่ชี้ให้เห็น
Lri

การใช้คลิปบอร์ดนั้นเป็นระเบียบโดยเฉพาะอย่างยิ่งหากผู้ใช้ใช้ ClipMenu หรืออะไรทำนองนั้น
Dan Rosenstark

@Yar Alfred ละเว้นคลิปบอร์ด "ชั่วคราว" และkeystrokeไม่ทราบวิธีการใส่เครื่องหมายโคลอนด้วยรูปแบบแป้นพิมพ์ของฉัน (แต่เป็นกรณีขอบ) keystrokeอาจดีกว่าสำหรับการแทรกสตริง ASCII แบบสั้นเท่านั้นเช่นนี้
Lri

เพิ่งตรวจสอบกับสเปนคิดว่าบางที Applescript ของฉันจะไม่ทำงาน ไม่เป็นไรดีใจที่ภาษาบางภาษาไม่ได้มีความสำคัญเหมือนกัน นี่คือเหตุผลที่การเขียนสคริปต์น่ารำคาญกว่าการเขียนโปรแกรม;) จะตรวจสอบการใช้ AlfredApp สำหรับสิ่งนั้น พวกเขาอาจสมควรได้รับ $$$
Dan Rosenstark

1

คุณสามารถติดตั้งส่วนเสริมฟรีแวร์ที่เรียกว่า WordService ที่เพิ่มฟังก์ชันนี้เป็นบริการซึ่งคุณสามารถกำหนดแป้นพิมพ์ลัดในการตั้งค่าระบบ -> แป้นพิมพ์ -> ทางลัด

นี่คือบทความเกี่ยวกับจาก Mac OSX Tips - 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 ของฉันเท่านั้น มันเร็วกว่าการเรียกใช้ผ่านคลิปบอร์ดและใช้เชลล์สคริปต์หรือไม่ อาจจะ.

อย่างไรก็ตาม: มีจำนวนมากของการแก้ปัญหาจะได้รับมันได้รับมอบหมายให้ที่สำคัญมี แต่ฉันได้พบว่าที่ง่ายที่สุดคือปรอท 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

ผู้ใช้สามารถสร้างเวิร์กโฟลว์Run AppleScriptดังที่อธิบายไว้ในคำตอบข้างต้นโดย @ daniel-beck ตัวอย่างที่ฉันสร้างขึ้นแสดงไว้ด้านล่าง:

สกรีนช็อตของ applescript ใน automator

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.