Zaman zaman metin düzenlerken beklenmedik davranışlar gözlemliyorum. İlk başvurum genellikle C-h kbelirli bir tuş dizisiyle hangi işlevlerin çağrıldığını bulmak için kullanmaktır . Ancak, bazen dokümantasyon gözlemlenen davranışla çelişmektedir. Bu durumlarda, genellikle başka bir paketin bu işleve veya anahtar dizisine bağlandığını ve davranışını değiştirdiğini varsayıyorum.
Anahtar dizime hangi işlevlerin bağlandığını nasıl bulabilirim ?
Son zamanlarda karşılaştığım bir örnek, "tuşa bastığım ve etkin bölgenin başına ve sonuna tırnak işaretleri eklendiğiydi. Bunun varsayılan Emacs davranışı olmadığından şüphe duydum, bu yüzden C-h k "aslında hangi işlevin çağrıldığını bulmak için kullanılır .
describe-keyDokümantasyon işlevi söyledi self-insert-commandyerleşik bir işlevi olan çağrılır ediliyordu. Uzun bir hikaye kısaca anlatmak için, bir miktar deneme yanılma sonrasında, davranışın neden olduğunu belirleyebildim electric-pair-mode. Gelecekte, bu sonuca varmak için şüpheli paketleri suçluyu bulana kadar birer birer kapatmaktan daha hızlı bir yolu var mı?
electric-pair-modeiçine girerek işe yarıyor post-self-insert-hook.
C-h kbir tuşa basmak için tam olarak ne olduğunu söyler. İçin belgelere bakarsanız , komut bittikten sonra çalıştığını self-insert-commandaçıkça post-self-insert-hookbelirtir.
after-change-functionscevabında Jordon gibi bahsederse ne olur ? Bir işlevin belgeleri muhtemelen bu kancadan özellikle bahsetmez, değil mi?
C-h k+ standart kancalar == tam davranış (az ya da çok). Tabii ki bazen bu çok fazla olasılık bırakıyor, ancak hala bildiğim diğer karmaşık yazılım sistemlerinden çok daha şeffaf.


electric-pair-modeSadece bazı büyük modlarda etkinleştirilmesi mümkün müdür ? Hala görüyor musunuzself-insert-commandiçin"bunu yaptığındaC-h kiseelectric-pair-modeaktiftir?