ฉันจะเชื่อมโยงแป้นแป้นพิมพ์ใหม่ใน OS X ได้อย่างไร


4

ฉันต้องการแป้นพิมพ์ลัดที่กำหนดเองสำหรับการเฉือนกลับ \ .

ฉันได้สร้าง ~/Library/KeyBindings/DefaultKeyBinding.dict และใส่มันลงไป:

{
    "@ö" = ("insertText:", "\\");
}

มันควรจะทริกเกอร์แบ็กสแลชเมื่อกด + ö (ใช่ฉันมีอักขระ "ö" บนแป้นพิมพ์)

เมื่อพยายาม source ไฟล์ฉันได้รับข้อผิดพลาดนี้:

-bash: DefaultKeyBinding.dict: line 2: syntax error near unexpected token `('
-bash: DefaultKeyBinding.dict: line 2: `    "@ö" = ("insertText:", "\\");'

มีอะไรผิดปกติกับไวยากรณ์หรือไม่ มีวิธีที่ดีกว่า?


3
จากการค้นหาเว็บโดยย่อสำหรับ "DefaultKeyBinding.dict" ตาม xahlee.info/kbd/osx_keybinding.html : "แอปพลิเคชันเดียวที่ [ใช้] ระบบข้อความ Cocoa จะสนับสนุนสิ่งนี้" นี่ไม่ใช่ไฟล์เชลล์และจะไม่ทำงานเมื่อ 'ซอร์ส' ผ่าน bash
mtklr

@mtklr คุณอาจพูดถูก มันแปลกเพราะคำตอบจำนวนมากใน StackExchange แนะนำวิธีนี้สำหรับการสร้างการผูกคีย์แบบกำหนดเองใน OS X - นั่นเป็นสาเหตุที่ฉันเข้ามาเกี่ยวข้อง
Winterflags

คำตอบ:


2

การเปิดใช้งาน cmd Ö - & gt; \ เพียงทำการแมปคำสั่งผสมคีย์กับ Karabiner ทางลัดที่คุณต้องการไม่ได้ถูกกำหนดไว้ล่วงหน้าดังนั้นคุณต้องเขียนเอง:

  1. ดาวน์โหลดติดตั้งและเปิด Karabiner
  2. เปิดในเมนู Karabiner - & gt; การตั้งค่า
  3. เปิดแท็บ อื่น ๆ & amp; ถอนการติดตั้ง
  4. กดปุ่ม เปิด private.xml
  5. เปิดไฟล์ private.xml ด้วยโปรแกรมแก้ไขที่เหมาะสม
  6. ป้อนรหัสที่กำหนดเอง

    ตัวอย่างที่ 1 ( cmd Ö - & gt; \ ):

    <?xml version="1.0"?>
    <root>
        <item>
          <name>Command-Ö to Backslash</name>
          <appendix>(Change Command-Ö to \)</appendix>
          <identifier>remap.command_ö_to_backslash</identifier>
          <autogen>__KeyToKey__ KeyCode::GERMAN_O_UMLAUT, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_COMMAND, KeyCode::KEY_7, ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L</autogen>
        </item>
    </root>
    

    ตัวอย่างที่ 2 ( cmd_R Ö - & gt; \ cmd_R เป็นคีย์คำสั่งที่ถูกต้องเท่านั้น cmd_L Ö ไม่มีเอาต์พุต!):

    <?xml version="1.0"?>
    <root>
        <item>
          <name>Command_R-Ö to Backslash</name>
          <appendix>(Change Command_R-Ö to \)</appendix>
          <identifier>remap.command_r_ö_to_backslash</identifier>
          <autogen>__KeyToKey__ KeyCode::GERMAN_O_UMLAUT, ModifierFlag::COMMAND_R, KeyCode::KEY_7, ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L</autogen>
        </item>
    </root>
    

    ตัวอย่างที่ 3 ( cmd_R - & gt; \ คุณไม่สามารถใช้คีย์คำสั่งที่ถูกต้องเพื่อจุดประสงค์อื่นได้):

    <?xml version="1.0"?>
    <root>
        <item>
          <name>Command_R to Backslash</name>
          <appendix>(Change Command_R to \)</appendix>
          <identifier>remap.command_r_to_backslash</identifier>
          <autogen>__KeyToKey__ KeyCode::COMMAND_R, KeyCode::KEY_7, ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L</autogen>
        </item>
    </root>
    

    ตัวอย่างที่ 4 ( cmd_R - & gt; \ คล้ายกับตัวอย่าง 3 แต่คุณสามารถใช้คีย์คำสั่งที่ถูกต้องเป็นคีย์คำสั่งปกติ - & gt; กดปุ่ม cmd_R ให้ผลผลิต \ แต่ cmd_R S บันทึกไฟล์):

    <?xml version="1.0"?>
    <root>
        <item>
          <name>When you type Command_R only, send Backslash</name>
          <appendix>(Change Command_R lazy to \)</appendix>
          <identifier>remap.command_r_lazy_to_backslash</identifier>
          <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, KeyCode::VK_LAZY_COMMAND_R, KeyCode::KEY_7, ModifierFlag::SHIFT_L | ModifierFlag::OPTION_L</autogen>
        </item>
    </root>
    
  7. บันทึกไฟล์

  8. เปิดในเมนู Karabiner - & gt; ตั้งค่าแท็บ เปลี่ยนรหัส
  9. กดปุ่ม ReloadXML
  10. เปิดใช้งานการแมปใหม่ มันควรจะถูกระบุไว้ที่จุดเริ่มต้น

ขอบคุณมากสำหรับสิ่งนี้! ฉันพบว่ามันมีประสิทธิภาพในการผูก cmd_R ตามข้อเสนอแนะของคุณ
Winterflags

@Winterflags โดยไม่ได้ตั้งใจฉันทำ forward_slash แทน back_slash ในส่วนภาคผนวกทั้งหมด ฉันแก้ไขมัน มันเป็นเพียงปัญหาเครื่องสำอาง
klanomath

สิ่งนี้หยุดทำงานสำหรับฉัน - ฉันไม่ได้เปลี่ยน XML และใช้งานได้ในอดีต แค่อยากรู้ว่ามีเหตุผลบางอย่างที่ชัดเจนว่ามันไม่ทำงาน (เช่นไวยากรณ์เปลี่ยนไป)
Winterflags

1

ทำไมคุณไม่ใช้ Karabiner?

ตัวปรับแต่งคีย์บอร์ดที่ทรงพลังและเสถียรสำหรับ OS X

  • คุณสามารถปรับแต่งได้อย่างง่ายดายจากการตั้งค่าที่เตรียมไว้

  • คุณยังสามารถเพิ่มการตั้งค่าของคุณเองโดย XML

https://pqrs.org/osx/karabiner/


1
โปรดทราบว่า Karabiner ไม่ทำงานบน macOS Sierra และผู้เขียนระบุว่าจำเป็นต้องมีการเปลี่ยนแปลงมากมายก่อนที่จะทำงานบนระบบปฏิบัติการนั้น
Peter

@ ปีเตอร์ "ตอบ 21 ธันวาคม 15" - เซียร์รา 16 กันยายน
StrawHara

ขอบคุณ MrMojoRinsin - ฉันสงสัยอยู่เสมอว่าสิ่งเหล่านี้คืออะไร "วันที่" อย่างจริงจังแม้ว่าฉันจะชี้ให้เห็นเพื่อให้ทุกคนในวันนี้ (หรือในอนาคตอันใกล้) ที่อาจสะดุดข้ามโพสต์นี้จะรู้ว่าคำตอบของคุณไม่ได้ใช้กับ macOS Sierra (ยัง)
Peter

1

จากการค้นหาเว็บสั้น ๆ สำหรับ DefaultKeyBinding.dictตาม หน้านี้ :

เฉพาะแอปพลิเคชันที่ [ใช้] ระบบข้อความ Cocoa เท่านั้นที่รองรับสิ่งนี้

นี่ไม่ใช่ไฟล์เชลล์และจะไม่ทำงานเมื่อ 'ซอร์ส' ผ่าน bash

ที่มา: @mtklr ความคิดเห็น .

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