zsh-users
 help / color / mirror / code / Atom feed
* Text Editor Filename Completion
@ 2005-03-11 12:55 Chris Johnson
  2005-03-11 13:10 ` Peter Stephenson
  0 siblings, 1 reply; 3+ messages in thread
From: Chris Johnson @ 2005-03-11 12:55 UTC (permalink / raw)
  To: zsh-users

In my haste I often end up opening a binary file or a file that doesn't
exist because the completer completes up to the beginning of the
extension (e.g., "vi mytex." when mytex.tex and mytex.pdf exist).

Does anyone have any completion commands set up for vi or emacs that
give preference to plain text files -- those containing source code --
rather than the shorter executable file name?  I've tried a few things
to have .c, .tex, .pl, and so on favored when vi is the executable, but
I'm not too satisfied with my work.

Thanks for any suggestions!

-- 
Chris Johnson
cjohnson@cs.utk.edu
http://www.cs.utk.edu/~cjohnson


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

* Re: Text Editor Filename Completion
  2005-03-11 12:55 Text Editor Filename Completion Chris Johnson
@ 2005-03-11 13:10 ` Peter Stephenson
  2005-03-11 16:50   ` Bart Schaefer
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Stephenson @ 2005-03-11 13:10 UTC (permalink / raw)
  To: zsh-users

Chris Johnson wrote:
> In my haste I often end up opening a binary file or a file that doesn't
> exist because the completer completes up to the beginning of the
> extension (e.g., "vi mytex." when mytex.tex and mytex.pdf exist).
> 
> Does anyone have any completion commands set up for vi or emacs that
> give preference to plain text files -- those containing source code --
> rather than the shorter executable file name?  I've tried a few things
> to have .c, .tex, .pl, and so on favored when vi is the executable, but
> I'm not too satisfied with my work.

Assuming you're using the new completion system, you can arrange the
file-patterns style appropriately.  For example,

zstyle ':completion:*:*:(emacs|vi):*' file-patterns \
    '*.(c|h|pl|tex|txt):globbed-files *(-/):directories' '*:all-files'

The best description of this is on page 398 of From Bash to Zsh, by
Oliver who may have a more comprehensive answer.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

**********************************************************************


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

* Re: Text Editor Filename Completion
  2005-03-11 13:10 ` Peter Stephenson
@ 2005-03-11 16:50   ` Bart Schaefer
  0 siblings, 0 replies; 3+ messages in thread
From: Bart Schaefer @ 2005-03-11 16:50 UTC (permalink / raw)
  To: zsh-users

On Mar 11,  1:10pm, Peter Stephenson wrote:
} Subject: Re: Text Editor Filename Completion
}
} > Does anyone have any completion commands set up for vi or emacs that
} > give preference to plain text files -- those containing source code --
} 
} zstyle ':completion:*:*:(emacs|vi):*' file-patterns \
}     '*.(c|h|pl|tex|txt):globbed-files *(-/):directories' '*:all-files'

How about this:

  textfiles() {
    reply=( ${${(@M)${(f)"$(file $REPLY 2>/dev/null)"}\:#*text*}%:*} )
  }
  zstyle ':completion:*:*:(emacs|vi|vim):*' file-patterns \
    '%p(e,textfiles,):globbed-files *(-/):directories' '*:all-files' 

(I found that I needed the "|vim" in there because vi is aliased to vim
on my system and the alias is expanded before the completion context is
established [unless you setopt completealiases]).


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

end of thread, other threads:[~2005-03-11 16:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-03-11 12:55 Text Editor Filename Completion Chris Johnson
2005-03-11 13:10 ` Peter Stephenson
2005-03-11 16:50   ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).