Bagaimana cara menonaktifkan kombinasi tombol Option-Spasi untuk ruang yang tidak putus?

59

Bagaimana cara menonaktifkan kombinasi tombol Pilihan-Spasi yang menjengkelkan untuk ruang yang tidak putus?

Ini sangat menjengkelkan di Eclipse atau terminal karena saya sering mengetik ruang non-breaking bukan yang biasa.

Malax
sumber
3
FWIW, Ini disebut sebagai tombol pilihan daripada tombol alt pada Mac.
Chealion
Apakah mungkin untuk membuat Terminal menampilkan nbsp sebagai karakter terbalik atau semacamnya, sehingga Anda akan langsung melihatnya ketika Anda salah ketik? Karena beberapa kali Anda benar-benar tidak ingin mengetik nbsp a.
sebagainyarin

Jawaban:

61

Jadikan ~/Library/KeyBindings/DefaultKeyBinding.dictfile Anda terlihat seperti ini (jika tidak ada, buatlah, jika sudah ada ikatan di dalamnya, tambahkan saja dari bawah):

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

Apa fungsinya? Setiap kali Anda menekan Option-Space alih-alih memasukkan ruang yang tidak melanggar OS X sekarang menyisipkan ruang biasa. Masalah diperbaiki.

Anda perlu memulai ulang perangkat untuk menerapkan perubahan ini.

Martin S.
sumber
Saya tidak bisa mendapatkan pekerjaan ini di OSX 10.7 :(
Eemeli Kantola
4
@EemeliKantola Ini masih berfungsi untuk saya, tetapi Anda harus membuka kembali aplikasi untuk menerapkan perubahan. Terminal, Xcode, dan banyak aplikasi lintas platform tidak mendukung DefaultKeyBinding.dict.
Lri
1
@LauriRanta Terminal sepertinya mendukung DefaultKeyBinding.dictfile tersebut.
Ragnar123
Ini bekerja pada Yosemite 10.10.2. Saya telah membuat direktori dan file dari awal. Terima kasih banyak!
Petr Cibulka
1
Juga bekerja untuk saya di El Capitan, OS X 10.11. Terima kasih!
n2o
14

Seperti disebutkan dalam komentar, solusi yang diberikan oleh Martin tidak bekerja di beberapa aplikasi, yang paling penting (bagi saya) di editor saya, Sublime Text 2.

Jadi untuk Anda yang bermasalah dengan tidak ada spasi di kode Anda, Anda dapat menambahkan pengikat tombol kustom berikut ke dalam keymap pengguna Anda ( "Sublime Text 2 > Preferences > Key Bindings - User"):

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

Ini akan memasukkan ruang reguler alih-alih yang tidak melanggar.

fresskoma
sumber
11

Saya menggunakan iTerm2 untuk sebagian besar pekerjaan saya dan pemetaan dapat ditambahkan di panel preferensi "Tombol", dengan menambahkan kombinasi tombol baru di Preferensi -> Tombol -> tombol tambah. Catatan saat menambahkan kunci pastikan untuk menempatkan satu ruang di kotak bawah seperti yang ditunjukkan.

screencap menambahkan pintasan keyboard

Simon Walker
sumber
Solusi yang sangat bagus! Heck, saya masih mendapatkan informasi berharga dari pos berusia empat tahun. :-)
Malax
Kamu membuat hariku!
Enrique Marcos
6

Anda juga dapat membuat tata letak keyboard khusus dengan Ukelele (lihat https://superuser.com/a/515151 ) atau menggunakan 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>
Lri
sumber
3

Karena ini adalah jawaban yang Google tunjukkan kepada Anda ketika mencari "Cara menonaktifkan spasi yang tidak melanggar dalam Teks Sublime" ( lihat jawaban x3ro ) Saya pikir saya akan memposting jawaban untuk Teks Sublime di Linux. Tambahkan ini ke binding utama Anda:

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

Buka "Preferensi" → "Binding kunci - Pengguna" untuk mengedit binding kunci Anda.

Perhatikan bahwa ruang dalam "keys": [" "]adalah ruang non-breaking.

Perhatikan juga bahwa pengikatan kunci ini juga memengaruhi widget, seperti kotak pencarian. Dengan kata lain, Anda tidak bisa lagi mengetik ruang yang tidak melanggar ke dalam kotak pencarian Anda, yang bisa menjadi masalah. Untuk menonaktifkan spasi tanpa putus di editor teks, gunakan pengikatan tombol ini sebagai gantinya:

{
    "keys": [" "],
    "command": "insert_snippet", "args": { "contents": " " },
    "context": [
        { "key": "setting.is_widget", "operand": false }
    ]
}
Hubro
sumber
3

Solusi global yang mungkin adalah mengatur alt- spaceke sesuatu yang lain seperti Show Notification Center di System Preferences> Keyboard> Shortcuts> Mission Control.

masukkan deskripsi gambar di sini

Ari P
sumber
3

Menggunakan OSX Sierra (10.12.6), dan mengatasinya dengan sangat mudah dengan menggunakan Karabiner-Elements:

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

Setelah dibuka, buka "Modifikasi Kompleks"> "Tambahkan Aturan"> "Impor lebih banyak aturan dari Internet", dan unduh aturan "Nonaktifkan alt + bilah spasi (ruang nonbreaking)". Tambahkan, dan Anda selesai!

Terje Andersen
sumber
3

Saya juga tidak bisa mendapatkan perbaikan KeyBindings bekerja. Mirip dengan jawaban Sublime, saya akhirnya mengkonfigurasi editor saya (VS Code) untuk memasukkan ruang normal dengan menambahkan

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

ke global saya keybindings.json( Preferences: Open Keyboard Shortcuts Filedi palet perintah).

pengguna2361830
sumber
1

Bagi saya perbaikan KeyBindings tidak berhasil. Saya menggunakan Coda2 sebagai editor. Saya berhasil mendapatkan penggantian untuk bekerja dengan BetterTouchTool.

BetterTouchTool: "Keyboard> Tambahkan Pintasan Baru" lalu ketikkan "alt + spasi" di "Pintasan Keyboard" dan "Space" di "Trigger Shortcut Keyboard Lain"

Sean Grünböck
sumber
Terima kasih !, bettertouchtool memiliki solusi untuk semua masalah: p
Steven.B