Cx Cc'den sonra geçici durma nasıl ayarlanır?


10

C-x C-cEmacs ile çalışırsam hemen kapanır. Ben ayarlarsanız confirm-kill-emacsiçin y-or-n-pkendisine kapatmadan önce onay isteyecektir.

Bunun yerine, y-or-n-pemacs kapatılmadan önce 3 saniye için geçici bir zamanlayıcı ayarlamak istiyorum. Yani, eğer C-x C-cbasarsam şöyle bir şey göstermeli

Emacs 3 saniye içinde kapatılacak. Durdurmak için Cg tuşuna basın

Hiçbir şey yapmazsam, emac'ları kapatmalı, ancak basarsam kapanmayı C-gengellemelidir. Bunu nasıl başarabilirim?

Yanıtlar:


13

3 saniye bekleyen ve her zaman sıfır olmayan bir şekilde dönen kendi yüklem işlevinizi (kesilmedikçe C-g) döndürebilirsiniz :

(setq confirm-kill-emacs
      (lambda (&rest args)
        (interactive)
        (message "Quitting in 3 seconds. Press `C-g' to stop.")
        (sleep-for 3)
        t))

veya herhangi bir anahtarı okuyacak bir varyant:

(setq confirm-kill-emacs
      (lambda (&rest args)
        (interactive)
        (null (read-event "Quitting in 3 seconds. Hit any key to stop."
                          nil 3))))

7

Artı kullanmak sit-foryerine kullanabilirsiniz . Ve işlevin bir komut ( ) olması gerekmez .sleep-fortinteractive

sit-fortbeklediyse ve nilkullanıcı beklemeyi yarıda keserse geri döner .

(setq confirm-kill-emacs
      (lambda (&rest _)
        (message "Quit in 3 sec (`C-g' or other action cancels)")
        (sit-for 3)))
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.