Ana dizini henüz mevcut olmayan yeni bir dosya açma


9

Üst dizini henüz bulunmayan yeni bir dosyayı açarken, bir kabuk penceresi veya Emacs kabuk arabelleği ve ardından mkdiriçindeki dizini açarım . Bu hantal buluyorum. Daha kolay bir yol var mı?

Yanıtlar:


16

Bunu yapmana gerek yok, eğer bu senin sorunun.

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

Emacs Eğer dizin bildirmek için bir mesaj yazdırır /some/new/directory/henüz yok: Use M-x make-directory RET RET to create the directory and its parents.

Yeni dosya için yeni arabelleğe metin ekleyin newfile.txt.

C-x C-s dosyayı kaydetmek için.

Emacs, eksik ara dizinleri oluşturmak isteyip istemediğinizi sorar (örn new/directory/. y"Evet" i tıkladınız.

Çok hantal değil, IMO. Mevcut bir dizinin adını kolayca yanlış yazmış olabileceğiniz için kullanıcı arayüzünün sizden onay istemesi gerekir.


Ayrıca kullanabilirsiniz M-x make-dir tab( emacs -Qçalıştığından emin olmak için denenmiştir ) RET RETve daha fazla bilgi istemeden dizini oluşturacaktır.
Jonathan Leech-Pepin

1
@ JonathanLeech-Pepin: Evet, elbette. (Mesajın söylediği budur.) Ancak yeni dosya arabelleğini zaten açtıysanız, kaydetmeyi deneyin ve dizin oluşturmayı onaylayın y.
Drew

7

için idokullanıcılar

  • Yapın C-x C-f(çağırması gerekir ido-find-file) ve var olmayan bir yol girin.
  • Tuşuna basın M-m( myeni dir için anımsatıcı ?). Vur RET.
  • Yeni dizinde oluşturmak istediğiniz yeni dosya adını yazmaya devam edin. Vur RET.

1

Bu durumda, emacs size şöyle bir şey söylemeliydi:

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

Bu hantal mı?

Ben diyeceğim, evet öyle.


0

Henüz find-filemevcut olmadığında otomatik olarak üst dizinler oluşturmak istiyorsanız, init dosyanızda aşağıdakileri yapabilirsiniz.

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

Sonuçta, Emacs genişletilebilir ve özelleştirilebilir olacak şekilde tasarlanmıştır.

Referans:

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.