abo-abo / swiper

Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!
https://oremacs.com/swiper/
2.31k stars 338 forks source link

GUI C-g quit issue #922

Closed lyterk closed 7 years ago

lyterk commented 7 years ago

So, when I'm in the GUI emacsclient, C-g does not work. I've been using the ivy-hydra C-o o command.

System: Ubuntu 16.04, emacs 25.1.2 Symptoms: I'm in an ivy buffer and hit C-g. 'Quit' appears at the top of that buffer, but then it flashes back to the ivy buffer. Things I've tried: recompiling packages, uninstalling and reinstalling packages, uninstalling and reinstalling emacs, helm (It actually has the same problem) Things that aren't the problem: I don't have toggle-debug-on-quit enabled Weird things: If I hold down C-g enough, like for about 5 seconds, it does successfully quit. Quit Backtrace: Debugger entered--Lisp error: (quit) internal-timer-start-idle() read-from-minibuffer("Find file: " nil (keymap (keymap (C-backspace . counsel-up-directory) (67108991 . counsel-up-directory)) keymap (3 keymap (19 . ivy-rotate-sort) (1 . ivy-toggle-ignore) (15 . ivy-occur)) (67108903 . ivy-avy) (33554464 . ivy-restrict-to-matches) (15 . hydra-ivy/body) (22 . ivy-scroll-up-command) (7 . minibuffer-keyboard-quit) (32 . self-insert-command) (18 . ivy-reverse-i-search) (19 . ivy-next-line-or-history) (remap keymap (describe-mode . ivy-help) (kill-ring-save . ivy-kill-ring-save) (kill-line . ivy-kill-line) (scroll-down-command . ivy-scroll-down-command) (scroll-up-command . ivy-scroll-up-command) (end-of-buffer . ivy-end-of-buffer) (beginning-of-buffer . ivy-beginning-of-buffer) (kill-word . ivy-kill-word) (forward-char . ivy-forward-char) (delete-char . ivy-delete-char) (backward-kill-word . ivy-backward-kill-word) (backward-delete-char-untabify . ivy-backward-delete-char) (delete-backward-char . ivy-backward-delete-char) (previous-line . ivy-previous-line) (next-line . ivy-next-line)) (9 . ivy-partial-or-done) (10 . ivy-alt-done) (27 keymap (1 . ivy-read-action) (15 . ivy-dispatching-call) (111 . ivy-dispatching-done-hydra) (105 . ivy-insert-current) (106 . ivy-yank-word) (114 . ivy-toggle-regexp-quote) (16 . ivy-previous-line-and-call) (14 . ivy-next-line-and-call) (118 . ivy-scroll-down-command) (112 . ivy-previous-history-element) (110 . ivy-next-history-element) (10 . ivy-immediate-done) (13 . ivy-call)) (13 . ivy-done)) nil file-name-history) ivy-read("Find file: " read-file-name-internal :matcher counsel--find-file-matcher :initial-input nil :action #[257 "\304\305!!r\306\307\310\311\312\313!\314\"\315\316%DC\216\317@\320\"\210 \205$\321\n!?\205) \322\323\n\"!+\207" [ivy-last counsel-find-file-speedup-remote ivy--directory find-file-hook internal--before-with-selected-window ivy--get-window funcall make-byte-code 0 "\301\300!\207" vconcat vector [internal--after-with-selected-window] 2 "\n\n(fn)" select-window norecord file-remote-p find-file expand-file-name] 9 "\n\n(fn X)"] :preselect nil :require-match confirm-after-completion :history file-name-history :keymap (keymap (C-backspace . counsel-up-directory) (67108991 . counsel-up-directory)) :caller counsel-find-file) counsel-find-file() funcall-interactively(counsel-find-file) call-interactively(counsel-find-file nil nil) command-execute(counsel-find-file)

abo-abo commented 7 years ago

Things I've tried: recompiling packages, uninstalling and reinstalling packages, uninstalling and reinstalling emacs, helm (It actually has the same problem)

Try to bisect your config. I'm pretty sure you can't reproduce the issue with emacs -Q, i.e. without any config. So it means the bug is caused by something there. Comment out half of your config, restart, check the bug etc.

Wilfred commented 7 years ago

FWIW I bumped into this too. In my case, something had set debug-on-quit to t. I may have just run M-x toggle-debug-on-quit by accident. It's easily fixed: just run M-x toggle-debug-on-quit again.

abo-abo commented 7 years ago

@Wilfred debug-on-quit could be the cause. But then the behavior in the OP is exactly what is expected.

Wilfred commented 7 years ago

Yep, agreed. I found this issue when googling my error, and I thought the comment would be useful for future searchers / future me / lyterk.

floli commented 7 years ago

I also came here for C-g not quitting the ivy-hydra selection. I do not get an elisp error just

An amaranth hydra can only exit through a blue head

M-o and then C-g works. However, I would expect to cancel the entire minibuffer action using C-g, also from the hydra.

abo-abo commented 7 years ago

@lyterk I assume the problem was debug-on-quit. @floli Thanks, fixed.