for the built-in functions and some common external commands, and you
can define your own for any command.
-Eshell completion also works for lisp forms and glob patterns. If the
-point is on a lisp form, then @key{TAB} will behave similarly to completion
-in @code{elisp-mode} and @code{lisp-interaction-mode}. For glob
-patterns, If there are few enough possible completions of the patterns,
-they will be cycled when @key{TAB} is pressed, otherwise it will be removed
-from the input line and the possible completions will be listed.
-
-If you want to see the entire list of possible completions when it's
-below the cycling threshold, press @kbd{M-?}.
+Eshell completion also works for lisp forms and glob patterns. If the point is
+on a lisp form, then @key{TAB} will behave similarly to completion in
+@code{elisp-mode} and @code{lisp-interaction-mode}. For glob patterns, the
+pattern will be removed from the input line, and replaced by the
+completion.
+
+If you want to see the entire list of possible completions (e.g. when it's
+below the @code{completion-cycle-threshold}), press @kbd{M-?}.
@subsection pcomplete
Pcomplete, short for programmable completion, is the completion
(function
(lambda ()
(set (make-local-variable 'comint-file-name-quote-list)
- eshell-special-chars-outside-quoting))) nil t)
- (add-hook 'pcomplete-quote-arg-hook 'eshell-quote-backslash nil t)
- (define-key eshell-mode-map [(meta tab)] 'eshell-complete-lisp-symbol)
+ eshell-special-chars-outside-quoting)))
+ nil t)
+ (add-hook 'pcomplete-quote-arg-hook #'eshell-quote-backslash nil t)
+ ;;(define-key eshell-mode-map [(meta tab)] 'eshell-complete-lisp-symbol) ; Redundant
(define-key eshell-mode-map [(meta control ?i)] 'eshell-complete-lisp-symbol)
(define-key eshell-command-map [(meta ?h)] 'eshell-completion-help)
(define-key eshell-command-map [tab] 'pcomplete-expand-and-complete)
'pcomplete-expand-and-complete)
(define-key eshell-command-map [space] 'pcomplete-expand)
(define-key eshell-command-map [? ] 'pcomplete-expand)
- (define-key eshell-mode-map [tab] 'eshell-pcomplete)
- (define-key eshell-mode-map [(control ?i)] 'eshell-pcomplete)
+ ;;(define-key eshell-mode-map [tab] 'completion-at-point) ;Redundant!
+ (define-key eshell-mode-map [(control ?i)] 'completion-at-point)
(add-hook 'completion-at-point-functions
#'pcomplete-completions-at-point nil t)
;; jww (1999-10-19): Will this work on anything but X?
- (if (featurep 'xemacs)
- (define-key eshell-mode-map [iso-left-tab] 'pcomplete-reverse)
- (define-key eshell-mode-map [backtab] 'pcomplete-reverse))
- (define-key eshell-mode-map [(meta ??)] 'pcomplete-list))
+ (define-key eshell-mode-map
+ (if (featurep 'xemacs) [iso-left-tab] [backtab]) 'pcomplete-reverse)
+ (define-key eshell-mode-map [(meta ??)] 'completion-help-at-point))
(defun eshell-completion-command-name ()
"Return the command name, possibly sans globbing."
(if glob-name
completions
(setq completions
- (append (and (eshell-using-module 'eshell-alias)
- (funcall (symbol-function 'eshell-alias-completions)
- filename))
+ (append (if (fboundp 'eshell-alias-completions)
+ (eshell-alias-completions filename))
(eshell-winnow-list
(mapcar
(function
(lambda (name)
(substring name 7)))
(all-completions (concat "eshell/" filename)
- obarray 'functionp))
+ obarray #'functionp))
nil '(eshell-find-alias-function))
completions))
(append (and (or eshell-show-lisp-completions
(and eshell-show-lisp-alternatives
(null completions)))
- (all-completions filename obarray 'functionp))
+ (all-completions filename obarray #'functionp))
completions)))))))
-(defun eshell-pcomplete (&optional interactively)
- "Eshell wrapper for `pcomplete'."
- (interactive "p")
- ;; Pretend to be pcomplete so that cycling works (bug#13293).
- (setq this-command 'pcomplete)
- (condition-case nil
- (if interactively
- (call-interactively 'pcomplete)
- (pcomplete))
- (text-read-only (completion-at-point)))) ; Workaround for bug#12838.
+(define-obsolete-function-alias 'eshell-pcomplete #'completion-at-point "27.1")
(provide 'em-cmpl)