Функция для отображения полного пути текущего файла в мини-буфере - PullRequest
91 голосов
/ 08 сентября 2010

Мне нужно получить полный путь к файлу, который я редактирую с помощью emacs.

  • Есть ли для этого функция?
  • Если нет, то что будетФункция elisp для получения этого?
  • Как я могу скопировать результат (имя пути) в буфер обмена, чтобы я мог его повторно использовать?

Я использую Mac OS X и Aqumacs,

(setq filepath (get-fullpath-current-file)) ???
(copy-to-clipboard 'filepath) ???

ДОБАВЛЕНО

(defun show-file-name ()
  "Show the full path file name in the minibuffer."
  (interactive)
  (message (buffer-file-name))
  (kill-new (file-truename buffer-file-name))
)
(global-set-key "\C-cz" 'show-file-name)

Комбинируя два полученных ответа, я мог получить то, что хочу.Спасибо за ответы.И еще несколько вопросов.

  • Для чего (имя-файла)?
  • Могу ли я скопировать имя пути в буфер обмена системы (ОС), а не в список уничтожений, чтобы я могможете использовать информацию с другими приложениями?

Ответы [ 12 ]

0 голосов
/ 20 августа 2015

copy-buffer-file-name-as-kill из [0] делает именно то, что вам нужно, я думаю.Также имеется возможность скопировать только имя каталога или просто имя файла.

[0] http://www.emacswiki.org/emacs/download/buffer-extension.el

0 голосов
/ 08 февраля 2015

Самый простой способ и будет

(buffer-name)<(C-x)(C-e)> for the file name to appear in the echo area

(buffer-name)<(C-u)(C-x)(C-e)> would print the location <here>

Заимствование у Трея Джексона Я придумал это:

(defun buffer-kill-path ()
  "copy buffer's full path to kill ring"
  (interactive)
  (kill-new (buffer-file-name)))

Вы можете найти больше информации на сайте

...