2010-09-27 5 views

Répondre

4

Vous pouvez essayer:

(global-set-key [ns-drag-file] 'ns-find-file) 

Il fonctionne pour moi sur Emacs 23.2.1

+1

Presque, mais pas tout à fait. Ajouter ceci à mon ~/.emacs l'a fait pour arrêter d'ouvrir dans le même tampon, mais je veux qu'il s'ouvre dans un tampon unique dans la même fenêtre. –

+2

'(setq ns-pop-up-frames nil)' travaillé pour moi. – worldsayshi

+0

[Relié] (http://stackoverflow.com/questions/1850292/emacs-23-1-and-mac-os-x-problem-with-files-drag-and-drop) – worldsayshi

2

J'utilise dans mon .emacs:

; Upon drag-and-drop: Find the file, w/shift insert filename; w/meta insert file contents 
; note that the emacs window must be selected (CMD-TAB) for the modifiers to register 
(define-key global-map [M-ns-drag-file] 'ns-insert-file) 
(define-key global-map [S-ns-drag-file] 'ns-insert-filename) 
(define-key global-map [ns-drag-file] 'ns-find-file-in-frame) 

(defun ns-insert-filename() 
    "Insert contents of first element of `ns-input-file' at point." 
    (interactive) 
    (let ((f (pop ns-input-file))) 
    (insert f)) 
    (if ns-input-file      ; any more? Separate by " " 
     (insert " "))) 

(defun ns-find-file-in-frame() 
    "Do a `find-file' with the `ns-input-file' as argument; staying in frame." 
    (interactive) 
    (let ((ns-pop-up-frames nil)) 
    (ns-find-file))) 
+0

Génial! Cela fonctionne très bien - merci beaucoup! Est-il possible de changer le comportement par défaut de ns-drag-file, si la destination est un buffer de shell? En particulier, si je glisse dans un shell, il me semble naturel de coller le chemin complet. Mais de toute façon, juste curieux. Maintenir le changement est assez facile. – DavidR

2

-je utiliser:

(if (fboundp 'ns-find-file) 
    (global-set-key [ns-drag-file] 'ns-find-file)) 

Ceci (qui est fondamentalement le même que donné dans d'autres réponses) assure qu'un nouveau tampon est créé. La partie if garantit que le code fonctionnera même dans un environnement non-Mac. Cela garantit que le nouveau tampon est affiché dans une fenêtre existante, de sorte qu'une nouvelle trame Emacs n'est pas ouverte. (J'ai remarqué dans un commentaire que vous aviez des problèmes avec cela.)

+0

Ahh, parfait! Cela m'embêtait vraiment, mais maintenant mon nouveau mactop a la perfection d'emacs, merci! – CodexArcanum

Questions connexes