Подтвердить что ты не робот

Как создать новый файл из режима ожидания?

Я хочу создать новый файл в режиме dired. Есть ли команда "Создать новый файл" в режиме ожидания? Например, Когда я набираю "c" в режиме ожидания, он создает "untitled.txt". Это очень просто, но я не могу его найти.

4b9b3361

Ответ 1

Просто нажмите C-x C-f. Это вызовет имя файла, используя текущий каталог текущего буфера в качестве каталога для его ввода. Для буфера с нулевым значением его текущий каталог - это просто каталог, который вы ищете.

Ответ 2

Если вы хотите c в режиме Dired сделать то, что делает C-x C-f, ответ тривиальный:

(define-key dired-mode-map "c" 'find-file)

Или, если вы хотите, чтобы у него было имя untitled.txt, тогда:

(define-key dired-mode-map "c"
  (lambda () (interactive) (find-file "untitled.txt")))

Ответ 3

Спасибо всем, Я, наконец, решил это сам. Вот мой ответ. Ввод "c" в режиме ожидания предложит вам создать новый файл без названия. Затем нажмите Enter, чтобы создать новый файл без названия. Да, это очень многословный код. Кто-то может это исправить.

(eval-after-load 'dired
  '(progn
     (define-key dired-mode-map (kbd "c") 'my-dired-create-file)
     (defun create-new-file (file-list)
       (defun exsitp-untitled-x (file-list cnt)
         (while (and (car file-list) (not (string= (car file-list) (concat "untitled" (number-to-string cnt) ".txt"))))
           (setq file-list (cdr file-list)))
         (car file-list))

       (defun exsitp-untitled (file-list)
         (while (and (car file-list) (not (string= (car file-list) "untitled.txt")))
           (setq file-list (cdr file-list)))
         (car file-list))

       (if (not (exsitp-untitled file-list))
           "untitled.txt"
         (let ((cnt 2))
           (while (exsitp-untitled-x file-list cnt)
             (setq cnt (1+ cnt)))
           (concat "untitled" (number-to-string cnt) ".txt")
           )
         )
       )
     (defun my-dired-create-file (file)
       (interactive
        (list (read-file-name "Create file: " (concat (dired-current-directory) (create-new-file (directory-files (dired-current-directory))))))
        )
       (write-region "" nil (expand-file-name file) t) 
       (dired-add-file file)
       (revert-buffer)
       (dired-goto-file (expand-file-name file))
       )
     )
  )

Ответ 4

Ниже приведены два (2) варианта, один из которых требует, чтобы touch находился в $PATH - альтернативно, можно использовать абсолютный путь. touch обычно доступен в системах с уникальным вкусом, например OSX и т.д. Эта функция автоматически будет автоматически группировать файлы/буферы - например, untitled.txt; untitled1.txt; untitled2.txt и т.д.

(define-key dired-mode-map (kbd "c") 'dired-new-file)

(defun dired-new-file ()
(interactive)
  (let* (
      (n 0)
      lawlist-filename
      (dired-buffer-name (buffer-name)))
    (catch 'done
      (while t
        (setq lawlist-filename (concat "untitled"
          (if (= n 0) "" (int-to-string n))
            ".txt"))
        (setq n (1+ n))
        (if (not (file-exists-p lawlist-filename))
          (throw 'done nil)) ))
    (message "[b]uffer + file (maybe) | [f]ile + buffer (maybe)")
    (let ((file-or-buffer (read-char-exclusive)))
      (cond
        ((eq file-or-buffer ?b)
          (switch-to-buffer (get-buffer-create lawlist-filename))
          (text-mode)
          (or (y-or-n-p (format "Save Buffer `%s'? "lawlist-filename))
            (error "Done."))
          (write-file lawlist-filename)
          (with-current-buffer dired-buffer-name
            (revert-buffer)))
        ((eq file-or-buffer ?f)
          (start-process "touch-file" nil "touch" lawlist-filename)
          (revert-buffer)
          (or (y-or-n-p (format "Open `%s'? "lawlist-filename))
            (error "Done."))
          (find-file lawlist-filename)
          (text-mode))
        (t (message "You have exited the function.")) )) ))

Ответ 5

  • нажмите C-x C-f
  • введите имя файла
  • нажмите C-j

после вышеуказанных шагов emacs создаст пустой буфер с введенным именем. Но emacs не поддерживает создание пустого файла по умолчанию. Вы можете обратиться к Как создать пустой файл в emacs для получения дополнительных идей

Ответ 6

Если вы хотите ввести имя файла, я думаю, что это дубликат:

Как создать пустой файл в emacs?

Если вы не хотите вводить имя файла, вы все равно можете использовать некоторые из этих ответов и легко адаптировать других путем жесткого кодирования имени, а не запрашивать его в интерактивном режиме.