Obtenez font face sous le curseur dans Emacs
-
12-09-2019 - |
Question
J'ai développé mon propre thème de couleur personnalisée, et ce serait vraiment utile si je pouvais obtenir une liste des polices faces qui affectent le texte sous le curseur.
Quelque chose comme la commande show portée actuelle de TextMate.
Cela me sauver la peine de faire M-x-customize visage et en regardant à travers les options disponibles, deviner que l'on affecte le mot courant que je suis.
Toutes les idées?
La solution
Vous pouvez définir what-face
avec ce code:
(defun what-face (pos)
(interactive "d")
(let ((face (or (get-char-property (pos) 'read-face-name)
(get-char-property (pos) 'face))))
(if face (message "Face: %s" face) (message "No face at %d" pos))))
Après cela,
M-x what-face
imprimera le visage découvert au point courant.
(Merci à thedz de remarquer que what-face
n'a pas été construit en.)
Autres conseils
what-cursor-position
avec un argument préfixe montre le visage au point, entre autres informations.
raccourci clavier est C-C-u x =
Exemple de sortie (la propriété de surface est présentée dans le dernier paragraphe):
position: 5356 of 25376 (21%), column: 4
character: r (displayed as r) (codepoint 114, #o162, #x72)
preferred charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x72
syntax: w which means: word
category: .:Base, L:Left-to-right (strong), a:ASCII, l:Latin, r:Roman
buffer code: #x72
file code: #x72 (encoded by coding system undecided-unix)
display: by this font (glyph code)
nil:-apple-Monaco-medium-normal-normal-*-12-*-*-*-m-0-iso10646-1 (#x55)
Character code properties: customize what to show
name: LATIN SMALL LETTER R
general-category: Ll (Letter, Lowercase)
decomposition: (114) ('r')
There are text properties here:
face org-level-2
fontified t
[back]
M-x-face décrire
Trey est ce que le visage est sur la bonne voie. Il m'a conduit à un e-mail sur une liste de diffusion qui avait ceci:
(defun what-face (pos)
(interactive "d")
(let ((face (or (get-char-property (point) 'read-face-name)
(get-char-property (point) 'face))))
(if face (message "Face: %s" face) (message "No face at %d" pos))))
Il y a un bug dans le `ce face » code: la fonction prend « pos » comme argument, mais ne puis utilisez pas lors de l'obtention du visage - à la place, il utilise « (point) », même si le message plus tard réclamations pos dans le "Aucun visage à% d" cas.