Вы говорите о вставке, чтобы открыть файл (я предполагаю, что вы имеете в виду в приглашении найти файл внутри emacs), а также что-то делаете из командной строки.Если вы хотите скопировать и вставить, вам нужно сделать что-то вроде того, что Иван показал с помощью defadvice.Если вы хотите что-то из командной строки, вы можете сделать следующее.Я адаптировал это из того, что сделал год назад, с помощью обработчика URI emacs: // (для использования из Firefox):
Поместите это в свой файл .emacs:
(defun emacs-uri-handler (uri)
"Handles emacs URIs in the form: emacs:///path/to/file/LINENUM"
(save-match-data
(if (string-match "emacs://\\(.*\\)/\\([0-9]+\\)$" uri)
(let ((filename (match-string 1 uri))
(linenum (match-string 2 uri)))
(while (string-match "\\(%20\\)" filename)
(setq filename (replace-match " " nil t filename 1)))
(with-current-buffer (find-file filename)
(goto-line (string-to-number linenum))))
(beep)
(message "Unable to parse the URI <%s>" uri))))
и затем создайте сценарий оболочки на вашем пути (я назвал мой 'emacsat'):
#!/bin/bash
emacsclient --no-wait -e "(emacs-uri-handler \"emacs://$1/${2:-1}\")"
Пакетный сценарий DOS будет выглядеть аналогично, но я не знаю, как сделать значения по умолчанию (хотя яя уверен, что вы можете это сделать).
См. Как настроить firefox для запуска emacsclientw по определенным ссылкам? для получения дополнительных инструкций, если вы хотите интегрировать и с Firefox.