วิธีการปิดการใช้งานการรวมกันของปุ่มตัวเลือกพื้นที่สำหรับช่องว่างไม่ทำลาย?


59

วิธีปิดการใช้งานคีย์ผสม Option-Space ที่น่ารำคาญสำหรับการเว้นวรรคไม่แตกหัก

นี่เป็นสิ่งที่น่ารำคาญมากใน Eclipse หรือเทอร์มินัลเพราะฉันมักจะพิมพ์พื้นที่ที่ไม่ทำลายแทนที่จะเป็นพื้นที่ปกติ


3
FWIW จะเรียกว่าปุ่มตัวเลือกแทนปุ่ม alt บน Mac
Chealion

เป็นไปได้ไหมที่ทำให้เทอร์มินัลแสดงเป็นอักขระย้อนกลับหรือเรียงลำดับดังนั้นคุณจะเห็นได้ทันทีเมื่อพิมพ์ผิด? เพราะบางครั้งคุณจริงไม่ต้องการพิมพ์ nbsp
outrin

คำตอบ:


59

ทำให้~/Library/KeyBindings/DefaultKeyBinding.dictไฟล์ของคุณเป็นแบบนี้ (หากไม่มีอยู่ให้สร้างขึ้นหากมีการผูกไฟล์อยู่แล้วให้เพิ่มไฟล์จากด้านล่าง):

{
"~ " = ("insertText:", " ");
}

สิ่งนี้ทำอะไร ทุกครั้งที่คุณกด Option-Space แทนที่จะเป็นการแทรกช่องว่างที่ไม่แบ่ง OS X ตอนนี้จะแทรกช่องว่างปกติ แก้ไขปัญหาแล้ว

คุณต้องรีสตาร์ทอุปกรณ์เพื่อใช้การเปลี่ยนแปลงนี้


ฉันไม่สามารถทำงานกับ OSX 10.7 :(
Eemeli Kantola

4
@EemeliKantola มันยังใช้งานได้สำหรับฉัน แต่คุณต้องเปิดแอปพลิเคชันใหม่เพื่อใช้การเปลี่ยนแปลง เทอร์มินัล Xcode และแอปพลิเคชันข้ามแพลตฟอร์มจำนวนมากไม่สนับสนุน DefaultKeyBinding.dict
Lri

1
@LauriRanta Terminal ดูเหมือนว่าจะรองรับDefaultKeyBinding.dictไฟล์
Ragnar123

ใช้งานได้กับ Yosemite 10.10.2 ฉันสร้างไดเรกทอรีและไฟล์ตั้งแต่เริ่มต้น ขอบคุณมัด!
Petr Cibulka

1
ยังทำงานให้ฉันใน El Capitan, OS X 10.11 ขอบคุณ!
n2o

14

ดังที่ได้กล่าวไว้ในข้อคิดเห็นข้อคิดเห็นวิธีแก้ปัญหาที่ให้โดย Martin ไม่ทำงานในบางแอปพลิเคชันที่สำคัญที่สุด (สำหรับฉัน) ในตัวแก้ไข Sublime Text 2 ของฉัน

ดังนั้นสำหรับทุกคนที่มีปัญหาโดยไม่มีช่องว่างในรหัสของคุณคุณสามารถเพิ่ม keybinding ที่กำหนดเองดังต่อไปนี้ใน keymap ผู้ใช้ของคุณ ( "Sublime Text 2 > Preferences > Key Bindings - User"):

{ "keys": ["alt+space"], "command": "insert_snippet", "args": {"contents": " " } }

สิ่งนี้จะแทรกช่องว่างปกติแทนที่จะเป็นช่องว่าง


11

ฉันใช้ iTerm2 สำหรับงานส่วนใหญ่ของฉันและสามารถเพิ่มการแมปในบานหน้าต่างการตั้งค่า "คีย์" โดยการเพิ่มคีย์ผสมใหม่ในการตั้งค่า -> คีย์ -> ปุ่มบวก หมายเหตุเมื่อเพิ่มคีย์ให้แน่ใจว่าใส่ช่องว่างเดียวในกล่องด้านล่างตามที่แสดง

สกรีนช็อตของการเพิ่มแป้นพิมพ์ลัด


ทางออกที่ดีมาก! เฮ็คฉันยังคงได้รับข้อมูลที่มีค่าจากโพสต์สี่ปี :-)
Malax

คุณทำให้วันของฉัน!
Enrique Marcos

6

คุณสามารถสร้างรูปแบบแป้นพิมพ์แบบกำหนดเองด้วย Ukelele (ดูhttps://superuser.com/a/515151 ) หรือใช้KeyRemap4MacBook :

https://github.com/tekezo/KeyRemap4MacBook/blob/master/src/core/server/Resources/include/checkbox/standards/space.xml

<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>

3

เนื่องจากนี่เป็นคำตอบที่ 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 }
    ]
}

3

โซลูชันระดับโลกที่เป็นไปได้คือการตั้งค่าalt- spaceเป็นอย่างอื่นเช่น Show Notification Center ในการตั้งค่าระบบ> คีย์บอร์ด> ทางลัด> การควบคุมภารกิจ

ป้อนคำอธิบายรูปภาพที่นี่


3

การใช้ OSX Sierra (10.12.6) และแก้ไขปัญหานี้ได้ง่ายมากโดยใช้ Karabiner-Elements:

https://github.com/tekezo/Karabiner-Elements

เมื่อเปิดแล้วให้ไปที่ "การปรับเปลี่ยนที่ซับซ้อน"> "เพิ่มกฎ"> "นำเข้ากฎเพิ่มเติมจากอินเทอร์เน็ต" และดาวน์โหลดกฎ "ปิดใช้งาน alt + spacebar (ช่องว่างที่ไม่ทำให้แตก)" เพิ่มและคุณทำเสร็จแล้ว!


3

ฉันไม่สามารถแก้ไข KeyBindings ให้ทำงานได้ คล้ายกับคำตอบประเสริฐฉันสิ้นสุดการกำหนดค่าตัวแก้ไขของฉัน (VS Code) เพื่อแทรกช่องว่างปกติโดยการเพิ่ม

{ "key": "alt+space", "command": "type", 
                      "when": "editorTextFocus",
                      "args": { "text": " " } }

สู่โลกของฉันkeybindings.json( Preferences: Open Keyboard Shortcuts Fileในชุดคำสั่ง)


1

สำหรับฉันแล้วการแก้ไข KeyBindings ไม่ทำงาน ฉันใช้ Coda2 เป็นเครื่องมือแก้ไข ฉันจัดการเพื่อทดแทนการทำงานกับ BetterTouchTool แม้ว่า

BetterTouchTool: "Keyboard> Add New Shortcut" จากนั้นพิมพ์ "alt + space" ใน "Keyboard Shortcut" และ "Space" ใน "Trigger Shortcut Keyboard อื่น ๆ "


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