2011-07-06 12 views
9

I zbindowanych funkcji semantycznej-symref do kluczy Cc Cr tak:jak odpowiedzieć tak lub nie automatycznie w emacs

(global-set-key (kbd "C-c C-r") 'semantic-symref)

spędzaj naciśnięciu Cc Kr, to prośba:

Znajdź referencje dla xxxxx? (y lub n)

Jak mogę na nie odpowiedzieć automatycznie? I tryed pomocą funkcji lambda takiego, ale nie

(global-set-key (kbd "C-c C-r") (lambda() (interactive) (semantic-symref "yes")))

Odpowiedz

1

Odpowiedź @huitseeker jest całkiem zadbana i skuteczna. Po czterech latach, z flet i defadvice jest przestarzały, napisałem następujące funkcje, aby odpowiedzieć tak automatycznie. Może to jest przydatne dla kogoś.

(defun my/return-t (orig-fun &rest args) 
    t) 
(defun my/disable-yornp (orig-fun &rest args) 
    (advice-add 'yes-or-no-p :around #'my/return-t) 
    (advice-add 'y-or-n-p :around #'my/return-t) 
    (let ((res (apply orig-fun args))) 
    (advice-remove 'yes-or-no-p #'my/return-t) 
    (advice-remove 'y-or-n-p #'my/return-t) 
    res)) 

(advice-add 'projectile-kill-buffers :around #'my/disable-yornp) 
7

Można doradzić semantycznej-symref z czymś takim:

(defadvice semantic-symref (around stfu activate) 
     (flet ((yes-or-no-p (&rest args) t) 
      (y-or-n-p (&rest args) t)) 
     ad-do-it)) 

Pamiętaj, że jesteś lokalnie z pominięciem wszystkich potwierdzeń, więc można złapać dalsze (inne) pytania wyzwalane przez sam semantyczny symref.

+0

nie jest [flet] (https://www.gnu.org/software/emacs/manual/html_node/cl/Obsolete-Macros.html) nieaktualne? czy zamiast tego powinienem użyć [cl-flet] (http://www.gnu.org/software/emacs/manual/html_node/cl/Function-Bindings.html)? – average

Powiązane problemy