Di tanto in tanto osservo comportamenti inaspettati durante la modifica del testo. Il mio primo ricorso è di solito da usare C-h k
per scoprire quali funzioni vengono chiamate da una determinata sequenza di tasti. Tuttavia, a volte la documentazione è in contrasto con il comportamento osservato. In questi casi, di solito presumo che qualche altro pacchetto sia stato agganciato a quella funzione o sequenza di tasti e ne stia modificando il comportamento.
Come posso scoprire quali funzioni sono collegate alla mia sequenza di tasti?
Un esempio che ho riscontrato di recente è che ho premuto il "tasto e le virgolette sono state inserite all'inizio e alla fine della regione attiva. Avevo il sospetto che questo non fosse il comportamento predefinito di Emacs, quindi ho C-h k "
scoperto quale funzione veniva effettivamente chiamata.
La describe-key
documentazione mi ha detto che la funzione self-insert-command
veniva chiamata, che è una funzione integrata. Per farla breve, dopo un certo numero di tentativi ed errori, sono stato in grado di determinare che il comportamento era causato da electric-pair-mode
. In futuro, c'è un modo più veloce per arrivare a questa conclusione che disattivare i pacchi sospetti uno alla volta fino a trovare il colpevole?
electric-pair-mode
funziona agganciandosi post-self-insert-hook
e non cambiando il keybinding.
C-h k
ti dice esattamente cosa succede per un tasto premuto. Se guardi la documentazione per self-insert-command
, dice molto chiaramente che post-self-insert-hook
viene eseguito al termine del comando.
after-change-functions
come menziona Jordon nella sua risposta? La documentazione per una funzione probabilmente non menzionerà specificamente quell'hook, vero?
C-h k
+ gli hook standard == il comportamento completo (più o meno). Ovviamente a volte ciò lascia molte possibilità, ma è ancora molto più trasparente di qualsiasi altro sistema software complesso che io conosca.
electric-pair-mode
stato attivato solo in alcune modalità principali? Non si vede ancoraself-insert-command
per"
quando si faC-h k
mentreelectric-pair-mode
è attivo?