2013-10-15 10 views
1

J'ai quelques signets mis en place pour passer à dired tampons. Auparavant Emacs m'offrait une petite liste (inline) de candidats juste là dans le mini-tampon après avoir frappé C-x r b pour rappeler le signet, mais après quelques piratage de mon fichier .emacs pour le diviser en modules cette liste de candidats a disparu.Choix d'achèvement pour les signets disparus du mini-tampon Emacs

Je suppose que j'ai modifié par inadvertance certains paramètres liés à ido ou autocomplete, que j'utilise tous les deux, mais je ne peux pas savoir de quoi il s'agit. Quelqu'un peut-il suggérer une solution? [EDIT: Les signets existent toujours et je peux sauter à eux si j'entre le nom du signet, mais pas de liste d'invite. Si j'appuie sur TAB je reçois un tampon avec les candidats d'achèvement, mais je ne les ai pas dans le minibuffer]

minibuffer

et auparavant j'obtenir ceci:.

minibuffer2

I pense qu'il a à voir avec le bouquet suivant de fonctions que j'ai copié de 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

je nerver avait cette liste, mais quand je commence à taper un nom de marque, je peux le compléter en utilisant l'onglet ou la touche Entrée. Par intérêt personnel, quel thème utilisez-vous? –

+0

Hmm, si vous ne l'avez jamais vu alors peut-être que c'était dans une fonction que j'ai ajoutée à mon fichier init, mais si c'est le cas, je ne peux pas trouver quelle fonction est responsbile. Le thème est ['tangotango.el'] (https://github.com/juba/color-theme-tangotango) que j'utilise avec' load-theme' d'Emacs 24.3 (utilisé pour utiliser 'color-theme 'pour ce genre de chose mais pas plus). – SlowLearner

+0

Votre version de configuration est-elle contrôlée? –

Répondre

4

Essayez cette

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

Merci, ceci l'a réparé. Je pensais avoir inclus cette reliure, mais apparemment je l'avais manquée - j'avais juste besoin d'une paire d'yeux plus intelligents pour la chercher. Maintenant, cela fonctionne à nouveau selon la deuxième capture d'écran ci-dessus. – SlowLearner