Noktada vurgu sembolü ile vurgulanan sembolün aydınlatılması


14

highlight-symbol-at-point gerçekten yararlıdır, ancak sembolleri vurgulamak için kolay bir yol bulamadım.

Şu anda unhighlight-regexpvurgulanan her sembol için tekrar tekrar aramak zorundayım .

Daha iyi bir yol var mı:

  • arabellekteki tüm vurgulanan sembolleri vurgulama
  • noktasında bir simgeyi vurgulama?

Tek seferde tüm sembolleri vurgulamanız gerekiyor mu?
— Kaushal Modi

Çoğu zaman, evet. Noktadaki bir sembolün zaman zaman vurgulanmamış olması da yararlıdır.
— kostya

Nokta altındaki sembolü vurgulamak veya tüm sembolleri vurgulamak isterseniz yanıtlar farklı olacaktır.
— Kaushal Modi


2
Vurgulanan tüm sembolleri kullanarak kaldırabilirsinizM-x hi-lock-mode
— Amir Karimi

Yanıtlar:


11

Bir arabellekteki tüm vurgulanan sembolleri vurgulamanın daha iyi bir yolu var mı?

Dan C-h f unhighlight-regexpalırsak alalım,

(unhighlight-regexp REGEXP)

Yüksek kilitle ayarlanmış REGEXP ile her bir eşleşmenin vurgulamasını kaldırın. Etkileşimli olarak, REGEXP isteminde bulunun, yalnızca daha önce hi-lock etkileşimli işlevler tarafından eklenen normal ifadeleri kabul edin. REGEXP t ise (veya Cu etkileşimli olarak belirtildiyse), tüm yüksek kilitli vurgulamayı kaldırın.

Biz sadece çağrı gerektiğini Bunun anlamı unhighlight-regexpile ttampon içerisinde vurgulayarak tüm hi-kilidi kaldırmak için bağımsız değişken olarak.

Bir kerelik bir şey olsaydı, hızla M-: (unhighlight-regexp t)veya tarafından yapılabilir C-u M-s h u. Ama öyle görünüyor ki bu oldukça sık yapmanız gereken bir şey. Bu durumda, bir interactiveişleve sarmak ve bir tuşa bağlamak daha iyidir .

Aşağıda önerilen bir çözüm my/unhighlight-all-in-buffersarıcı etkileşimli fonksiyonudur ve bu bağlı olduğu hUde search-map. Varsayılan olarak search-mapöneki M-s. Şimdi, tıpkı M-s h ulansmanları unhighlight-regexp, M-s h Ulansmanlar (sermaye U dikkat edin) my/unhighlight-all-in-buffer.

(require 'hi-lock)        
(defun my/unhighlight-all-in-buffer ()
  "Remove all highlights made by `hi-lock' from the current buffer.
The same result can also be be achieved by \\[universal-argument] \\[unhighlight-regexp]."
  (interactive)
  (unhighlight-regexp t))
(define-key search-map "hU" #'my/unhighlight-all-in-buffer)

Bu noktada bir sembolü vurgulamak için daha iyi bir yol var mı?

İyi olan şey, noktayı vurgulamak için ihtiyacınız olan bir sembole yerleştirmeniz gerekmemesidir.

Sadece M-x unhighlight-regexpya da M-s h u(varsayılan bağlaması) arayın ve vurgulamak istediğiniz simgenin normal ifadesiyle karşılaşana kadar M-p/ M-ntuşuna basın ve Enter tuşuna basın.


4

Başka bir yol da Highlight ( highlight.el), komutları hlt-highlight-symbol-at-pointve hlt-unhighlight-symbol-at-point.

Bunlar sırasıyla C-x X h sve değerlerine varsayılan olarak bağlıdır C-x X u s. Tüm vurgulama ve vurgulama komutları C-x Xvarsayılan olarak önek tuşuna bağlıdır . Vurgulama komutları önek tuşunu kullanır C-x X h. Vurgulama komutları önek tuşunu kullanır C-x X u. C-x XÖnek komutuna bağlamadan farklı bir önek anahtarı kullanabilirsiniz hlt-map.

Kitaplıkta vurgulama Vurgulama, bindirmeleri veya metin özelliklerini (veya her ikisini birden) kullanabilir. Vurgulama yüzü veya rengi otomatik olarak seçilebilir (özelleştirilmiş bir yüz ve renk dizisinden) veya seçilemez.

Vurgulama özelliği font-lock-face, Font Kilidi modu tarafından denetlenebilmesi için özelliği kullanabilir . Ya da mülkü kullanabilir face, böylece kontrol edilmez. ( faceYazı tipi kilidi kullanmayan arabelleklerde vurgulamak için özelliği kullanabilirsiniz ve Yazı Tipi Kilidi modunu kapattığınızda vurgulama yazı tipi kilitli arabelleklerde kalır.)


4

C-u C-x w r

(unhighlight-regexp REGEXP) (...) REGEXP t ise (veya C-u etkileşimli olarak belirtildiyse), tüm yüksek kilitli vurgulamayı kaldırın.


0

Bu, tek bir simgeyi vurgulayacaktır:

(defun unhighlight-symbol-at-point ()
  "Remove highlight of symbol at point."
  (interactive)
  (unhighlight-regexp (concat "\\_<" (thing-at-point 'symbol) "\\_>")))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.