Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
minibuffer completion differences between emacs 22.3, 23.1, and xemacs
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  1 message - Collapse all  -  Translate all to Translated (View all originals)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Christopher Grubert  
View profile  
 More options Apr 30 2012, 3:32 am
Newsgroups: gnu.emacs.help
From: Christopher Grubert <cgruber...@comcast.net>
Date: Mon, 30 Apr 2012 03:32:56 -0400
Local: Mon, Apr 30 2012 3:32 am
Subject: minibuffer completion differences between emacs 22.3, 23.1, and xemacs
I'm in the process of converting from xemacs to gnu emacs and I have a
question about minibuffer completion of env variables.

I see that in 22.3 (and earlier) if I do the following:

C-x C-f /whatever/path/im/in/$HOM <TAB>

it says there is no match, but if I complete the var by hand and try again:

C-x C-f /whatever/path/im/in/$HOME <TAB>

it will substitute the value and continue on completing from the
location (/home/chris in this example).  It will also strip off the
originating path (/whatever/path/im/in/) and just leave the value of
$HOME as shown from file system root.

I see that in 23.1 (and later) the behavior has changed such that:

C-x C-f /whatever/path/im/in/$HOM <TAB>

will complete to "/whatever/path/im/in/$HOME [Sole completion]" and
stop.  If I then type a trailing "/" after the completed $HOME it will
continue completing from "/whatever/path/im/in//home/chris/..." after it
does the substitution, but this requires the extra step of typing /
after the var and it doesn't compress the path.  That's not such a big
deal in this example, but I tend to keep lots of long project paths in
env vars and the above behavior can lead to a really long minibuffer line.

What I would like to have is the behavior from xemacs, which does a
combination of the above:

C-x C-f /whatever/path/im/in/$HOM <TAB>

would first list any variable completions, then substitute the value,
compress the path, and keep completing, all just by pressing tab:
C-x C-f /whatever/path/im/in/$HOM <TAB>
/whatever/path/im/in/$HOME <TAB>
/home/chris/ <TAB>
...files...

I've searched around and found practically no mention of this behavior
anywhere, which seems surprising.  I only noticed the 22.3/23.1 behavior
change after compiling several versions to see if the current behavior
has always been there in gnu emacs.  I tried looking at the differences
in the completion code from 22.3 to 23.1 thinking maybe I could just
merge the features, but it looks like it was all rewritten for 23.  I do
see some internal functions which perform at least part of this
(expand-file-name), but I don't see any obvious configuration settings
for tweaking this, and oddly have not come across any lisp snippets to
mimic the xemacs behavior.

Any suggestions would be welcomed.  For reference, the behaviors
described can all be seen in a default setup (emacs -q or xemacs
--vanilla).  I'm currently using 24.0.96 so any suggestions which are
specific to version 24 would also be welcomed.
Thanks,
Chris.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »