Как настроить emacs перетаскивать для открытия вместо добавления на OSX - PullRequest
6 голосов
/ 27 сентября 2010

Как настроить emacs 23.1.1 на osx, чтобы перетаскивание файла в окне emacs открывало файл в новом буфере вместо добавления его в текущий буфер?

Ответы [ 3 ]

4 голосов
/ 27 сентября 2010

Вы можете попробовать:

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

У меня это работает на Emacs 23.2.1

2 голосов
/ 22 января 2012

Я использую:

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

Это (в основном то же, что дано в других ответах) гарантирует, что будет создан новый буфер. Часть if гарантирует, что код будет работать даже в среде, отличной от Mac.

(setq ns-pop-up-frames nil)

Это гарантирует, что новый буфер отобразится в существующем окне, так что новый кадр Emacs не будет открыт. (Я заметил в комментарии, что у вас были проблемы с этим.)

2 голосов
/ 22 января 2012

Я использую в своем .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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...