2015-08-14 2 views
0

Je veux lancer directement à partir de ido. Par exemple, je veux lancer ido avec ido-find-file, naviguer vers le répertoire où je veux lancer magit, appuyez sur une combinaison de touches comme C-x g, et avoir ido quitter et et magit ouvrir dans ce répertoire.Lancer magit directement à partir de l'ido dans Emacs

Je actuellement un peu presse C-d pour ouvrir dired dans le répertoire, puis appuyez sur C-x g pour ouvrir magit, mais je voudrais éviter que supplémentaire C-d.

j'ai réussi à ajouter une nouvelle combinaison de touches à ido-completion-map:

(add-hook 'ido-minibuffer-setup-hook 
      (lambda() (interactive) 
      (define-key ido-completion-map (kbd "C-x g") 'arvid-ido-enter-magit-status) 
      )) 

Mais la fonction suivante ne semble pas fonctionner, juste ouverture dired avec au lieu de magit:

(defun arvid-ido-enter-magit-status() 
    "Drop into `dired' from file switching." 
    (interactive) 
    (setq ido-exit 'dired) 
    (magit-status default-directory) 
    (exit-minibuffer)) 
+0

Par ailleurs, je vous recommande de poser des questions Emacs ici: http: // e macs.stackexchange.com/. – tarsius

+0

Il n'y a rien de mal à poser des questions Emacs ici (StackOverflow, tag 'emacs'). Soit c'est OK et utile. – Drew

+0

Alors, quel est le point de l'emacs stackexchange? Pourquoi devrait-on utiliser l'un sur l'autre? – arvixx

Répondre

3

Magit déjà est livré avec une telle fonction:

(defun ido-enter-magit-status() 
    "Drop into `magit-status' from file switching. 

To make this command available use something like: 

    (add-hook 'ido-setup-hook 
      (lambda() 
       (define-key ido-completion-map 
       (kbd \"C-x g\") 'ido-enter-magit-status))) 

Starting with Emacs 25.1 the Ido keymaps are defined just once 
instead of every time Ido is invoked, so now you can modify it 
like pretty much every other keymap: 

    (define-key ido-common-completion-map 
    (kbd \"C-x g\") 'ido-enter-magit-status)" 
    (interactive) 
    (with-no-warnings ; FIXME these are internal variables 
    (setq ido-exit 'fallback fallback 'magit-status)) 
    (exit-minibuffer)) 
+0

Merci, ça marche super! – arvixx