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.