Jak stworzyć katalog z poziomu Emacsa?

142

Jak dokładnie mogę stworzyć nowy katalog używając Emacsa? Jakich poleceń używam? (Jeśli to możliwe, podaj przykład)

Promień
źródło

Odpowiedzi:

195
  • aby utworzyć katalog dir/to/create, wpisz:

    M-x make-directory RET dir/to/create RET
  • aby utworzyć katalogi dir/parent1/nodei dir/parent2/nodewpisz:

    M-! mkdir -p dir/parent{1,2}/node RET

    Zakłada, że ​​gorsza powłoka Emacsa jest bash/ zshlub inna kompatybilna powłoka.

  • lub w Diredtrybie

    +

    Nie tworzy nieistniejących katalogów nadrzędnych.

    Przykład:

    C-x d *.py RET ; shows python source files in the CWD in `Dired` mode
    + test RET     ; create `test` directory in the CWD
    

    CWD oznacza bieżący katalog roboczy.

  • lub po prostu utwórz nowy plik z nieistniejącymi katalogami nadrzędnymi, używając C-x C-fi wpisz:

    M-x make-directory RET RET

Emacs prosi o automatyczne utworzenie nadrzędnych katalogów podczas zapisywania nowego pliku w ostatnich wersjach Emacsa. W przypadku starszej wersji zobacz Jak sprawić, by Emacs tworzył katalogi pośrednie - podczas zapisywania pliku?

jfs
źródło
1
Cześć JF Sebastian, Kiedy tworzę katalog w powłoce, jak zaktualizować okno katalogu?
dlaczego
2
@why: type g. Ogólnie M-x describe-mode RET( C-h m), aby wyświetlić dokumentację bieżącego trybu głównego.
jfs
Dziękuję bardzo! Ale masz na myśli, że wprowadzam Mx g lub Cx g?
dlaczego
1
@ dlaczego ma na myśli singiel g. Ponieważ dired-modenie jest trybem edycji, używa bezpośrednio poleceń jednoliterowych (dla ciekawskich: gjest przypisany self-insert-commandw większości trybów edycji).
Vicky Chijwani
42

Ctrl+ X D( C-x d), aby otworzyć katalog w trybie „dired”, a następnie +utworzyć katalog.

Kirk Strauser
źródło
Zakładam, że `` + '' pojawia się na końcu dowolnego nowego katalogu ścieżki pliku?
Ray
kiedy robię Cx Cf i wpisuję „+ dirname” emacs tworzy plik „+ dirname”, nie tworzy katalogu „dirname”. Pracuję z OSX, nie wiem, czy to jest problem, ponieważ w Linuksie to zadziałało.
Zeynel
4
@Zeynel: Nie czytasz. Nie ma C-x C-ftutaj. Używasz, C-x daby przejść do trybu Dired, odwiedzając katalog, w którym chcesz utworzyć podkatalog. Wtedy uderzyłeś +. To wszystko.
Drew
8

Możesz także uruchamiać polecenia pojedynczej powłoki za pomocą M-!

Zasadniczo wysyłasz ciąg do wiersza poleceń, więc nie otrzymujesz żadnego ładnego autouzupełniania, ale jest to przydatne, jeśli wiesz, jak wykonać akcję za pomocą wiersza poleceń, ale nie znasz równoważnego sposobu Emacsa.

M-! mkdir /path/to/new_dir
Cristian
źródło
To działa, wpisz „g”, aby zaktualizować zawartość ekranu.
mistige
5

Myślę, że zrobiłem to dzisiaj ciężko. Zrobiłem:

M-x shell-command

następnie

mkdir -p topdir/subdir
etank
źródło
4

Możesz używać M-x make-directoryw dowolnym buforze, niekoniecznie w buforze dired. Jest to funkcja lisp, której możesz również użyć.

Jonathan Arkell
źródło
2

Natknąłem się na to pytanie, szukając sposobu automatycznego tworzenia katalogów w Emacsie. Najlepsza odpowiedź, jaką znalazłem, była w innym wątku z kilku lat później. Odpowiedź od Victora Deryagina była dokładnie tym, czego szukałem. Dodanie tego kodu do twojego .emacs spowoduje, że Emacs zapyta cię o utworzenie katalogu, kiedy będziesz zapisywać plik.

Brian Taylor
źródło