Zaman zaman metin düzenlerken beklenmedik davranışlar gözlemliyorum. İlk başvurum genellikle C-h k
belirli 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-key
Dokümantasyon işlevi söyledi self-insert-command
yerleş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-mode
içine girerek işe yarıyor post-self-insert-hook
.
C-h k
bir tuşa basmak için tam olarak ne olduğunu söyler. İçin belgelere bakarsanız , komut bittikten sonra çalıştığını self-insert-command
açıkça post-self-insert-hook
belirtir.
after-change-functions
cevabı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-mode
Sadece bazı büyük modlarda etkinleştirilmesi mümkün müdür ? Hala görüyor musunuzself-insert-command
için"
bunu yaptığındaC-h k
iseelectric-pair-mode
aktiftir?