การสร้างปุ่มลัดหรือแป้นพิมพ์ลัดเพื่อวางวลีข้อความเฉพาะใน Mac OSX


21

ฉันมีวลีข้อความ (จริง ๆ แล้วหลายเฟส) ที่ฉันใช้บ่อยในหลายแอปพลิเคชัน ฉันต้องการสร้างแป้นพิมพ์ลัดหรือปุ่มลัดที่จะวางวลีข้อความนี้ทุกที่ที่ฉันวางเคอร์เซอร์ไว้ในช่องป้อนข้อความ (Apple Mail, Microsoft Word, TextEdit, TextWrangler, หน้าต่างเบราว์เซอร์ ฯลฯ ) แทนที่จะคัดลอกและ วางจากโน้ต

ฉันไม่ต้องการซื้อแอปใด ๆ (ดูเหมือนว่า Keyboard Maestro มีฟังก์ชั่นนี้ แต่ดูเหมือนโง่ที่จะจ่าย $ 36 สำหรับเรื่องนี้) ถึงแม้ว่าแอพฟรีจะใช้ได้ พยายามดูในการตั้งค่าระบบ> แป้นพิมพ์> แป้นพิมพ์ลัด แต่ไม่มีวิธีการแก้ปัญหาที่ชัดเจนและ AppleScripts ทั้งหมดที่ฉันพบดูเหมือนจะแปลไม่ถูกต้องสำหรับฉัน ฉันพบวิธีแก้ไขปัญหาอื่น ๆ สำหรับปัญหานี้ในฟอรัมนี้สำหรับผู้ใช้ Windows (เช่น AutoHotKey) แต่ไม่มีสำหรับผู้ใช้ Mac

คำตอบ:


16

วิธีที่ง่ายที่สุดในการพิมพ์ข้อความด้วย AppleScript คือเรียกใช้:

tell application "System Events" to keystroke "foo bar"

คุณสามารถทริกเกอร์สิ่งนี้ได้ด้วยแป้นพิมพ์ลัดโดยการสร้างQuick Actionใหม่(ก่อนหน้านี้เรียกว่าService ) ใน Automator ตั้งค่าให้รับNo Inputจากนั้นลากRun AppleScriptจากบานหน้าต่างด้านซ้ายไปทางขวา

ควรมีลักษณะเช่นนี้:

บันทึกมันแล้วกำหนดแป้นพิมพ์ลัดเพื่อบริการนี้อยู่ภายใต้การตั้งค่าระบบ» Keyboard »แป้นพิมพ์ลัด


ว้าวขอบคุณมาก @slhck! ฉันลองสิ่งนี้ แต่กำลังมีปัญหาในขั้นตอนสุดท้าย ไม่ปรากฏในเมนู "บริการ" เมื่อฉันไปที่ "แป้นพิมพ์ลัด" ในการตั้งค่าระบบ ฉันรู้ว่ามันทำงานเพราะเมื่อฉันเปิด Automator และกด Play ข้อความจะถูกพิมพ์ลงในแอปพลิเคชันก่อนหน้า แต่มันจะไม่ปรากฏในบริการดังนั้นฉันจึงสามารถเพิ่มแป้นพิมพ์ลัดแม้ว่าฉันจะบันทึกไว้ในห้องสมุด> โฟลเดอร์บริการ . ตามคำแนะนำของฟอรัมอื่นที่ฉัน Googled ฉันตรวจสอบอีกครั้งว่ามีการตั้งค่าอินพุตบริการเป็น "บริการได้รับ: ไม่มีอินพุต" (เดิม) และลองเปิดตัว Finder อีกครั้ง ความคิดใด ๆ
Ruthie

ดังนั้นคุณบันทึกจาก Automator? โดยปกติควรปรากฏในตัวเลือกแป้นพิมพ์ลัดภายใต้บริการและทั่วไปที่ด้านล่าง คุณลองออกจากระบบและกลับเข้าสู่ระบบหรือเริ่มต้นใหม่หรือไม่?
slhck

@slhck สิ่งนี้ฟังดูเหมือนเป็นวิธีที่ดีในการทำเช่นนี้ แต่คุณช่วยอธิบายรายละเอียดของคำตอบของคุณอีกเล็กน้อยได้ไหม? ฉันไม่คล่องแคล่วในการทำงานของ Automator เมื่อฉันเปิดใช้งานระบบจะถามฉันว่า "เลือกประเภทเอกสารของคุณ" แล้วฉันก็หลงทาง ฉันจะไปกับคำตอบของ Jonathan Huie ในตอนนี้ แต่ก็ยังหมายถึงการพิมพ์บางอย่าง ... ขอบคุณ!
MicroMachine

@fabriced คุณต้องสร้างบริการใน Automator
slhck

2
ฉันพบว่าใช้งานได้ในโปรแกรมแก้ไขข้อความ แต่ไม่ได้อยู่ในฟิลด์ข้อความบนเว็บไซต์ ใครอีกไหม?
เอเลียต

6

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

วิธีการนั้นไม่สามารถใช้งานได้เช่นกัน มีข้อผิดพลาดใน 10.7 และ 10.8 ซึ่งทางลัดสำหรับบริการ Automator จะไม่ทำงานจนกว่าคุณจะวางเมาส์เหนือเมนูบริการ

ฉันใช้FastScriptเพื่อกำหนดสคริปต์นี้ให้กับ F3:

try
    set old to the clipboard as record
end try
try
    tell application "System Events"
        key code 123 using {option down, shift down}
        keystroke "c" using command down
    end tell
    delay 0.05
    set input to the clipboard
    read POSIX file "/Users/lauri/Notes/snippets.txt" as «class utf8» using delimiter linefeed
    repeat with p in result
        considering case
            if p starts with (input & " ") then
                set the clipboard to text ((offset of space in p) + 1) thru -1 of p
                tell application "System Events" to keystroke "v" using command down
                delay 0.05
                exit repeat
            end if
        end considering
    end repeat
end try
try
    set the clipboard to old
end try

snippets.txt มีลักษณะเช่นนี้:

m name@example.com
cmd ⌘

อีกตัวเลือกหนึ่งคือการใช้DefaultKeyBinding.dict สิ่งนี้จะทำให้⌥Mหรือ⌥Xและ m ใส่ที่อยู่อีเมล:

{
    "~m" = (insertText:, "name@example.com");
    "~x" = {
        "m" = ("insertText:", "name@example.com");
    };
}

นอกจากนี้คุณยังสามารถเพิ่มข้อความที่กำหนดเองไปยังป๊อปอัปที่แสดงเมื่อถือกุญแจ ดูคำถามนี้


2

ดูแอพที่เรียกว่า "Textexpander" ซึ่งจะช่วยให้คุณสามารถกำหนด textphrases เช่น@ddซึ่งเมื่อพิมพ์ - จะขยายไปยังเนื้อหาที่กำหนด - ในกรณีนั้นคือวันที่ที่แท้จริง

AFAIK มันเป็น Shareware ดังนั้นจึงไม่ฟรีจริง ๆ แต่โหมดสาธิตไม่ได้กำหนดเวลา


เพียงบันทึกย่อในกรณีที่มันมีประโยชน์ต่อผู้อื่น - TextExpander ไม่สามารถใช้งานได้ในหน้าต่างเทอร์มินัล X11
ggkmath

2

แอปอัลเฟรดให้คุณทำสิ่งนี้ - รวมทั้งสิ่งอื่น ๆ อีกมากมาย - โดยใช้คุณสมบัติเวิร์กโฟลว์และตัวอย่าง ฉันใช้อัลเฟรดตลอดเวลาและแนะนำเป็นอย่างยิ่ง ในการปลดล็อคเวิร์กโฟลว์คุณต้องจ่ายค่าลิขสิทธิ์ Powerpack แต่คุณจะไม่เสียใจ 😉


ฉันยอมรับว่านี่เป็นหนึ่งในแอพที่มีประโยชน์ที่สุดที่ทุกคนมี Mac ควรมี ฉันย้ายจากบริการ Automator แบบกำหนดเองไปยัง Alfred อย่างสมบูรณ์
slhck

1

เพียงคลิกที่: การตั้งค่าระบบแป้นพิมพ์ข้อความและป้อนทางลัดและวลีของคุณ


1
ฉันชอบคำตอบนี้ แต่ไม่อนุญาตให้ใช้ "แป้นพิมพ์ลัด" หรือ "ฮอตคีย์" อย่างใดอย่างหนึ่งยังคงต้องป้อนข้อความ (และไม่ใช่การรวมกันของแป้น) ที่ได้รับการแทนที่ด้วยเครื่อง
MicroMachine

1
ดูเหมือนว่าจะใช้งานได้ในแอพที่เลือกไม่กี่แอปเท่านั้น มันไม่ทำงานในสถานที่ส่วนใหญ่ที่ฉันชอบเช่นช่องป้อนข้อมูลเบราว์เซอร์ไคลเอนต์อีเมลของฉัน (ธันเดอร์เบิร์ด) เทอร์มินัล ฯลฯ
อย่าตื่นตระหนก

0

แป้นพิมพ์แยกต่างหากที่เรียกว่า Martian Keyboard จะเก็บสตริงข้อความเช่นประโยคและแม้แต่ย่อหน้าสั้น ๆ มันจะช่วยให้คุณประหยัดจากการพิมพ์การกดแป้นพิมพ์ที่น่ารำคาญที่คุณพิมพ์ซ้ำแล้วซ้ำเล่าทุกวัน ปุ่มเหล่านี้ทำงานเหมือนปุ่ม "วาง" มันมีความสามารถในการเก็บทางลัดทั้งหมดใน Word บนแป้นพิมพ์เดียวโดยใช้ปุ่ม shift layer ส่วนใหญ่ใช้สำหรับมืออาชีพดังนั้นมันจึงค่อนข้างแพง

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