2013-10-15 70 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