DefaultKeyBinding.dict - XML ​​plist biçimine karşı eski stil NeXT biçimi


9

DefaultKeyBinding.dict

~/Library/KeyBindings/DefaultKeyBinding.dictEski stil NeXT biçimi (: Dosya Mac OS X'te kendi tuş bağları iki biçimlerden birinde olabilir tanımlamak sağlar örneği ) veya modern tarzda bir XML plist biçimi ( örnek ).

Yeniden bağlanıyor +

Komut geri tuşu ( + ) ' ya yeniden bağlanmak istedim deleteWordBackward:ve bu AskDifferent iş parçacığında biraz yardım aldım . Bunu benim DefaultKeyBinding.dictdosyam olarak kullanmam önerildi :

/* my keybindings */
{
"@\U007F" = "deleteWordBackward:"; /* delete backwards one word */
}  

Bu tavsiye işe yaradı (teşekkürler, çocuklar!), Ama zaten DefaultKeybinding.dictXML formatında bir çalışma var , bu yüzden bu şekilde çalışmasını sağlamak istedim. İlk olarak sadece şu metni mevcut dosyamın altına ekledim:

<key>@\U007F</key>
<string>deleteWordBackward:</string>

Ayrıca, sadece + girişiyle yepyeni bir XML biçimli dosya oluşturmayı denedim :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>@\U007F</key>
    <string>deleteWordBackward:</string>
</dict>
</plist>

Ancak iki dosya da çalışmadı. Görünen durum + işaretini XML plist biçiminde değil, sadece eski stil NeXT biçiminde yeniden bağlayabilmenizdir. Sorularım:

  1. Bu doğru mu, yoksa XML biçimine geçerken sözdizimi bir şekilde değişmeli mi?
  2. Dosyamın geri kalanını DefaultKeyBinding.dicteski sözdizimine taşımaya pişman mıyım? Bunu yapmak için çok fazla iş olmaz - sadece bir veya iki düzine giriş - ancak eski stilin başka bir nedenden dolayı kullanımdan kaldırıldığından veya tavsiye edilmediğinden emin değilim.

Düzenle: Orijinal DefaultKeyBinding.dict

Birisi yorumlarda orijinal dosyam hakkında bilgi istedi, bu yüzden her şeyi buraya ekleyebileceğimi düşünüyorum.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key></key>
    <string>complete:</string>
    <key>^ </key>
    <string>setMark:</string>
    <key>^a</key>
    <string>moveToBeginningOfLine:</string>
    <key>^e</key>
    <string>moveToEndOfLine:</string>
    <key>^j</key>
    <string>setMark:</string>
    <key>^v</key>
    <string>pageDown:</string>
    <key>^w</key>
    <string>deleteToMark:</string>
    <key>^x</key>
    <dict>
        <key>^m</key>
        <string>selectToMark:</string>
        <key>^x</key>
        <string>swapWithMark:</string>
    </dict>
    <key>~</key>
    <string>deleteWordBackward:</string>
    <key>~&lt;</key>
    <string>moveToBeginningOfDocument:</string>
    <key>~&gt;</key>
    <string>moveToEndOfDocument:</string>
    <key>~^h</key>
    <string>deleteWordBackward:</string>
    <key>~b</key>
    <string>moveWordBackward:</string>
    <key>~d</key>
    <string>deleteWordForward:</string>
    <key>~f</key>
    <string>moveWordForward:</string>
    <key>~n</key>
    <string>scrollLineDown:</string>
    <key>~p</key>
    <string>scrollLineUp:</string>
    <key>~v</key>
    <string>pageUp:</string>
    <key>~</key>
    <string>deleteWordBackward:</string>
</dict>
</plist>

XML biçimini kullanmadım, ancak var olan XML dosyasındaki klavye kısayollarınızda başka meta tuşlar kullanıp kullanmadığınızı merak ediyorum. ~Seçenek için mi yoksa $vardiya için mi kullanıyorsunuz ?
conorgriffin

veya ^kontrol için?
conorgriffin

Ben Girişleri çalışma var ~ve ^ama hiçbiri ile $veya @. (Not: Devam ettim ve faydalı olduğu ortaya çıktığında orijinal DefaultKeyBindings.dict dosyamı OP'ye ekledim.)
Micah R Ledbetter

Tuhaf, ben de işe yarayamıyorum. Çok iyi belgelenmiş görünmüyor. Sadece 1 meta-anahtar ve 1 harf olmayan az sayıda kısayolunuz var, bu yüzden bunları test etmek için dönüştürmeyi deneyin ve eğer çalışırlarsa muhtemelen diğerleriniz de olacaktır. Komut anahtarını @plist dosyasının XML stilinde kabul edilmediği şekilde temsil eden durum olabilir . Çok mantıklı değil ama bu konuda daha fazla bir şey bulamıyorum.
conorgriffin

Bu konuda Apple ile bir hata dosyalama sona erdi; Bakalım cevap veriyorlar :).
Micah R Ledbetter

Yanıtlar:


3

Eski biçimi kullanarak herhangi bir sorununuz olacağını düşünmüyorum. Bulduğum tüm örnekler eski NeXT gösterimini kullanıyor. XML biçiminin neden çalışmadığını açıklayamasam da, bu klavye kısayolu için mevcut DefaultKeyBinding.dictdokunulmazınızı bırakabileceğiniz bir geçici çözüm var .

İndirmek için ücretsiz olan KeyRemap4MacBook adlı bir uygulama var ve aşağıdaki ekran görüntüsünden görebilirsiniz, dosyanızın geri kalanını dönüştürmeden + klavye kısayolunu yeniden eşleştirebilirsiniz DefaultKeyBinding.dictve bu yöntem Cocoa uygulamalarıyla sınırlı değildir.

KeyRemap4MacBook


3

\U007fXML özellik listelerinde kullanılamaz. Bunu &#x007f;ya da değişmez bir DELkarakterle değiştirmeniz gerekir .


Eski tarz bir plist'i şuna XML'ye dönüştürebilirsiniz plutil:

plutil -convert xml1 test.plist

Ve XML'den eski stile pl:

pl -input test.plist

Benim DefaultKeyBinding.dict şu anda 151 satır ve ben eski stil özellik listesi olarak saklamak herhangi bir sorunla karşılaşmadım. Brett Terpstra ve Jacob Rus tarafından gönderilenler de eski tarzda.

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.