[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: C-x C-f RET problem...
From: |
Richard Stallman |
Subject: |
Re: C-x C-f RET problem... |
Date: |
Fri, 17 May 2002 13:29:17 -0600 (MDT) |
Here's another idea for how to implement the feature. It only affects
interactive calls to find-file and friends. If you just type RET, you
visit the directory, but if you want to use the visited file name
instead, you just have to type M-n to get it.
What do you think?
*** files.el.~1.573.~ Tue May 14 01:16:00 2002
--- files.el Fri May 17 12:15:04 2002
***************
*** 768,781 ****
(pop-to-buffer buffer t norecord)
(raise-frame (window-frame (selected-window)))))
(defun find-file (filename &optional wildcards)
"Edit file FILENAME.
Switch to a buffer visiting file FILENAME,
creating one if none already exists.
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and visit multiple files. Wildcard expansion
can be suppressed by setting `find-file-wildcards'."
! (interactive "FFind file: \np")
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(mapcar 'switch-to-buffer (nreverse value))
--- 768,799 ----
(pop-to-buffer buffer t norecord)
(raise-frame (window-frame (selected-window)))))
+ (defun find-file-read-args (prompt)
+ (list (let ((find-file-default
+ (and buffer-file-name
+ (abbreviate-file-name buffer-file-name)))
+ (minibuffer-setup-hook
+ '((lambda ()
+ (setq minibuffer-default find-file-default)
+ ;; Clear out this hook so it does not interfere
+ ;; with any recursive minibuffer usage.
+ (setq minibuffer-setup-hook nil)))))
+ (read-file-name prompt nil default-directory))
+ current-prefix-arg))
+
(defun find-file (filename &optional wildcards)
"Edit file FILENAME.
Switch to a buffer visiting file FILENAME,
creating one if none already exists.
+ Interactively, the default if you just type RET is the current directory,
+ but the visited file name is available through the minibuffer history:
+ type M-n to pull it into the minibuffer.
+
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and visit multiple files. Wildcard expansion
can be suppressed by setting `find-file-wildcards'."
! (interactive
! (find-file-read-args "Find file: "))
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(mapcar 'switch-to-buffer (nreverse value))
***************
*** 785,793 ****
"Edit file FILENAME, in another window.
May create a new window, or reuse an existing one.
See the function `display-buffer'.
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and visit multiple files."
! (interactive "FFind file in other window: \np")
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(progn
--- 803,816 ----
"Edit file FILENAME, in another window.
May create a new window, or reuse an existing one.
See the function `display-buffer'.
+
+ Interactively, the default if you just type RET is the current directory,
+ but the visited file name is available through the minibuffer history:
+ type M-n to pull it into the minibuffer.
+
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and visit multiple files."
! (interactive (find-file-read-args "FFind file in other window: "))
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(progn
***************
*** 800,808 ****
"Edit file FILENAME, in another frame.
May create a new frame, or reuse an existing one.
See the function `display-buffer'.
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and visit multiple files."
! (interactive "FFind file in other frame: \np")
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(progn
--- 823,836 ----
"Edit file FILENAME, in another frame.
May create a new frame, or reuse an existing one.
See the function `display-buffer'.
+
+ Interactively, the default if you just type RET is the current directory,
+ but the visited file name is available through the minibuffer history:
+ type M-n to pull it into the minibuffer.
+
Interactively, or if WILDCARDS is non-nil in a call from Lisp,
expand wildcards (if any) and visit multiple files."
! (interactive (find-file-read-args "FFind file in other frame: "))
(let ((value (find-file-noselect filename nil nil wildcards)))
(if (listp value)
(progn
***************
*** 813,821 ****
(defun find-file-read-only (filename &optional wildcards)
"Edit file FILENAME but don't allow changes.
! Like `find-file' but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
! (interactive "fFind file read-only: \np")
(find-file filename wildcards)
(toggle-read-only 1)
(current-buffer))
--- 841,849 ----
(defun find-file-read-only (filename &optional wildcards)
"Edit file FILENAME but don't allow changes.
! Like \\[find-file] but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
! (interactive (find-file-read-args "fFind file read-only: "))
(find-file filename wildcards)
(toggle-read-only 1)
(current-buffer))
***************
*** 824,830 ****
"Edit file FILENAME in another window but don't allow changes.
Like \\[find-file-other-window] but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
! (interactive "fFind file read-only other window: \np")
(find-file-other-window filename wildcards)
(toggle-read-only 1)
(current-buffer))
--- 852,858 ----
"Edit file FILENAME in another window but don't allow changes.
Like \\[find-file-other-window] but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
! (interactive (find-file-read-args "fFind file read-only other window: "))
(find-file-other-window filename wildcards)
(toggle-read-only 1)
(current-buffer))
***************
*** 833,839 ****
"Edit file FILENAME in another frame but don't allow changes.
Like \\[find-file-other-frame] but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
! (interactive "fFind file read-only other frame: \np")
(find-file-other-frame filename wildcards)
(toggle-read-only 1)
(current-buffer))
--- 861,867 ----
"Edit file FILENAME in another frame but don't allow changes.
Like \\[find-file-other-frame] but marks buffer as read-only.
Use \\[toggle-read-only] to permit editing."
! (interactive (find-file-read-args "fFind file read-only other frame: "))
(find-file-other-frame filename wildcards)
(toggle-read-only 1)
(current-buffer))