Apa cara termudah untuk membuka folder yang berisi file saat ini oleh penjelajah default OS?

10

Apa cara termudah untuk membuka folder yang berisi file saat ini oleh explorer default OS (misalnya explorer.exe dalam kasus OS Windows)?

Nama
sumber
1
Saya punya firasat (browse-url-of-file default-direktori) akan melakukannya, yang berfungsi pada osx dengan finder, saya akan berpikir itu akan bekerja dengan windows, tetapi tidak dapat mengujinya.
Jordon Biondo
@JordonBiondo berhasil! Harap konversi komentar Anda menjadi jawaban.
Nama

Jawaban:

14

Penggunaan browse-url-of-fileharus berfungsi saat diberikan direktori.

Anda bisa menerapkan perintah yang membuka direktori file saat ini seperti ini:

(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")))

Maka M-x browse-file-directoryharus membuka direktori di browser file OS Anda.

Jordon Biondo
sumber
Ada sedikit ketidakcocokan dengan emacs 25. * di Windows, tetapi solusinya berfungsi baik dengan emacs 26.1 di Windows.
Nama
Apakah mungkin untuk memilih file, seperti di VS? Lihat trik 20 di dev.to/devmount/23-lesser-known-vs-code-shortcuts-as-gif-80
user3341592
1

Jalankan shell-command( M+ !) dengan program explorer default dan folder saat ini, misalnya untuk MS Windows,explorer .

estownya
sumber
0

salin path lengkap ke clipboard pada awalnya:

;; 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")))
chen bin
sumber