วิธีปิดการใช้งานคีย์ผสม Option-Space ที่น่ารำคาญสำหรับการเว้นวรรคไม่แตกหัก
นี่เป็นสิ่งที่น่ารำคาญมากใน Eclipse หรือเทอร์มินัลเพราะฉันมักจะพิมพ์พื้นที่ที่ไม่ทำลายแทนที่จะเป็นพื้นที่ปกติ
วิธีปิดการใช้งานคีย์ผสม Option-Space ที่น่ารำคาญสำหรับการเว้นวรรคไม่แตกหัก
นี่เป็นสิ่งที่น่ารำคาญมากใน Eclipse หรือเทอร์มินัลเพราะฉันมักจะพิมพ์พื้นที่ที่ไม่ทำลายแทนที่จะเป็นพื้นที่ปกติ
คำตอบ:
ทำให้~/Library/KeyBindings/DefaultKeyBinding.dict
ไฟล์ของคุณเป็นแบบนี้ (หากไม่มีอยู่ให้สร้างขึ้นหากมีการผูกไฟล์อยู่แล้วให้เพิ่มไฟล์จากด้านล่าง):
{
"~ " = ("insertText:", " ");
}
สิ่งนี้ทำอะไร ทุกครั้งที่คุณกด Option-Space แทนที่จะเป็นการแทรกช่องว่างที่ไม่แบ่ง OS X ตอนนี้จะแทรกช่องว่างปกติ แก้ไขปัญหาแล้ว
คุณต้องรีสตาร์ทอุปกรณ์เพื่อใช้การเปลี่ยนแปลงนี้
DefaultKeyBinding.dict
ไฟล์
ดังที่ได้กล่าวไว้ในข้อคิดเห็นข้อคิดเห็นวิธีแก้ปัญหาที่ให้โดย Martin ไม่ทำงานในบางแอปพลิเคชันที่สำคัญที่สุด (สำหรับฉัน) ในตัวแก้ไข Sublime Text 2 ของฉัน
ดังนั้นสำหรับทุกคนที่มีปัญหาโดยไม่มีช่องว่างในรหัสของคุณคุณสามารถเพิ่ม keybinding ที่กำหนดเองดังต่อไปนี้ใน keymap ผู้ใช้ของคุณ ( "Sublime Text 2 > Preferences > Key Bindings - User"
):
{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } }
สิ่งนี้จะแทรกช่องว่างปกติแทนที่จะเป็นช่องว่าง
ฉันใช้ iTerm2 สำหรับงานส่วนใหญ่ของฉันและสามารถเพิ่มการแมปในบานหน้าต่างการตั้งค่า "คีย์" โดยการเพิ่มคีย์ผสมใหม่ในการตั้งค่า -> คีย์ -> ปุ่มบวก หมายเหตุเมื่อเพิ่มคีย์ให้แน่ใจว่าใส่ช่องว่างเดียวในกล่องด้านล่างตามที่แสดง
คุณสามารถสร้างรูปแบบแป้นพิมพ์แบบกำหนดเองด้วย Ukelele (ดูhttps://superuser.com/a/515151 ) หรือใช้KeyRemap4MacBook :
<item>
<name>Non-Breaking Space to Normal Space</name>
<appendix>(Option+Space to Space)</appendix>
<appendix>(Option+Shift+Space to Space)</appendix>
<identifier>remap.option_space_to_space</identifier>
<autogen>__KeyToKey__ KeyCode::SPACE, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | ModifierFlag::NONE, KeyCode::SPACE</autogen>
<autogen>
__KeyToKey__
KeyCode::SPACE, MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_OPTION | MODIFIERFLAG_EITHER_LEFT_OR_RIGHT_SHIFT | ModifierFlag::NONE,
KeyCode::SPACE,
</autogen>
</item>
เนื่องจากนี่เป็นคำตอบที่ Google แสดงให้คุณเห็นเมื่อค้นหา "วิธีปิดการใช้งานช่องว่างแบบไม่ทำลายใน Sublime Text" ( ดูคำตอบของ x3ro ) ฉันคิดว่าฉันโพสต์คำตอบสำหรับ Sublime Text บน Linux เพิ่มลงในการเชื่อมโยงที่สำคัญของคุณ:
{ "keys": [" "], "command": "insert_snippet", "args": { "contents": " " } }
ไปที่ "การตั้งค่า" → "การเชื่อมโยงคีย์ - ผู้ใช้" เพื่อแก้ไขการเชื่อมโยงคีย์ของคุณ
โปรดทราบว่าช่องว่างใน"keys": [" "]
นั้นเป็นช่องว่างไม่แตก
นอกจากนี้โปรดทราบว่าการเชื่อมโยงคีย์นี้มีผลกับวิดเจ็ตเช่นช่องค้นหา กล่าวอีกนัยหนึ่งคุณไม่สามารถพิมพ์ช่องว่างแบบไม่แบ่งในช่องค้นหาของคุณอีกต่อไปซึ่งอาจเป็นปัญหา หากต้องการปิดใช้งานการเว้นวรรคแบบไม่แบ่งในตัวแก้ไขข้อความให้ใช้การเชื่อมคีย์นี้แทน:
{
"keys": [" "],
"command": "insert_snippet", "args": { "contents": " " },
"context": [
{ "key": "setting.is_widget", "operand": false }
]
}
โซลูชันระดับโลกที่เป็นไปได้คือการตั้งค่าalt- spaceเป็นอย่างอื่นเช่น Show Notification Center ในการตั้งค่าระบบ> คีย์บอร์ด> ทางลัด> การควบคุมภารกิจ
การใช้ OSX Sierra (10.12.6) และแก้ไขปัญหานี้ได้ง่ายมากโดยใช้ Karabiner-Elements:
https://github.com/tekezo/Karabiner-Elements
เมื่อเปิดแล้วให้ไปที่ "การปรับเปลี่ยนที่ซับซ้อน"> "เพิ่มกฎ"> "นำเข้ากฎเพิ่มเติมจากอินเทอร์เน็ต" และดาวน์โหลดกฎ "ปิดใช้งาน alt + spacebar (ช่องว่างที่ไม่ทำให้แตก)" เพิ่มและคุณทำเสร็จแล้ว!
ฉันไม่สามารถแก้ไข KeyBindings ให้ทำงานได้ คล้ายกับคำตอบประเสริฐฉันสิ้นสุดการกำหนดค่าตัวแก้ไขของฉัน (VS Code) เพื่อแทรกช่องว่างปกติโดยการเพิ่ม
{ "key": "alt+space", "command": "type",
"when": "editorTextFocus",
"args": { "text": " " } }
สู่โลกของฉันkeybindings.json
( Preferences: Open Keyboard Shortcuts File
ในชุดคำสั่ง)
สำหรับฉันแล้วการแก้ไข KeyBindings ไม่ทำงาน ฉันใช้ Coda2 เป็นเครื่องมือแก้ไข ฉันจัดการเพื่อทดแทนการทำงานกับ BetterTouchTool แม้ว่า
BetterTouchTool: "Keyboard> Add New Shortcut" จากนั้นพิมพ์ "alt + space" ใน "Keyboard Shortcut" และ "Space" ใน "Trigger Shortcut Keyboard อื่น ๆ "