Jaki jest najłatwiejszy sposób otwarcia folderu zawierającego bieżący plik przez domyślnego eksploratora systemu operacyjnego?


10

Jaki jest najprostszy sposób otwarcia folderu zawierającego bieżący plik przez domyślnego eksploratora systemu operacyjnego (np. Explorer.exe w przypadku systemu operacyjnego Windows)?


1
Mam przeczucie (domyślny katalog pliku do przeglądania), by to zrobiło, działa na osxie z wyszukiwarką, myślę, że będzie działało z Windows, ale nie mogę go przetestować.
Jordon Biondo

@JordonBiondo to działa! Przekształć swój komentarz w odpowiedź.
Imię

Odpowiedzi:


14

Korzystanie browse-url-of-filepowinno działać po otrzymaniu katalogu.

Możesz zaimplementować polecenie otwierające katalog bieżącego pliku w następujący sposób:

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

Następnie M-x browse-file-directorypowinien otworzyć katalog w przeglądarce plików systemu operacyjnego.


Wystąpiła niewielka niezgodność z emacsem 25. * w systemie Windows, ale rozwiązanie działa dobrze z emacsem 26.1 w systemie Windows.
Imię,

Czy można byłoby wybrać plik, tak jak w VS? Zobacz lewę 20 w dev.to/devmount/23-lesser-known-vs-code-shortcuts-as-gif-80
user3341592


1

Uruchom shell-command( M+ !) z domyślnym programem eksploratora i bieżącym folderem, np. Dla MS Windows,explorer .


0

najpierw skopiuj pełną ścieżkę do schowka:

;; 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")))
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.