2013-10-15 36 views
1

我有几个书签设置为跳转到dired缓冲区。之前Emacs会在我的C-x r b回调书签后在迷你缓冲区中为我提供一些(内联)候选列表,但是在我的.emacs文件被一些黑客入侵后,将其分割成候选列表已经消失的模块。从Emacs迷你缓冲区中删除书签的完成选项

我假设我已经无意中改变了一些与idoautocomplete有关的设置,我使用了这两个设置,但是我无法弄清楚它是什么。任何人都可以提出解决方案吗? [编辑:书签仍然存在,我可以跳转到他们,如果我输入书签的名称,但没有提示列表。如果我按TAB我得到完成候选人缓冲区,但我没有在迷你让他们]

minibuffer

和以前我会得到这样的:

minibuffer2

我认为它与我从Scott Frazer复制的以下一系列功能有关。

(require 'bookmark) 

(defun my-ido-bookmark-jump() 
    "Jump to bookmark using ido" 
    (interactive) 
    (let ((dir (my-ido-get-bookmark-dir))) 
    (when dir 
     (find-alternate-file dir)))) 

(defun my-ido-get-bookmark-dir() 
    "Get the directory of a bookmark." 
    (let* ((name (ido-completing-read "Use dir of bookmark: " (bookmark-all-names) nil t)) 
     (bmk (bookmark-get-bookmark name))) 
    (when bmk 
     (setq bookmark-alist (delete bmk bookmark-alist)) 
     (push bmk bookmark-alist) 
     (let ((filename (bookmark-get-filename bmk))) 
     (if (file-directory-p filename) 
      filename 
      (file-name-directory filename)))))) 

(defun my-ido-dired-mode-hook() 
    (define-key dired-mode-map "$" 'my-ido-bookmark-jump)) 

(add-hook 'dired-mode-hook 'my-ido-dired-mode-hook) 


(defun my-ido-use-bookmark-dir() 
    "Get directory of bookmark" 
    (interactive) 
    (let* ((enable-recursive-minibuffers t) 
     (dir (my-ido-get-bookmark-dir))) 
    (when dir 
     (ido-set-current-directory dir) 
     (setq ido-exit 'refresh) 
     (exit-minibuffer)))) 

;;define-key ido-file-dir-completion-map (kbd "$") 'my-ido-use-bookmark-dir) 

(add-hook 'ido-setup-hook 'ido-my-keys) 
(defun ido-my-keys() 
"Add my keybindings for ido." 
(define-key ido-file-dir-completion-map (kbd "$") 'my-ido-use-bookmark-dir)) 
+0

我有nerver有这样的名单,但是当我开始输入书签名称,我可以使用选项卡或回车键完成。出于个人兴趣,您使用的是什么主题? –

+0

嗯,如果你从来没有见过它,那么也许它是在我添加到我的init文件中的函数,但如果是这样,我不能找到哪个函数是responsbile。主题是['tangotango.el'](https://github.com/juba/color-theme-tangotango),我使用的是Emacs 24.3的'load-theme'(用于使用'color-theme '对于这种事情,但没有更多)。 – SlowLearner

+0

您的配置版本是否受到控制? –

回答

4

试试这个

(global-set-key (kbd "C-x r b") 
    (lambda() 
     (interactive) 
     (bookmark-jump 
     (ido-completing-read "Jump to bookmark: " (bookmark-all-names))))) 
+0

谢谢,这固定它。我以为我已经包含了这个键绑定,但显然我错过了它 - 只需要一双更聪明的眼睛来寻找它。现在它按照上面的第二个屏幕截图再次运行。 – SlowLearner