簡體   English   中英

書簽的完成選擇來自Emacs迷你緩沖區

[英]Completion choices for bookmarks gone from Emacs minibuffer

我有幾個書簽設置為跳轉到dired緩沖區。 之前Emacs會在點擊Cx rb以回憶書簽之后在迷你緩沖區中為我提供一些(內聯)候選人列表,但是在我的.emacs文件被一些黑客攻擊后將其拆分為模塊后,候選人列表就消失了。

我假設我無意中改變了一些與idoautocomplete相關的設置,我使用了這兩個設置,但我無法弄清楚它是什么。 有人可以提出解決方案嗎? [編輯:書簽仍然存在,如果我輸入書簽的名稱,我可以跳轉到它們,但沒有提示列表。 如果我按TAB,我會得到一個帶有完成候選人的緩沖區,但是我沒有將它們放入迷你緩沖區。]

小緩沖區

以前我會得到這個:

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))

嘗試這個

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM