OS X'te klavye tuşlarını nasıl yeniden bağlayabilirim?


5

Eğik çizgi için özel bir klavye kısayoluna ihtiyacım var \.

Bunu yarattım ~/Library/KeyBindings/DefaultKeyBinding.dictve içine koydum:

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

+ (Evet, klavyemde "ö" karakterim var) tuşuna bastığınızda eğik çizgiyi tetiklemesi gerekiyor ö .

sourceDosyaya çalışırken , bu hatayı alıyorum:

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

Sözdiziminin nesi yanlış? Daha iyi bir yolu var mı?


3
Xahlee.info/kbd/osx_keybinding.html uyarınca "DefaultKeyBinding.dict" için kısa bir web taramasından : "[Kakao metin sistemini kullanan sadece uygulama" bunu destekleyecektir. " Bu bir kabuk dosyası değildir ve 'kaynak' ile bash yapıldığında çalışmaz.
mtklr

@mtklr Muhtemelen haklısın. Garip bir durum çünkü StackExchange'in bazı yanıtları, OS X'te özel anahtar bağlamaları oluşturmak için bu yöntemi önerdi - bu yüzden ilk başta bu işe katıldım.
Winterflags

Yanıtlar:


3

Etkinleştirmek için CmdÖ-> \sadece tuş takımını Karabiner ile yeniden eşleştirin. İhtiyacınız olan kısayol önceden tanımlanmamış olduğundan kendi yazınızı yazmanız gerekir:

  1. Karabiner'i indirin, kurun ve açın
  2. Bir menüde aç Karabiner -> Tercihler
  3. Çeşitli & Kaldır sekmesini açın
  4. Düğmesine basın Open private.xml
  5. Private.xml dosyasını uygun bir düzenleyici ile açın
  6. Özel anahtar kodunu girin

    Örnek 1 ( cmdÖ-> \):

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

    Örnek 2 ( cmd_RÖ-> \cmd_R yalnızca doğru komut anahtarıdır, cmd_LÖbir çıktısı yoktur!):

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

    Örnek 3 ( cmd_R-> \sağ komut tuşunu başka bir amaç için kullanamazsınız):

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

    Örnek 4 ( cmd_R-> \örnek 3'e benzer, ancak sağ komut tuşunu normal komut tuşu olarak kullanabilirsiniz-> isabetlere ulaşmak cmd_R\ ancak cmd_RSdosyaları kaydeder):

    <?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. Dosya 'yı kaydet

  8. Bir menüde aç Karabiner -> Tercihler sekmesini değiştir Anahtar değiştir
  9. ReloadXML düğmesine basın
  10. Yeniden eşlemeyi etkinleştirin. Başlangıçta listelenmelidir.

Bunun için çok teşekkürler! Özellikle cmd_Rönerin başına bağlamayı güçlü buldum .
Winterflags

@Winterflags Kazara, tüm ek bölümlerde, back_slash yerine forward_slash yaptım. Bunu değiştirdim. Bu sadece kozmetik bir problem.
klanomath

Bu benim için çalışmayı durdurdu - XML'i değiştirmedim ve geçmişte çalıştı. Çalışmamasının bariz bir nedeni varsa merak ediyorum (örneğin, sözdizimi değişti)?
Winterflags

1

Neden Karabiner'i kullanmıyorsun?

OS X için güçlü ve sağlam bir klavye özelleştiricisi.

  • Hazırlanan ayarlardan kolayca özelleştirebilirsiniz.

  • XML ile kendi ayarlarınızı da ekleyebilirsiniz.

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


1
Karabiner'in macOS Sierra üzerinde çalışmadığını ve yazarların bu işletim sistemi üzerinde çalışmadan önce önemli değişikliklerin gerekli olacağını belirtti.
Peter,

Sierra 16 Eylül - @Peter "21 Aralık '15 cevap"
StrawHara

Teşekkürler MrMojoRinsin - Bu "tarih" olaylarının ne olduğunu hep merak etmişimdir. Cidden, bunu işaret ediyordum, böylece bugün (veya yakın gelecekte) bu yazıya rastlayabilecek herhangi biri, cevabınızın macOS Sierra için (henüz) geçerli olmadığını bilir.
Peter,

1

Bu sayfayaDefaultKeyBinding.dict göre kısa bir web taramasından :

Kakao metin sistemini kullanan [sadece] uygulama bunu destekleyecektir.

Bu bir kabuk dosyası değildir ve 'kaynak' ile bash yapıldığında çalışmaz.

Kaynak: @mtklr yorum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.