Mở một tệp mới có thư mục mẹ chưa tồn tại


9

Khi mở một tệp mới có thư mục mẹ chưa tồn tại, tôi sẽ mở một cửa sổ shell hoặc bộ đệm shell Emacs, và sau đó mkdirlà thư mục trong đó. Tôi thấy điều này cồng kềnh. Có cách nào dễ hơn không?

Câu trả lời:


16

Bạn không cần phải làm điều đó, nếu đó là câu hỏi của bạn.

C-x C-f /some/new/directory/newfile.txt

Emacs in một thông báo để cho bạn biết rằng thư mục /some/new/directory/chưa tồn tại : Use M-x make-directory RET RET to create the directory and its parents.

Chèn văn bản vào bộ đệm mới cho tập tin mới newfile.txt.

C-x C-s để lưu tập tin.

Emacs hỏi bạn có muốn tạo các thư mục trung gian bị thiếu hay không (ví dụ: new/directory/Bạn nhấn y"có".

Không rườm rà lắm, IMO. Giao diện người dùng cần yêu cầu bạn xác nhận, vì bạn có thể dễ dàng nhập nhầm tên của một thư mục hiện có.


Bạn cũng có thể chỉ cần sử dụng M-x make-dir tab(được kiểm tra emacs -Qđể chắc chắn rằng nó hoạt động) RET RETvà nó sẽ tạo thư mục mà không cần phải nhắc thêm.
Jonathan Leech-Pepin

1
@ JonathanL336-Pepin: Vâng, tất nhiên. (Đó là những gì thông báo nói.) Nhưng nếu bạn đã mở bộ đệm tệp mới, chỉ cần cố gắng lưu nó và xác nhận tạo thư mục với y.
vẽ

7

Dành cho idongười dùng

  • Làm C-x C-f(nên gọi ido-find-file) và nhập một đường dẫn không tồn tại.
  • Nhấn M-m(ghi nhớ cho make dir mới?). Trúng RET.
  • Tiếp tục với việc gõ tên tệp mới mà bạn muốn tạo trong thư mục mới đó. Trúng RET.

1

Khi ở trong tình huống này, emacs nên nói với bạn một cái gì đó như:

use M-x make-directory RET RET to create the directory and its parents

Có cồng kềnh không?

Tôi sẽ nói, đúng vậy.


0

Nếu bạn thực sự muốn thực hiện find-fileđể tự động tạo thư mục mẹ khi chưa tồn tại, bạn có thể thực hiện các thao tác sau trong tệp init của mình.

(defun my-find-file (orig-fun &rest args)
  (let* ((filename (car args))
         (directory (file-name-directory filename)))
    (if (not (file-directory-p directory))
        (make-directory directory t))
    (apply orig-fun args)))

(advice-add 'find-file :around 'my-find-file)

Rốt cuộc, Emacs được thiết kế để có thể mở rộng và tùy biến.

Tài liệu tham khảo:

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.