all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#19911: 24.4; shell-mode command completion - smarter handling of backup files
@ 2015-02-20 11:35 Ed Avis
  2015-02-20 11:43 ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: Ed Avis @ 2015-02-20 11:35 UTC (permalink / raw)
  To: 19911

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
______________________________________________________________________





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#19911: 24.4; shell-mode command completion - smarter handling of backup files
  2015-02-20 11:35 bug#19911: 24.4; shell-mode command completion - smarter handling of backup files Ed Avis
@ 2015-02-20 11:43 ` Eli Zaretskii
  2015-02-20 11:47   ` Ed Avis
  0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2015-02-20 11:43 UTC (permalink / raw)
  To: Ed Avis; +Cc: 19911

> From: Ed Avis <eda@waniasset.com>
> 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.

Does customizing shell-completion-fignore to include "~" do what you
want?





^ permalink raw reply	[flat|nested] 3+ messages in thread

* bug#19911: 24.4; shell-mode command completion - smarter handling of backup files
  2015-02-20 11:43 ` Eli Zaretskii
@ 2015-02-20 11:47   ` Ed Avis
  0 siblings, 0 replies; 3+ messages in thread
From: Ed Avis @ 2015-02-20 11:47 UTC (permalink / raw)
  To: 'Eli Zaretskii'; +Cc: 19911@debbugs.gnu.org

>Does customizing shell-completion-fignore to include "~" do what you
>want?

It appears not to; I now have

'(shell-completion-fignore (quote ("~"))

in my custom-set-variables, but the behaviour on typing ./script TAB TAB is still the same.

But really this bug is about the different treatment of filename completion and command completion.
Whatever the shell-completion-fignore setting, it should apply the same way to both.
It appears that filename completion has special handling for backup files, even if shell-completion-fignore
is at its default empty values.  The backup files are not completely ignored for tab-completion, but
they do not provoke a completions buffer either.  They just require you to hit TAB a second time.
That is a sensible compromise as a default behaviour - it just needs to be applied consistently to
command completion too.

-- 
Ed Avis <eda@waniasset.com>

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





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-02-20 11:47 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-20 11:35 bug#19911: 24.4; shell-mode command completion - smarter handling of backup files Ed Avis
2015-02-20 11:43 ` Eli Zaretskii
2015-02-20 11:47   ` Ed Avis

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.