среда, 4 мая 2016 г.

Emacs: скопировать в буфер обмена полный путь к текущему файлу

Иногда нужно скопировать текущий путь в буфер обмена, а Emacs не имеет встроенной команды для этого, но как всегда небольшая функция поможет справиться с проблемой:




(defun copy-file-name-to-clipboard ()
  "Copy the current buffer full file name to the clipboard."
  (interactive)
  (let ((str (if (stringp buffer-file-name)
                 buffer-file-name
               (buffer-name))))
    (when str
      (kill-new str)
      (message "Copied '%s' to the clipboard." str))))

(defun copy-dir-name-to-clipboard ()
  "Copy the current buffer directory name to the clipboard."
  (interactive)
  (let ((str (if (stringp buffer-file-name)
                 (file-name-directory buffer-file-name)
               default-directory)))
    (when str
      (kill-new str)
      (message "Copied '%s' to the clipboard." str))))
Получаем две команды:
  • "M-x copy-file-name-to-clipboard" копирует в буфер обмена полный путь к текущему файлу
  • "M-x copy-dir-name-to-clipboard" копирует в буфер обмена директорию в которой лежит текущий файл
Горячие клавиши при необходимости назначаются по вкусу.

Комментариев нет:

Отправить комментарий