Subject: 24.4; shell-mode command completion - smarter handling of backup files

From: Ed Avis <[email-masked]>
Date: Fri, 20 Feb 2015 11:35:21 +0000

Create a file 'script' and make it executable.  Edit it in emacs
so that a backup file 'script~' is also created (and Emacs makes
the backup file executable too).

Now m-x shell and type

   ls script TAB TAB

The first TAB appears not to do anything, but the second TAB inserts a
space as a unique completion.  This is because tab-completion for
filenames gives lower importance to backup files ending ~, so that they
won't by themselves cause a completions buffer to pop up.  That is a
useful enhancement to the usability of tab-completion.

However, the same useful behaviour isn't applied for command completion,
in other words the first word of the shell command typed.  Enter

   ./script TAB TAB

and you get a 'Complete, but not unique' message and on the second TAB
a completions buffer showing script and script~.

It would be more useful to treat the backup file consistently with what
happens for ordinary filename completion, so that the first TAB would
appear to do nothing, while the second TAB inserts a space.

In GNU Emacs 24.4.1 (x86_64-redhat-linux-gnu, GTK+ Version 3.10.9)
 of 2014-11-03 on wcl-linux04.wcl.local
Configured using:
 `configure --build=x86_64-redhat-linux-gnu
 --host=x86_64-redhat-linux-gnu --program-prefix=
 --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr
 --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc
 --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64
 --libexecdir=/usr/libexec --localstatedir=/var
 --sharedstatedir=/var/lib --mandir=/usr/share/man
 --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png
 --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk3
 --with-gpm=no build_alias=x86_64-redhat-linux-gnu
 host_alias=x86_64-redhat-linux-gnu 'CFLAGS=-DMAIL_USE_LOCKF -O2 -g
 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
 -fstack-protector-strong --param=ssp-buffer-size=4
 -grecord-gcc-switches -m64 -mtune=generic' 'LDFLAGS=-Wl,-z,relro ''

Important settings:
  value of $LC_COLLATE: C
  value of $LC_CTYPE: en_GB.UTF-8
  value of $LC_MESSAGES: en_GB.UTF-8
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Shell

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-a 
C-@ C-e ESC w C-x b RET C-y DEL / ; RET TAB e x i t 
SPC 1 ; ESC x p e r l SPC m o SPC RET TAB RET C-x C-s 
ESC x s h e l l RET c DEL C-x b k w TAB - s TAB RET 
ESC > . DEL p DEL c h m o d SPC a + x SPC h a r TAB 
RET ~ / s v DEL DEL C-a C-k d e l t a RET ~ / i n s 
t TAB d e l TAB b DEL d e TAB - t e s t = h a r DEL 
DEL DEL . / h a r n e s s SPC - c p _ m i n i m a l 
= 1 SPC 0 RET C-x C-f h a r TAB RET C-p C-p C-f C-f 
C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f C-f 
C-f C-d m { C-e DEL DEL } ; C-x C-s C-x b RET ESC p 
RET . / h C-a C-k C-x b RET C-a C-n C-k d i e SPC " 
w r o n g SPC o p u t p DEL DEL DEL DEL o u t p DEL 
DEL DEL DEL u t p u t SPC $ r " ; C-x C-s C-x b RET 
ESC p RET C-x C-c C-c C-c C-c C-g C-c C-c . / h a r 
TAB 0 RET ESC p DEL SPC 0 RET . / h a TAB TAB TAB C-a 
C-k ESC x r e p o r t SPC e m SPC b SPC RET

Recent messages:
Saving file /home/eda/svn_working/repos/harness...
Wrote /home/eda/svn_working/repos/harness
Saving file /home/eda/svn_working/repos/harness...
Wrote /home/eda/svn_working/repos/harness
(No files need saving)
C-c C-c is undefined
C-c C-g is undefined
Quit
Making completion list...
Complete, but not unique

Load-path shadows:
None found.

Features:
(shadow sort emacsbug sendmail conf-mode python json css-mode smie
mail-extr log-view smerge-mode kmacro mule-util tabify imenu man
pcmpl-rpm sql view dired vc-git ffap thingatpt url-parse auth-source
eieio eieio-core gnus-util password-cache url-vars help-mode diff-mode
vc cus-edit wid-edit cus-start cus-load perl-mode misearch multi-isearch
vc-dispatcher vc-svn nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml
rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util
rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph
nxml-enc xmltok dabbrev pcmpl-unix xterm time-date log-edit easy-mmode
message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mailabbrev mail-utils gmm-utils mailheader pcvs-util add-log server
csharp-mode advice help-fns byte-opt bytecomp byte-compile cconv
cc-langs cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs zoom-frm frame-cmds frame-fns cl-macs
avoid cl gv cl-loaddefs cl-lib compile shell pcomplete comint ring
ansi-color tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel x-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment lisp-mode prog-mode register page menu-bar
rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax
facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak
czech european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button
faces cus-face macroexp files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

Memory information:
((conses 16 588436 37383)
 (symbols 48 29341 0)
 (miscs 40 405 2391)
 (strings 32 56756 5895)
 (string-bytes 1 2915522)
 (vectors 16 21282)
 (vector-slots 8 540657 44252)
 (floats 8 234 583)
 (intervals 56 70434 224)
 (buffers 960 59)
 (heap 1024 56831 1822))

______________________________________________________________________
This email has been scanned by the Symantec Email Security.cloud service.
For more information please visit http://www.symanteccloud.com
______________________________________________________________________