ido-grid-mode.el's People
ido-grid-mode.el's Issues
Error while requiring the mode
Starting with emacs -Q
:
First of all, it is necessary to (require 'cl-lib)
before activating ido-grid-mode
, otherwise
(void-function cl-defun)
error is thrown.
Then, in *scratch*
buffer:
(require 'ido-grid-mode)
fails with
(void-variable ido-grid-mode)
I'm using GNU Emacs 25.0.50.1
(development snapshot from some months ago.)
Doesn't play well with flx
Hello,
This mode breaks pretty badly when I use https://github.com/lewang/flx and refine the results then scroll... any idea why?
It whines about an invalid consp, my guess is that because ido-completions
/ ido-matches
is tricky and you only rewrote it the "straighforward" way, but it can return results in various ways (lists, consp etc).
It's pretty easy to reproduce, just use the following and use smex or a list with lots of file, like MELPA recipes:
(setq ido-grid-mode-max-columns 1
ido-grid-mode-min-rows 8
ido-grid-mode-prefix-scrolls t
ido-grid-mode-scroll-down #'ido-grid-mode-next-row
ido-grid-mode-scroll-up #'ido-grid-mode-previous-row
ido-grid-mode-order nil)
Heres a backtrace:
Debugger entered--Lisp error: (wrong-type-argument consp nil)
setcdr(nil nil)
(let* ((items (copy-sequence items)) (match-count (length matches)) (n (if (< n 0) (+ match-count n) n)) (new-head (nth n matches)) (walker items) new-tail) (while walker (if (eq new-head (car (cdr walker))) (setq new-tail walker walker nil) (setq walker (cdr walker)))) (setq new-head (cdr new-tail)) (setcdr new-tail nil) (nconc new-head items))
ido-grid-mode-rotate-n(1 (#("appt-add" 0 1 (face flx-highlight-face) 5 6 (face flx-highlight-face)) #("ad-activate" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("appt-activate" 0 1 (face flx-highlight-face) 5 6 (face flx-highlight-face)) #("ad-activate-on" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-activate-all" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-activate-regexp" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-activate-internal" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-Advice-align-regexp" 0 1 (face flx-highlight-face) 3 4 (face flx-highlight-face)) #("ad-update-all" 0 1 (face flx-highlight-face) 10 11 (face flx-highlight-face)) #("ad-recover-all" 0 1 (face flx-highlight-face) 11 12 (face flx-highlight-face)) "ad-unadvise-all" "add-mode-abbrev" "ad-enable-advice" "ad-remove-advice" "ad-deactivate-all" "ad-disable-advice" "add-global-abbrev" "ad-Advice-find-tag-regexp" "ad-Advice-reb-change-syntax" "ad-Advice-sort-regexp-fields" "ag-project-at-point" "align-newline-and-indent" "magit-am-abort" "kill-all-abbrevs" "org-agenda-archive" "ad-Advice-ibuffer-do-replace-regexp" "org-align-all-tags" "org-agenda-add-note" "goto-address-at-mouse" "goto-address-at-point" "magit-am-apply-maildir" "magit-am-apply-patches" "org-agenda-archive-with" "org-agenda-append-agenda" "org-agenda-archives-mode" "message-add-archive-header" "org-agenda-archive-default" "org-advertized-archive-subtree" "ag-regexp-project-at-point" "auth-source-forget-all-cached" "org-agenda-to-appt" "mail-add-payment-async" "org-agenda-bulk-action" "inverse-add-mode-abbrev" "mail-abbrev-insert-alias" "inverse-add-global-abbrev" "mail-abbrev-complete-alias" "org-agenda-archive-to-archive-sibling" "org-agenda-archive-default-with-confirmation" "org-ascii-export-as-ascii" ...) ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...))
(setq ido-cur-list (ido-grid-mode-rotate-n n ido-matches ido-cur-list) ido-rescan t ido-rotate t)
ido-grid-mode-next-N(1)
ido-grid-mode-next-row()
funcall(ido-grid-mode-next-row)
(cond ((or (< row 0) (< col 0)) (funcall ido-grid-mode-scroll-up)) ((or (= row nrows) (= col ncols)) (funcall ido-grid-mode-scroll-down)) (t (setq ido-grid-mode-offset (if (ido-grid-mode-row-major) (+ col (* row ncols)) (+ row (* col nrows))))))
(let* ((nrows ido-grid-mode-rows) (ncols ido-grid-mode-columns) (row (if (ido-grid-mode-row-major) (/ ido-grid-mode-offset ido-grid-mode-columns) (% ido-grid-mode-offset ido-grid-mode-rows))) (col (if (ido-grid-mode-row-major) (% ido-grid-mode-offset ido-grid-mode-columns) (/ ido-grid-mode-offset ido-grid-mode-rows)))) (setq row (+ row dr)) (setq col (+ col dc)) (if (or (and (= col 0) (= row -1)) (and (= row nrows) (= (1+ col) ncols)) (and (not ido-grid-mode-scroll-wrap) (if (ido-grid-mode-row-major) (not (< -1 row nrows)) (not (< -1 col ncols))))) nil (while (< row 0) (setq col (1- col)) (setq row (+ row nrows))) (while (>= row nrows) (setq col (1+ col)) (setq row (- row nrows))) (while (< col 0) (setq row (1- row)) (setq col (+ col ncols))) (while (>= col ncols) (setq row (1+ row)) (setq col (- col ncols)))) (cond ((or (< row 0) (< col 0)) (funcall ido-grid-mode-scroll-up)) ((or (= row nrows) (= col ncols)) (funcall ido-grid-mode-scroll-down)) (t (setq ido-grid-mode-offset (if (ido-grid-mode-row-major) (+ col (* row ncols)) (+ row (* col nrows)))))))
ido-grid-mode-move(1 0)
ido-grid-mode-down()
funcall-interactively(ido-grid-mode-down)
#<subr call-interactively>(ido-grid-mode-down nil nil)
ad-Advice-call-interactively(#<subr call-interactively> ido-grid-mode-down nil nil)
apply(ad-Advice-call-interactively #<subr call-interactively> (ido-grid-mode-down nil nil))
call-interactively(ido-grid-mode-down nil nil)
command-execute(ido-grid-mode-down)
read-from-minibuffer("M-x " nil (keymap (16 . ido-grid-mode-previous-page) (14 . ido-grid-mode-next-page) (right . ido-grid-mode-right) (left . ido-grid-mode-left) (down . ido-grid-mode-down) (up . ido-grid-mode-up) (backtab . ido-grid-mode-previous) (1 . move-beginning-of-line) (27 keymap (46 . smex-find-function)) (8 keymap (119 . smex-where-is) (102 . smex-describe-function)) (9 . minibuffer-complete) keymap (4 . ido-magic-delete-char) (6 . ido-magic-forward-char) (2 . ido-magic-backward-char) (63 . ido-completion-help) (left . ido-prev-match) (right . ido-next-match) (0 . ido-restrict-to-matches) (27 keymap (32 . ido-take-first-match)) (67108896 . ido-restrict-to-matches) (26 . ido-undo-merge-work-directory) (20 . ido-toggle-regexp) (67108908 . ido-prev-match) (67108910 . ido-next-match) (19 . ido-next-match) (18 . ido-prev-match) (16 . ido-toggle-prefix) (13 . ido-exit-minibuffer) (10 . ido-select-text) (32 . ido-complete-space) (9 . ido-complete) (5 . ido-edit-input) (3 . ido-toggle-case) (1 . ido-toggle-ignore) keymap (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence "
" :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (10 . exit-minibuffer) (13 . exit-minibuffer) (7 . minibuffer-keyboard-quit) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (XF86Back . previous-history-element) (up . previous-line-or-history-element) (prior . previous-history-element) (XF86Forward . next-history-element) (down . next-line-or-history-element) (next . next-history-element) (27 keymap (5 . miniedit) (114 . previous-matching-history-element) (115 . next-matching-history-element) (112 . previous-history-element) (110 . next-history-element))) nil extended-command-history)
#[(item prompt hist &optional default require-match initial) "�p\306\307\306\307\211\211\211\211\211\211\211\211\211\306\307 \n�\307������@�A�B�C�D�E�F�2�G�H�I�J�K�L�M�N\310 \210�O�P\307�Q\311\312!\210�2\204:�\313\314�P\"\210\307�R\306�S\307�T\315�U�J\203\315�\316=\203}\317�V!\203x\320�V!\202\260�V\202\260�V;\203\225�\321>\203\220\322�V!\202\260�V\202\260�\323=\205\260�W\205\260\324�X�Y\"\211�Z\205\257�ZA)\211�I�[\235\203\274\307�I\313\325�I\"\210�I\203\312\326�\\\307�J�K\203\325\307�L�A\203\257��@\327>\203\257��B\204\257��E�D�]\330�P�A\331=�@\332=#�^�_�`�a\313\333�^\"\210�^\204Y��@\332=\203:�\315�X�a�`�_\257��\307\211�E�D\307�]\306�B�A\331=\2052�\331�@\307�A\202\256��a�E�`�D�_�]\306�B�A\331=\205Q�\331�@\307�A\202\256��^\306=\203f�\307�A\202\256��^\334=\203v�\306�@\307�A\202\256��P�X�a�`�_\257��\335�^@A@!\210\336�P!\203\225�\315�P�^�E\307�D�^�]\307�S\306\211�B�A\313\337\306\"\210,�B\203\275�\307\211�B�S\202���N\323=\203\334�\307�D�b?\205\327��c?\205\327�\340�I!�E\202���N\341=\203\373�\307�D�b?\205\366��c?\205\366�\342�I!�E\202���N\316=\203��\307�D\343�I!�E\202���N\344=\203��\307�D\345�I!�E\307�C�K\203,�\306�L\307�K\346 \210�]\203>��@\331=\203>�\306�@�d\206K�\347\350!\205K��(\306�e\351 T\307\211�f�g�h�i�j�(\307�R\3522x�\353\354��k\"�P\307�P�l\307�m%0�G.�\313\355�G\"\210�n\203\223�\356�n!\203\223�\357�n!\210\313\360�R\"\210�R\361=\203\265��A\331=\203H\334 \203H\307�A\306�B\202H�R\362=\203\311�\306�2�U�H\307�R\202H�R\363>\203\242��N\364>\203\206�\307�o�R\365=�5�X�Z�P�p\306�q\315�P�q\203\202��5\203��\3661��\367�k\370P\371�Z!�Z�pP\307�p%0\202��\210�Z�pP\202���p�q\372�q!\206'�\373�Z\322�q!�p\306�5\374�Z!\204k�\375\376\377�Z\"!\203\356�\201v1V�\201w�Z\306\"\210\3060\202h�\210\201x\201y!\210\201z\201{!\210\307\203\356�\335�Z\307�R\201|=#\210�p�P\307\211�q\204\363�-\202H\201}1\232�\201~�k\370P�G\"0\202\235�\210�G�P\202H�R\201�=\203\261�\306�B\202H�R\201\200>\203\301�\306\211�2\202J�R\201\201>\203<�\201\202 \203\372�\201\203\201\204�X\"\203H\201\205\201\206�X\"�P\335\201\205\201{�X\"!\210\306�J\202H\201\207 \204H�R\201\210=\203*��N�UB�QB�Q\341�N\322�X\326\201\211O!�P\313\201\212�Q\"\210\335\372�X\326\201\211O!!\210\306�J\202H�R\201\213=\203m�\313\201\214�Q\"\210�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202H�R\201\215=\203\243�\313\201\216�Q\"\210�Q\203H�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202~��e\203\324��e\201\217>\204\324��c\203\302�\201\220�X�GP!\202\306�\201\221 \204\324�\201\222\201\223!\210\202H�R\201\224=\204\342��]\204\347��G\202\356�\201\225�]@!�H�\201\226>\203\377�\306\211�2\202J�H\201\227\230\204H�H\201\230\230\203*�\201\207 \204$�\335\372�X\326\201\211O!!\210\306�J\202H\201\203�s\2038�\201\231\202;�\201\232�H\"\203y�\201\207 \203y�\201\233�H!\204y�\335�X�H\"\210\313\201\234�H\"\210\201\235 \203s�\201\236�R\306\211�2\202J\306�J\202H\201\203�t\201\237>\203\213�\201\240\202\216�\201\241�H\"\203\241�\335\372�H!!\210\306�J\202H\201\203\201\242�H\"\203\267�\201\243�H!\210\202H\336�H!\2033��W\203\343�\324�X�Y\"\211�u\203\330��u�H\241\210\202\342��X�HB�YB�Y)\335�X�H\"\210�Q\203-�\307�r�Q@\211�r\203)�\201\220�X�rAP!\203)��QA\211�Q\203��\335�X�rA\"\210\202!��rA�P�r@�N\202\362�)\202H\306�J\202H\306\211�2\203M\201\244�m:\203O��m@\206\\�\201\245\202\\��m\203Y��m\202\\�\201\245�H\"\210�H.�\207" [item ido-case-fold ido-enable-prefix ido-enable-regexp ido-show-confirm-message ido-pre-merge-state t nil ido-setup-completion-map run-hooks ido-setup-hook ido-trace "\n_LOOP_" "" buffer bufferp buffer-name (file dir) file-name-nondirectory file assoc "new default" 0 (t wide) ido-make-merged-file-list auto wide "merged" input-pending-p ido-set-current-directory ido-final-slash "Merged" ido-make-file-list dir ido-make-dir-list ido-make-buffer-list list ido-make-choice-list ido-set-matches boundp max-mini-window-height minibuffer-depth ido read-from-minibuffer ido-make-prompt "read-from-minibuffer" get-buffer kill-buffer "\n_EXIT_" refresh ...] 22 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 47953)](list "M-x " extended-command-history "toggle-debug-on-error" nil nil)
ad-Advice-ido-read-internal(#[(item prompt hist &optional default require-match initial) "�p\306\307\306\307\211\211\211\211\211\211\211\211\211\306\307 \n�\307������@�A�B�C�D�E�F�2�G�H�I�J�K�L�M�N\310 \210�O�P\307�Q\311\312!\210�2\204:�\313\314�P\"\210\307�R\306�S\307�T\315�U�J\203\315�\316=\203}\317�V!\203x\320�V!\202\260�V\202\260�V;\203\225�\321>\203\220\322�V!\202\260�V\202\260�\323=\205\260�W\205\260\324�X�Y\"\211�Z\205\257�ZA)\211�I�[\235\203\274\307�I\313\325�I\"\210�I\203\312\326�\\\307�J�K\203\325\307�L�A\203\257��@\327>\203\257��B\204\257��E�D�]\330�P�A\331=�@\332=#�^�_�`�a\313\333�^\"\210�^\204Y��@\332=\203:�\315�X�a�`�_\257��\307\211�E�D\307�]\306�B�A\331=\2052�\331�@\307�A\202\256��a�E�`�D�_�]\306�B�A\331=\205Q�\331�@\307�A\202\256��^\306=\203f�\307�A\202\256��^\334=\203v�\306�@\307�A\202\256��P�X�a�`�_\257��\335�^@A@!\210\336�P!\203\225�\315�P�^�E\307�D�^�]\307�S\306\211�B�A\313\337\306\"\210,�B\203\275�\307\211�B�S\202���N\323=\203\334�\307�D�b?\205\327��c?\205\327�\340�I!�E\202���N\341=\203\373�\307�D�b?\205\366��c?\205\366�\342�I!�E\202���N\316=\203��\307�D\343�I!�E\202���N\344=\203��\307�D\345�I!�E\307�C�K\203,�\306�L\307�K\346 \210�]\203>��@\331=\203>�\306�@�d\206K�\347\350!\205K��(\306�e\351 T\307\211�f�g�h�i�j�(\307�R\3522x�\353\354��k\"�P\307�P�l\307�m%0�G.�\313\355�G\"\210�n\203\223�\356�n!\203\223�\357�n!\210\313\360�R\"\210�R\361=\203\265��A\331=\203H\334 \203H\307�A\306�B\202H�R\362=\203\311�\306�2�U�H\307�R\202H�R\363>\203\242��N\364>\203\206�\307�o�R\365=�5�X�Z�P�p\306�q\315�P�q\203\202��5\203��\3661��\367�k\370P\371�Z!�Z�pP\307�p%0\202��\210�Z�pP\202���p�q\372�q!\206'�\373�Z\322�q!�p\306�5\374�Z!\204k�\375\376\377�Z\"!\203\356�\201v1V�\201w�Z\306\"\210\3060\202h�\210\201x\201y!\210\201z\201{!\210\307\203\356�\335�Z\307�R\201|=#\210�p�P\307\211�q\204\363�-\202H\201}1\232�\201~�k\370P�G\"0\202\235�\210�G�P\202H�R\201�=\203\261�\306�B\202H�R\201\200>\203\301�\306\211�2\202J�R\201\201>\203<�\201\202 \203\372�\201\203\201\204�X\"\203H\201\205\201\206�X\"�P\335\201\205\201{�X\"!\210\306�J\202H\201\207 \204H�R\201\210=\203*��N�UB�QB�Q\341�N\322�X\326\201\211O!�P\313\201\212�Q\"\210\335\372�X\326\201\211O!!\210\306�J\202H�R\201\213=\203m�\313\201\214�Q\"\210�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202H�R\201\215=\203\243�\313\201\216�Q\"\210�Q\203H�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202~��e\203\324��e\201\217>\204\324��c\203\302�\201\220�X�GP!\202\306�\201\221 \204\324�\201\222\201\223!\210\202H�R\201\224=\204\342��]\204\347��G\202\356�\201\225�]@!�H�\201\226>\203\377�\306\211�2\202J�H\201\227\230\204H�H\201\230\230\203*�\201\207 \204$�\335\372�X\326\201\211O!!\210\306�J\202H\201\203�s\2038�\201\231\202;�\201\232�H\"\203y�\201\207 \203y�\201\233�H!\204y�\335�X�H\"\210\313\201\234�H\"\210\201\235 \203s�\201\236�R\306\211�2\202J\306�J\202H\201\203�t\201\237>\203\213�\201\240\202\216�\201\241�H\"\203\241�\335\372�H!!\210\306�J\202H\201\203\201\242�H\"\203\267�\201\243�H!\210\202H\336�H!\2033��W\203\343�\324�X�Y\"\211�u\203\330��u�H\241\210\202\342��X�HB�YB�Y)\335�X�H\"\210�Q\203-�\307�r�Q@\211�r\203)�\201\220�X�rAP!\203)��QA\211�Q\203��\335�X�rA\"\210\202!��rA�P�r@�N\202\362�)\202H\306�J\202H\306\211�2\203M\201\244�m:\203O��m@\206\\�\201\245\202\\��m\203Y��m\202\\�\201\245�H\"\210�H.�\207" [item ido-case-fold ido-enable-prefix ido-enable-regexp ido-show-confirm-message ido-pre-merge-state t nil ido-setup-completion-map run-hooks ido-setup-hook ido-trace "\n_LOOP_" "" buffer bufferp buffer-name (file dir) file-name-nondirectory file assoc "new default" 0 (t wide) ido-make-merged-file-list auto wide "merged" input-pending-p ido-set-current-directory ido-final-slash "Merged" ido-make-file-list dir ido-make-dir-list ido-make-buffer-list list ido-make-choice-list ido-set-matches boundp max-mini-window-height minibuffer-depth ido read-from-minibuffer ido-make-prompt "read-from-minibuffer" get-buffer kill-buffer "\n_EXIT_" refresh ...] 22 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 47953)] list "M-x " extended-command-history "toggle-debug-on-error" nil nil)
apply(ad-Advice-ido-read-internal #[(item prompt hist &optional default require-match initial) "�p\306\307\306\307\211\211\211\211\211\211\211\211\211\306\307 \n�\307������@�A�B�C�D�E�F�2�G�H�I�J�K�L�M�N\310 \210�O�P\307�Q\311\312!\210�2\204:�\313\314�P\"\210\307�R\306�S\307�T\315�U�J\203\315�\316=\203}\317�V!\203x\320�V!\202\260�V\202\260�V;\203\225�\321>\203\220\322�V!\202\260�V\202\260�\323=\205\260�W\205\260\324�X�Y\"\211�Z\205\257�ZA)\211�I�[\235\203\274\307�I\313\325�I\"\210�I\203\312\326�\\\307�J�K\203\325\307�L�A\203\257��@\327>\203\257��B\204\257��E�D�]\330�P�A\331=�@\332=#�^�_�`�a\313\333�^\"\210�^\204Y��@\332=\203:�\315�X�a�`�_\257��\307\211�E�D\307�]\306�B�A\331=\2052�\331�@\307�A\202\256��a�E�`�D�_�]\306�B�A\331=\205Q�\331�@\307�A\202\256��^\306=\203f�\307�A\202\256��^\334=\203v�\306�@\307�A\202\256��P�X�a�`�_\257��\335�^@A@!\210\336�P!\203\225�\315�P�^�E\307�D�^�]\307�S\306\211�B�A\313\337\306\"\210,�B\203\275�\307\211�B�S\202���N\323=\203\334�\307�D�b?\205\327��c?\205\327�\340�I!�E\202���N\341=\203\373�\307�D�b?\205\366��c?\205\366�\342�I!�E\202���N\316=\203��\307�D\343�I!�E\202���N\344=\203��\307�D\345�I!�E\307�C�K\203,�\306�L\307�K\346 \210�]\203>��@\331=\203>�\306�@�d\206K�\347\350!\205K��(\306�e\351 T\307\211�f�g�h�i�j�(\307�R\3522x�\353\354��k\"�P\307�P�l\307�m%0�G.�\313\355�G\"\210�n\203\223�\356�n!\203\223�\357�n!\210\313\360�R\"\210�R\361=\203\265��A\331=\203H\334 \203H\307�A\306�B\202H�R\362=\203\311�\306�2�U�H\307�R\202H�R\363>\203\242��N\364>\203\206�\307�o�R\365=�5�X�Z�P�p\306�q\315�P�q\203\202��5\203��\3661��\367�k\370P\371�Z!�Z�pP\307�p%0\202��\210�Z�pP\202���p�q\372�q!\206'�\373�Z\322�q!�p\306�5\374�Z!\204k�\375\376\377�Z\"!\203\356�\201v1V�\201w�Z\306\"\210\3060\202h�\210\201x\201y!\210\201z\201{!\210\307\203\356�\335�Z\307�R\201|=#\210�p�P\307\211�q\204\363�-\202H\201}1\232�\201~�k\370P�G\"0\202\235�\210�G�P\202H�R\201�=\203\261�\306�B\202H�R\201\200>\203\301�\306\211�2\202J�R\201\201>\203<�\201\202 \203\372�\201\203\201\204�X\"\203H\201\205\201\206�X\"�P\335\201\205\201{�X\"!\210\306�J\202H\201\207 \204H�R\201\210=\203*��N�UB�QB�Q\341�N\322�X\326\201\211O!�P\313\201\212�Q\"\210\335\372�X\326\201\211O!!\210\306�J\202H�R\201\213=\203m�\313\201\214�Q\"\210�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202H�R\201\215=\203\243�\313\201\216�Q\"\210�Q\203H�Q@�r�QA�Q\335�X�UP!\210�r@�N�rA�P)\202~��e\203\324��e\201\217>\204\324��c\203\302�\201\220�X�GP!\202\306�\201\221 \204\324�\201\222\201\223!\210\202H�R\201\224=\204\342��]\204\347��G\202\356�\201\225�]@!�H�\201\226>\203\377�\306\211�2\202J�H\201\227\230\204H�H\201\230\230\203*�\201\207 \204$�\335\372�X\326\201\211O!!\210\306�J\202H\201\203�s\2038�\201\231\202;�\201\232�H\"\203y�\201\207 \203y�\201\233�H!\204y�\335�X�H\"\210\313\201\234�H\"\210\201\235 \203s�\201\236�R\306\211�2\202J\306�J\202H\201\203�t\201\237>\203\213�\201\240\202\216�\201\241�H\"\203\241�\335\372�H!!\210\306�J\202H\201\203\201\242�H\"\203\267�\201\243�H!\210\202H\336�H!\2033��W\203\343�\324�X�Y\"\211�u\203\330��u�H\241\210\202\342��X�HB�YB�Y)\335�X�H\"\210�Q\203-�\307�r�Q@\211�r\203)�\201\220�X�rAP!\203)��QA\211�Q\203��\335�X�rA\"\210\202!��rA�P�r@�N\202\362�)\202H\306�J\202H\306\211�2\203M\201\244�m:\203O��m@\206\\�\201\245\202\\��m\203Y��m\202\\�\201\245�H\"\210�H.�\207" [item ido-case-fold ido-enable-prefix ido-enable-regexp ido-show-confirm-message ido-pre-merge-state t nil ido-setup-completion-map run-hooks ido-setup-hook ido-trace "\n_LOOP_" "" buffer bufferp buffer-name (file dir) file-name-nondirectory file assoc "new default" 0 (t wide) ido-make-merged-file-list auto wide "merged" input-pending-p ido-set-current-directory ido-final-slash "Merged" ido-make-file-list dir ido-make-dir-list ido-make-buffer-list list ido-make-choice-list ido-set-matches boundp max-mini-window-height minibuffer-depth ido read-from-minibuffer ido-make-prompt "read-from-minibuffer" get-buffer kill-buffer "\n_EXIT_" refresh ...] 22 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 47953)] (list "M-x " extended-command-history "toggle-debug-on-error" nil nil))
ido-read-internal(list "M-x " extended-command-history "toggle-debug-on-error" nil nil)
#[(prompt choices &optional _predicate require-match initial-input hist def _inherit-input-method) "\306\211\211\307������\310 \210\311\312���\f�
����&�-\207" [choices ido-choice-list ido-context-switch-command ido-directory-too-big ido-directory-nonreadable ido-current-directory nil ignore ido-common-initialization ido-read-internal list prompt hist def require-match initial-input] 7 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 120778)]("M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error" nil)
ad-Advice-ido-completing-read(#[(prompt choices &optional _predicate require-match initial-input hist def _inherit-input-method) "\306\211\211\307������\310 \210\311\312���\f�
����&�-\207" [choices ido-choice-list ido-context-switch-command ido-directory-too-big ido-directory-nonreadable ido-current-directory nil ignore ido-common-initialization ido-read-internal list prompt hist def require-match initial-input] 7 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 120778)] "M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error")
apply(ad-Advice-ido-completing-read #[(prompt choices &optional _predicate require-match initial-input hist def _inherit-input-method) "\306\211\211\307������\310 \210\311\312���\f�
����&�-\207" [choices ido-choice-list ido-context-switch-command ido-directory-too-big ido-directory-nonreadable ido-current-directory nil ignore ido-common-initialization ido-read-internal list prompt hist def require-match initial-input] 7 ("/usr/share/emacs/25.0.50/lisp/ido.elc" . 120778)] ("M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error"))
ido-completing-read("M-x " ("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil nil nil extended-command-history "toggle-debug-on-error")
smex-completing-read(("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...) nil)
smex-read-and-run(("toggle-debug-on-error" "flx-ido-mode" "eval-buffer" "smex" "customize-group" "git/visit-pull-request-url" "ag" "docker-containers" "macrostep-mode" "man" "package-utils-upgrade-all" "docker-images" "cleanup-buffer" "org-mode" "replace-string" "fundamental-mode" "vr/replace" "ediff-files" "package-install" "recentf-cleanup" "version" "checkdoc" "copy-file" "sort-lines" "github-clone" "sp-rewrap-sexp" "package-utils-remove-by-name" "idomenu" "pcre-mode" "keep-lines" "flush-lines" "rename-file" "ediff-buffers" "markdown-mode" "checkdoc-defun" "find-name-dired" "isearch-forward" "insert-file-name" "pp-eval-expression" "rectangle-mark-mode" "package-refresh-contents" "popwin:popup-buffer-tail" "projectile-cleanup-known-projects" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" ...))
smex()
funcall-interactively(smex)
#<subr call-interactively>(smex nil nil)
ad-Advice-call-interactively(#<subr call-interactively> smex nil nil)
apply(ad-Advice-call-interactively #<subr call-interactively> (smex nil nil))
call-interactively(smex nil nil)
command-execute(smex)
Doesn't work with ido-next-match
Hi Tom,
This package does exactly what I want: gives a much better ido view, but is not ido-vertical (which gets unbearably slow with many candidates), but unfortunately, it doesn't work with ido-next-match
(usually bound to C-s).
I reproduced this with an emacs -q
session of GNU Emacs 24.5.50.1, where I manually enabled ido-mode
, loaded ido-grid-mod.el
, and enabled ido-grid-mode
(so, no other packages or settings).
I expect C-s
(bound to ido-next-match
to move to the next match in an ido
session, but ido-grid-mode
does nothing. I verified that ido-grid-mode-keys
is not interfering, and double-checked that C-s
was bound when in ido-grid
.
Thanks,
Andy
C-n and C-p instead of defaults
Hi,
How should I do to remap C-n
and C-p
to behave like C-s
and C-r
?
I tried doing this (using use-package):
:bind (:map ido-completion-map
("C-n" . #'ido-grid-mode-next)
("C-p" . #'ido-grid-mode-previous))
but without success.
Any help?
It only works if ido-max-window-height is configured
For some reason, if I don't set ido-max-window-height
to a value greater than ido-grid-mode-min-rows
it won't work as expected:
- if it is
nil
it won't show the grid, only the prompt - if it is lesser than
ido-grid-mode-min-rows,
it will useido-max-window-height
height for the minibuffer.
That is how I use it:
(use-package ido-grid-mode
:ensure t
:config
(ido-grid-mode 1)
(setq ido-grid-mode-max-rows 4
ido-grid-mode-min-rows 4)
;; See https://github.com/larkery/ido-grid-mode.el/issues/7
(setq ido-max-window-height (+ ido-grid-mode-max-rows 1)))
PS: Should I use ido-grid.el or ido-grid-mode.el?
File name completing in wrong directory
Let's say I have three files, known to ido
/dir/subdir/foo-bar.pdf
/dir/subdir/foo-bar.tex
/dir/foo-bar.org
I want to open the last. So I start typing the first few letters "foo". With ido-grid-mode enabled, I see first "no match", hit TAB, then I see the matching files. I use to select the last and hit . However, it opens a blank file - emacs is then visiting /dir/subdir/foo-bar.org - i.e. the right name in the wrong directory.
I don't experience this with ido-vertical-mode.
Behavior with show-trailing-whitespace
With show-trailing-whitespace
enabled, trailing whitespace in the ido buffer is highlighted. I don't know if it's possible to disable show-trailing-whitespace
from applying to the ido buffer. If not, should be possible to fix it by actually clearing the trailing whitespace from the buffer, e.g., using delete-trailing-whitespace
.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.