Який найпростіший спосіб відкрити папку, що містить поточний файл, за замовчуванням провідника ОС?


10

Який найпростіший спосіб відкрити папку, що містить поточний файл, за замовчуванням провідника ОС (наприклад ,r.r.e у випадку ОС Windows)?


1
У мене є переконання (перегляньте-URL-файл за замовчуванням-каталог), це зробить, що працює на OSX з Finder, я думаю, він буде працювати з Windows, але не можу перевірити його.
Джордон Біондо

@JordonBiondo це працює! Перетворіть ваш коментар у відповідь.
Ім'я

Відповіді:


14

Використання browse-url-of-fileповинно працювати при наданні каталогу.

Ви можете реалізувати команду, яка відкриває каталог поточного файлу так:

(defun browse-file-directory ()
  "Open the current file's directory however the OS would."
  (interactive)
  (if default-directory
      (browse-url-of-file (expand-file-name default-directory))
    (error "No `default-directory' to open")))

Потім M-x browse-file-directoryслід відкрити каталог у файловому браузері вашої ОС.


У Windows була невелика несумісність з emacs 25. *, але рішення працює добре з emacs 26.1 для Windows.
Ім'я

Чи можна було б вибрати файл, як у VS? Перегляньте трюк 20 у dev.to/devmount/23-lesser-known-vs-code-shortcuts-as-gif-80
user3341592


1

Запустіть shell-command( M+ !) програмою провідника за замовчуванням та поточною папкою, наприклад, для MS Windows,explorer .


0

спершу скопіюйте повний шлях до буфера обміну:

;; you need install xsel under Linux
;; xclip has some problem when copying under Linux
(defun copy-yank-str (msg &optional clipboard-only)
  (unless clipboard-only (kill-new msg))
  (cond
   ;; display-graphic-p need windows 23.3.1
   ((and (display-graphic-p) x-select-enable-clipboard)
    (x-set-selection 'CLIPBOARD msg))
   (t (with-temp-buffer
        (insert msg)
        (shell-command-on-region (point-min) (point-max)
                                 (cond
                                  ((eq system-type 'cygwin) "putclip")
                                  ((eq system-type 'darwin) "pbcopy")
                                  (t "xsel -ib")))))))

(defun cp-fullpath-of-current-buffer ()
  "copy full path into the yank ring and OS clipboard"
  (interactive)
  (when buffer-file-name
    (copy-yank-str (file-truename buffer-file-name))
    (message "file full path => clipboard & yank ring")))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.