highlight-symbol-at-point
est vraiment utile mais je n'ai pas pu trouver un moyen facile de désélectionner les symboles.
Actuellement, je dois appeler à unhighlight-regexp
plusieurs reprises pour chaque symbole en surbrillance.
Existe-t-il une meilleure façon de:
- mettre en surbrillance tous les symboles en surbrillance dans un tampon
- mettre en surbrillance un symbole au point?
highlighting
kostya
la source
la source
M-x hi-lock-mode
Réponses:
Existe-t-il une meilleure façon de mettre en surbrillance tous les symboles en surbrillance dans un tampon?
De
C-h f unhighlight-regexp
, nous obtenonsCela signifie que nous devons simplement appeler
unhighlight-regexp
avect
comme argument pour supprimer tous les surlignages hi-lock dans le tampon.Si c'était une chose unique, cela pourrait être fait rapidement par
M-: (unhighlight-regexp t)
ouC-u M-s h u
. Mais il semble que c'est quelque chose que vous devez faire assez souvent. Dans ce cas, il est préférable de l'envelopper dans uneinteractive
fonction et de la lier à une clé.Ci-dessous est une solution proposée où se
my/unhighlight-all-in-buffer
trouve la fonction interactive wrapper et à laquelle elle est liéehU
dans lesearch-map
. Par défaut, lesearch-map
préfixe estM-s
. Alors maintenant, tout comme lesM-s h u
lancementsunhighlight-regexp
,M-s h U
(notez le U majuscule) les lancementsmy/unhighlight-all-in-buffer
.Existe-t-il une meilleure façon de mettre en surbrillance un symbole au point?
La bonne chose est que vous n'avez pas besoin de placer le point sur un symbole que vous devez mettre en surbrillance.
Vous appelez simplement
M-x unhighlight-regexp
ouM-s h u
(sa liaison par défaut) et appuyez surM-p
/M-n
jusqu'à ce que vous tombiez sur l'expression rationnelle du symbole que vous devez mettre en surbrillance, puis appuyez sur Entrée.la source
Une autre façon consiste à utiliser la bibliothèque Highlight (
highlight.el
), les commandeshlt-highlight-symbol-at-point
ethlt-unhighlight-symbol-at-point
.Ils sont liés par défaut à
C-x X h s
etC-x X u s
, respectivement. Toutes les commandes de mise en surbrillance et de mise en surbrillance sont liéesC-x X
par défaut à la clé de préfixe . Les commandes de surbrillance utilisent la touche préfixeC-x X h
. Les commandes non mises en surbrillance utilisent la clé de préfixeC-x X u
. Vous pouvez utiliser une clé de préfixe différente de celleC-x X
simplement liée à la commande prefixhlt-map
.Surbrillance dans la bibliothèque Highlight peut utiliser des superpositions ou des propriétés de texte (ou les deux). La mise en évidence du visage ou de la couleur peut être choisie automatiquement (à partir d'une séquence personnalisée de visages et de couleurs) ou non.
La mise en surbrillance peut utiliser une propriété
font-lock-face
, de sorte qu'elle est contrôlée par le mode de verrouillage des polices. Ou il peut utiliser une propriétéface
, de sorte qu'il ne soit pas contrôlé par elle. (Vous pouvez utiliser la propriétéface
pour mettre en surbrillance dans les tampons qui n'utilisent pas le verrouillage de police, et la mise en surbrillance reste dans les tampons verrouillés par police lorsque vous désactivez le mode de verrouillage de police.)la source
C-u C-x w r
la source
Cela mettra en surbrillance un seul symbole:
la source