2013-05-04 3 views
1

Например, у меня есть эта установка в моем .emacsКак вызвать всплывающее окно от emacs программно?

(defun gtags-create-or-update() 
    "Create or update the gnu global tag file." 
    (interactive) 
    (if (y-or-n-p-with-timeout 
     (format "Run gtags to create/update tag file for code at %s (default no)? " 
       default-directory) 
     5 nil) ; default - no run 
     (unless (= 0 (call-process "global" nil nil nil " -p")) ; tagfile doesn't exist? 
      (let ((olddir default-directory) 
       (topdir (read-directory-name 
         "gtags: top of source tree: " default-directory))) 
      (cd topdir) 
      (shell-command "gtags -v") 
      ;; (shell-command "gtags && echo 'created tagfile'") 
      (cd olddir)) ; restore 
     ;; tagfile already exists; update it 
     (shell-command "global -uv")))) 
;; (shell-command "global -u && echo 'updated tagfile'"))) 

(add-hook 'c-mode-common-hook 
    (lambda() 
    (require 'gtags) 
    (gtags-mode t) 
    (gtags-create-or-update))) 

Когда я бегу gtags-create-or-update явно, Emacs подскажите в минибуфер спросить меня, нужно ли создавать/обновлять файлы тегов. Однако, когда я открываю файл c/cpp, он всегда выдает окно GUI, спрашивая меня, да или нет, что очень раздражает. Мне интересно, почему это происходит.

+0

Как вы открываете свои файлы c/cpp? Когда пользователь задает вопрос, Emacs обычно использует окно GUI, если инициирующее действие было инициировано с помощью мыши, и минибуфер, если он был инициирован клавиатурой. – phils

+0

открыть файлы с 'C-x C-f', поэтому он не должен использовать окно GUI. – RNA

+0

@phils: Маленькая нитика, она использует область эха, а не минибуфер. –

ответ

0

Что говорит @phils в комментарии. Чтобы избежать диалоговых окон в GUI Emacs, вы можете установить use-dialog-box на nil Поместите строку (setq use-dialog-box nil) в файл инициализации.

+0

спасибо. но почему нет ящиков с диалогом, когда я запускаю команду явно? – RNA

+0

РНК: Реальный вопрос, почему * бы * вы получите диалоговое окно при запуске команды с клавиатурой. Я не знаю ответа, но, вероятно, в вашем конфиге есть что-то еще, что вызывает нестандартное поведение. – phils

Смежные вопросы