2011-07-06 3 views
9

I binded fonction sémantique symref à la clé Cc Cr comme ceci:comment répondre oui ou non automatiquement emacs

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

chaque fois que j'appuie sur Cc Cr, il a demandé:

Trouvez des références pour xxxxx? (y ou n)

Comment puis-je répondre automatiquement? J'ai essayé d'utiliser la fonction lambda comme celui-ci, mais a échoué

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

Répondre

1

La réponse de @huitseeker est assez soignée et efficace. Après quatre ans, avec flet et defadvice étant obsolète, j'ai écrit les fonctions suivantes pour répondre oui automatiquement. Peut-être que c'est utile pour quelqu'un.

(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

Vous pouvez conseiller sémantique symref avec quelque chose comme:

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

Prenez garde que vous contourner localement toutes les confirmations, de sorte que vous pouvez attraper d'autres (autres) questions déclenchées par le sémantique-symref lui-même.

+0

n'est pas [flet] (https://www.gnu.org/software/emacs/manual/html_node/cl/Obsolete-Macros.html) considérée comme obsolète? faut-il utiliser [cl-flet] (http://www.gnu.org/software/emacs/manual/html_node/cl/Function-Bindings.html) à la place? – average

Questions connexes