(defun some-function (beginning end)
(interactive "r")
(if (use-region-p)
(message "The region is active, and is from %d to %d" beginning end)
(message "The region is still there (from % d to %d), but it is inactive"
beginning end)))
Kullanımı (interactive "r")parametreleri olduğunu araçlarla beginningve endotomatik bölge başında ve bölge sonuna değerlerini alacak sırasıyla işlev çağrıldığında. (Ayrıca bu değerler her zaman işlevleri kullanarak alabilirsiniz region-beginningve region-endsırasıyla.)
Bölge her zaman mevcuttur (geçerli arabellekte bir işaret varsa), ancak olduğunu düşünmeyebilirsiniz. Bölge vurgulandığında etkindir (metin seçilidir). Yüklemeyi kullanarak bölgenin etkin olup olmadığını test edebilirsiniz region-active-p. Ancak genellikle daha iyi bir testtir use-region-p, çünkü (varsayılan olarak nil) yalnızca bölge hem aktif hem de boş olduğunda (nokta ve işaret farklı olduğunda) true değerini döndürür .
Başlangıçta bölgenin vurgulanması yoktu. Ve uzun süre, vurgulama mevcut olsa da, varsayılan davranış değildi. Vurgulamanın gerçekleşmesi için, transient-mark-modeaçık (veya en azından geçici olarak açılmış) olmanız gerekir . Varsayılan olarak, transient-mark-modeson Emacs sürümlerinde açıktır.
Yüklemin tanımına bakmak yardımcı olur use-region-p:
(defun use-region-p ()
(and (region-active-p)
(or use-empty-active-region
(> (region-end) (region-beginning)))))
use-empty-active-regionvarsayılan değeri nil(true) olan bir kullanıcı seçeneğidir, yani use-region-pbölge boşsa varsayılan olarak true değerini döndürmez. Bu durumda, bölgenin geri dönmesi için, bölgenin sonu başlangıçtan daha büyük olmalıdır (yukarıda tarif ettiğim davranış).
Ve eğer tanımına bakarsak region-active-p:
(defun region-active-p ()
(and transient-mark-mode
mark-active
(mark)))
nilTüm bunlar doğru olduğunda bunun true (non- ) döndürdüğünü görüyoruz :
transient-mark-mode açık.
- İşareti etkin (
mark-active).
- Geçerli tamponda bir işaret var.
Aktif olma işareti gerçekten aktif olan bölgenin ne olduğudur. Aktif olduğunda, aktif transient-mark-modeolduğu ve mevcut tamponda bir işaret olduğu varsayılarak , bölge vurgulanır.