Make `C-M-f' and friends work better when prompting for file names
* minibuffer.el (minibuffer-local-filename-syntax): New variable to allow `C-M-f' and `C-M-b' to move to the nearest path separator.
This commit is contained in:
parent
4b63a9ca3d
commit
09b95ce39b
3 changed files with 26 additions and 1 deletions
3
etc/NEWS
3
etc/NEWS
|
@ -44,6 +44,9 @@ prompts for a column number.
|
|||
** `mouse-avoidance-banish-position' can now be used to customize
|
||||
`mouse-avoidance-mode' further.
|
||||
|
||||
** `C-M-f' and `C-M-b' will now move to the path name separator
|
||||
character when doing minibuffer filename prompts.
|
||||
|
||||
|
||||
* Changes in Specialized Modes and Packages in Emacs 24.2
|
||||
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2012-04-13 Masatake YAMATO <yamato@redhat.com>
|
||||
|
||||
* minibuffer.el (minibuffer-local-filename-syntax): New variable
|
||||
to allow `C-M-f' and `C-M-b' to move to the nearest path
|
||||
separator (bug#9511).
|
||||
|
||||
2012-04-13 Lars Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* avoid.el: Require cl when compiling. And also move the
|
||||
|
|
|
@ -2045,6 +2045,21 @@ and `read-file-name-function'."
|
|||
(funcall (or read-file-name-function #'read-file-name-default)
|
||||
prompt dir default-filename mustmatch initial predicate))
|
||||
|
||||
(defvar minibuffer-local-filename-syntax
|
||||
(let ((table (make-syntax-table))
|
||||
(punctuation (car (string-to-syntax "."))))
|
||||
;; Convert all punctuation entries to symbol.
|
||||
(map-char-table (lambda (c syntax)
|
||||
(when (eq (car syntax) punctuation)
|
||||
(modify-syntax-entry c "_" table)))
|
||||
table)
|
||||
(mapc
|
||||
(lambda (c)
|
||||
(modify-syntax-entry c "." table))
|
||||
'(?/ ?: ?\\))
|
||||
table)
|
||||
"Syntax table to be used in minibuffer for reading file name.")
|
||||
|
||||
;; minibuffer-completing-file-name is a variable used internally in minibuf.c
|
||||
;; to determine whether to use minibuffer-local-filename-completion-map or
|
||||
;; minibuffer-local-completion-map. It shouldn't be exported to Elisp.
|
||||
|
@ -2113,7 +2128,8 @@ See `read-file-name' for the meaning of the arguments."
|
|||
(lambda ()
|
||||
(with-current-buffer
|
||||
(window-buffer (minibuffer-selected-window))
|
||||
(read-file-name--defaults dir initial)))))
|
||||
(read-file-name--defaults dir initial))))
|
||||
(set-syntax-table minibuffer-local-filename-syntax))
|
||||
(completing-read prompt 'read-file-name-internal
|
||||
pred mustmatch insdef
|
||||
'file-name-history default-filename)))
|
||||
|
|
Loading…
Add table
Reference in a new issue