Poszukuję sugestii, proszę, aby utworzyć funkcję niestandardową dla dired-mode
w odniesieniu do kopiowania i przenoszenia plików, aby katalog mógł zostać utworzony, jeśli nie jest jeszcze istnieje. Domyślnym zachowaniem jest wygenerowanie komunikatu o błędzie, jeśli katalog jeszcze nie istnieje.Emacs - dired kopiować/przenosić pliki - w razie potrzeby utworzyć katalog
PUNKT NAKLEJKI: Punktem zwrotnym w moim umyśle będzie zajmowanie się błędną próbą stworzenia więcej niż jednego katalogu. Na przykład, powiedzmy, że chcemy skopiować pliki z katalogu macierzystego ~/
do /tmp/test/one/
- katalog /tmp/test/
już istnieje, ale istnieje jeszcze /tmp/test/one/
, który nie ma jeszcze wartości ani . Zamiast wpisywać /tmp/test/one/
, ja błędnie wpisać /tmp/tesst/one
- w takich okolicznościach, nie powinno być komunikat o błędzie informujący coś podobnego - Hej, nie można tego zrobić, bo /tmp/tesst/
musi najpierw istnieć przed można utworzyć /tmp/tesst/one
. Oczywiście, wszystko pójdzie gładko, gdybym poprawnie wpisał /tmp/test/one
, ponieważ /tmp/test/
już istniało w tym przykładzie.
I wreszcie, jestem przy założeniu, że należy po prostu utworzyć nową funkcję w oparciu o dired-do-create-files
- Modyfikacja następujący fragment kodu:
(if (not (or dired-one-file into-dir))
(error "Marked %s: target must be a directory: %s" operation target))
Wszelkie wskazówki coraz przeszłości kłucia, lub dowolny inne zagrożenia, o których nie myślałem, byłyby bardzo docenione.
Dlaczego tworzenie * jednego * nowego poziomu katalogu powinno być w porządku, ale tworzenie wielu nowych poziomów jest błędne? W jaki sposób zezwolić na dowolny dowolny katalog, ale prosząc o potwierdzenie, aby go utworzyć, gdy jeszcze nie istnieje? – phils
@phils - Zgadzam się, że na pewno dobrze byłoby móc tworzyć wiele katalogów głęboko (za jednym zamachem), jeśli jeszcze nie istnieją, a wymaganie potwierdzenia z pewnością pomoże uniknąć błędów. Być może najlepszym sprawdzeniem na pierwszym poziomie nowego katalogu byłby najlepszy sposób, aby upewnić się, że wybieram właściwą ścieżkę - coś w stylu - ** "Hej, próbujesz utworzyć 2 nowe katalogi - tj.". ../ tesst/one' - czy na pewno chcesz kontynuować? "** A gdybym poprawnie wpisał'/tmp/test/one', wiadomość by powiedziała, ** "... 1 nowy katalog - tzn. ".../one" ... "** – lawlist
Tylko komentarz. 1. Pomysł nie jest zły. 2. Z drugiej strony, nie jest tak wielką sprawą, aby trafić '+', aby utworzyć brakującą hierarchię katalogów. (I owszem, jeśli użyjesz '+', możesz także błędnie nazwać nazwę dir.) – Drew