* Re: Working with different projects in Emacs
[not found] <mailman.4901.1239203083.31690.help-gnu-emacs@gnu.org>
@ 2009-04-08 18:56 ` Vagn Johansen
2009-04-09 13:44 ` rustom
2009-04-15 10:29 ` Stefan Kamphausen
1 sibling, 1 reply; 17+ messages in thread
From: Vagn Johansen @ 2009-04-08 18:56 UTC (permalink / raw
To: help-gnu-emacs
Damian <damian.only@gmail.com> writes:
> Hello,
>
> I work in several projects. Every project has a list of files
> associated to it (for instance several source code files or latex
> files). I would like that every time I start working in one of these
> projects, all the files could be found quickly without specifying the
> whole path.
>
> The filesets almost serve this purpose, but the problem is that they
> open all the files in the fileset, and I just want to be able to
> auto-complete its filename (when I open a file using C-x C-f).
>
> File cache is not an option, since I need several "caches" for each
> project and I don't want to load them all when emacs starts.
>
> And I'm unable to understand Icicles documentation (and Icicles is
> more powerful than the tool I'm looking for).
>
> Until now, I was able to find a solution for every problem (in the
> good sense) in emacs, but for this one I cannot find one.
>
> What can I do?
You could try my vps package
http://ozymandias.dk/emacs/emacs.html#vps
It caches both the filelists and the directory list. The latter is
needed for projects that use directory recursion to avoid excessive
directory traversals. The caches are rebuilt when they become to old.
Use M-i l (vps-list-dirs) to get a buffer with all the filenames in
the current project. You can then use search, C-s, ,, , RET RET to
search for and open a file.
For fast and convenient file selection of a file in the current
project you could use anything.el combined with the vps source show
below:
(defvar anything-source-vps-files
'((name . "Project Files")
(candidates . (lambda ()
(when vps-project-name
(if (not (file-exists-p (vps-filelist-filename)))
(error "Run M-x vps-write-filelist RET manually"))
(start-process "anything-source-vps-files" nil
"grep" "-i" (replace-regexp-in-string "^-"
"." anything-pattern)
(vps-filelist-filename)))))
(type . file)
(requires-pattern . 4))
"Source for retrieving files (cached) vps filelist.")
--
Vagn Johansen
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-08 18:56 ` Working with different projects in Emacs Vagn Johansen
@ 2009-04-09 13:44 ` rustom
2009-04-09 19:45 ` Vagn Johansen
0 siblings, 1 reply; 17+ messages in thread
From: rustom @ 2009-04-09 13:44 UTC (permalink / raw
To: help-gnu-emacs
On Apr 8, 11:56 pm, Vagn Johansen <gonz...@hotmail.com> wrote:
> Damian <damian.o...@gmail.com> writes:
> > Hello,
>
> > I work in several projects. Every project has a list of files
> > associated to it (for instance several source code files or latex
> > files). I would like that every time I start working in one of these
> > projects, all the files could be found quickly without specifying the
> > whole path.
>
> > The filesets almost serve this purpose, but the problem is that they
> > open all the files in the fileset, and I just want to be able to
> > auto-complete its filename (when I open a file using C-x C-f).
>
> > File cache is not an option, since I need several "caches" for each
> > project and I don't want to load them all when emacs starts.
>
> > And I'm unable to understand Icicles documentation (and Icicles is
> > more powerful than the tool I'm looking for).
>
> > Until now, I was able to find a solution for every problem (in the
> > good sense) in emacs, but for this one I cannot find one.
>
> > What can I do?
>
> You could try my vps package
>
> http://ozymandias.dk/emacs/emacs.html#vps
>
> It caches both the filelists and the directory list. The latter is
> needed for projects that use directory recursion to avoid excessive
> directory traversals. The caches are rebuilt when they become to old.
>
> Use M-i l (vps-list-dirs) to get a buffer with all the filenames in
> the current project. You can then use search, C-s, ,, , RET RET to
> search for and open a file.
>
> For fast and convenient file selection of a file in the current
> project you could use anything.el combined with the vps source show
> below:
>
> (defvar anything-source-vps-files
> '((name . "Project Files")
> (candidates . (lambda ()
> (when vps-project-name
> (if (not (file-exists-p (vps-filelist-filename)))
> (error "Run M-x vps-write-filelist RET manually"))
> (start-process "anything-source-vps-files" nil
> "grep" "-i" (replace-regexp-in-string "^-"
> "." anything-pattern)
> (vps-filelist-filename)))))
> (type . file)
> (requires-pattern . 4))
> "Source for retrieving files (cached) vps filelist.")
>
> --
> Vagn Johansen
Tried it. Well getting a basic list of directories is working. Nice!
tags is not working
vps-make-tags gives me
etags unknown option --members
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-09 13:44 ` rustom
@ 2009-04-09 19:45 ` Vagn Johansen
2009-04-11 15:30 ` rustom
0 siblings, 1 reply; 17+ messages in thread
From: Vagn Johansen @ 2009-04-09 19:45 UTC (permalink / raw
To: help-gnu-emacs
rustom <rustompmody@gmail.com> writes:
[...]
> Tried it. Well getting a basic list of directories is working. Nice!
> tags is not working
> vps-make-tags gives me
> etags unknown option --members
"--members" is a valid option for the etags program that comes with
Emacs.
http://www.delorie.com/gnu/docs/emacs/etags.1.html
You have probably installed Excuberant tags. It (usually) installs a
ctags and an etags binary. So you are likely to have 2 etags programs
in your path.
Try "etags --help" and "ctags --help" to see what you have got.
I suggest you supply your own version of the vps-make-tags function
where you call the etags/ctags with the options you want. Add the
function definition AFTER the (require 'vps)
If you have the Excuberant tags then the following should work
(defun vps-make-tags ()
(interactive)
(vps-write-filelist)
(message "%s: Making tags file" vps-project-name)
(shell-command (format "etags -L %s -f %s"
(shell-quote-argument (vps-filelist-filename))
(shell-quote-argument (vps-tags-filename)))))
--
Vagn Johansen
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-09 19:45 ` Vagn Johansen
@ 2009-04-11 15:30 ` rustom
2009-04-11 15:51 ` rustom
0 siblings, 1 reply; 17+ messages in thread
From: rustom @ 2009-04-11 15:30 UTC (permalink / raw
To: help-gnu-emacs
On Apr 10, 12:45 am, Vagn Johansen <gonz...@hotmail.com> wrote:
> rustom <rustompm...@gmail.com> writes:
>
> [...]
>
> > Tried it. Well getting a basic list of directories is working. Nice!
> > tags is not working
> > vps-make-tags gives me
> > etags unknown option --members
>
> "--members" is a valid option for the etags program that comes with
> Emacs.
>
> http://www.delorie.com/gnu/docs/emacs/etags.1.html
>
> You have probably installed Excuberant tags. It (usually) installs a
> ctags and an etags binary. So you are likely to have 2 etags programs
> in your path.
>
> Try "etags --help" and "ctags --help" to see what you have got.
>
> I suggest you supply your own version of the vps-make-tags function
> where you call the etags/ctags with the options you want. Add the
> function definition AFTER the (require 'vps)
>
> If you have the Excuberant tags then the following should work
>
> (defun vps-make-tags ()
> (interactive)
> (vps-write-filelist)
> (message "%s: Making tags file" vps-project-name)
> (shell-command (format "etags -L %s -f %s"
> (shell-quote-argument (vps-filelist-filename))
> (shell-quote-argument (vps-tags-filename)))))
>
> --
> Vagn Johansen
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-11 15:30 ` rustom
@ 2009-04-11 15:51 ` rustom
2009-04-11 18:30 ` Vagn Johansen
0 siblings, 1 reply; 17+ messages in thread
From: rustom @ 2009-04-11 15:51 UTC (permalink / raw
To: help-gnu-emacs
[Sorry for earlier post without content]
If I have the line
(setq vps-project-dir "~/.emacs.d/.emacs_vps")
in my vps setup
I get File /home/siva/.emacs.d/.emacs_vps/Org.tags is not a valid tags
table
when I try to do vps-change-project
It seems to work if vps-project-dir is not set
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-11 15:51 ` rustom
@ 2009-04-11 18:30 ` Vagn Johansen
2009-04-12 8:56 ` rustom
0 siblings, 1 reply; 17+ messages in thread
From: Vagn Johansen @ 2009-04-11 18:30 UTC (permalink / raw
To: help-gnu-emacs
rustom <rustompmody@gmail.com> writes:
> [Sorry for earlier post without content]
> If I have the line
> (setq vps-project-dir "~/.emacs.d/.emacs_vps")
You don't really have to change the vps-project-dir. It just the
location of the cached filelists, tags files, etc.
But it should be OK to change it.
> in my vps setup
> I get File /home/siva/.emacs.d/.emacs_vps/Org.tags is not a valid tags
> table
> when I try to do vps-change-project
>
> It seems to work if vps-project-dir is not set
Whenever I see "not a valid tags table" it is because I have generated
a TAGS file in a format that emacs does not understand.
So maybe you managed to build TAGS files with Exhuberant tags(*)
(without the -e option) when vps-project-dir had the first value,
changed vps-project-dir and then you did something that generates
proper emacs tags files.
If you the delete ~/.emacs.d/.emacs_vps and set vps-project-dir to
~/.emacs.d/.emacs_vps again it would probably work. But if it works
there is not much gained in changing anything.
(*) http://ctags.sourceforge.net/ctags.html
--
Vagn Johansen
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-11 18:30 ` Vagn Johansen
@ 2009-04-12 8:56 ` rustom
2009-04-12 16:26 ` Vagn Johansen
0 siblings, 1 reply; 17+ messages in thread
From: rustom @ 2009-04-12 8:56 UTC (permalink / raw
To: help-gnu-emacs
On Apr 11, 11:30 pm, Vagn Johansen <gonz...@hotmail.com> wrote:
> rustom <rustompm...@gmail.com> writes:
> > [Sorry for earlier post without content]
> > If I have the line
> > (setq vps-project-dir "~/.emacs.d/.emacs_vps")
>
> You don't really have to change the vps-project-dir. It just the
> location of the cached filelists, tags files, etc.
>
> But it should be OK to change it.
>
> > in my vps setup
> > I get File /home/siva/.emacs.d/.emacs_vps/Org.tags is not a valid tags
> > table
> > when I try to do vps-change-project
>
> > It seems to work if vps-project-dir is not set
>
> Whenever I see "not a valid tags table" it is because I have generated
> a TAGS file in a format that emacs does not understand.
>
> So maybe you managed to build TAGS files with Exhuberant tags(*)
> (without the -e option) when vps-project-dir had the first value,
> changed vps-project-dir and then you did something that generates
> proper emacs tags files.
>
> If you the delete ~/.emacs.d/.emacs_vps and set vps-project-dir to
> ~/.emacs.d/.emacs_vps again it would probably work. But if it works
> there is not much gained in changing anything.
>
> (*)http://ctags.sourceforge.net/ctags.html
>
> --
> Vagn Johansen
I did
rm -rf ~/.emacs.d/.emacs_vps
Made sure that my init.el contains
(setq vps-project-dir "~/.emacs.d/.emacs_vps")
(require 'vps)
Restarted emacs
M-x vps-change-project Org ;; org is one project Ive set
gives
~/.emacs.d/.emacs_vps/Org.tags is not a vaild tags table
[Looking inside ~/.emacs.d/.emacs_vps shows an Org.txt but no
Org.tags]
Now I comment out the line
(setq vps-project-dir "~/.emacs.d/.emacs_vps")
Close emacs
Remove directory
~/.emacs.d/.emacs_vps
Make sure theres no directory ~/.emacs_vps
Restart emacs
emacs asks me
Create necessary directory ~/.emacs_vps
I say yes
Then M-x vps-change-project
No problem
M-i l
shows me my files (in that project)
Note that now .emacs_vps shows both
Org.txt and Org.tags
My conclusion is that the tags making part of vps is having
~/.emacs_vps hardcoded though the rest (Project.txt) is picked up from
vps-project-dir
Now to verify that:
Keep both dirs, remove all their contents
Restart emacs
As expected vps-change-project gives
~/.emacs.d/.emacs/vps/Org.tags
not a valid tags table
Confirm that ~/.emacs.d/.emacs_vps contains an Org.txt file but no
Org.tags file
(And ~/.emacs_vps is empty)
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-12 8:56 ` rustom
@ 2009-04-12 16:26 ` Vagn Johansen
2009-04-14 15:00 ` rustom
0 siblings, 1 reply; 17+ messages in thread
From: Vagn Johansen @ 2009-04-12 16:26 UTC (permalink / raw
To: help-gnu-emacs
rustom <rustompmody@gmail.com> writes:
> My conclusion is that the tags making part of vps is having
> ~/.emacs_vps hardcoded though the rest (Project.txt) is picked up from
> vps-project-dir
Almost. vps-project-dir is hardcoded to the *expanded* version of
~/.emacs_vps. From vps.el:
(defvar vps-project-dir (expand-file-name "~/.emacs_vps"))
Note the call to expand-file-name which means that vps-project-dir end
up containing something like /Users/john/.emacs_vps.
When you set vps-project-dir to ~/.. then the etags program fails to
find the file (and thus fails to generate a tags file). The directory
needs to be expanded for etags to work.
I have updated vps.el to automatically expand the directory wherever
it is used.
Thanks for digging into the problem.
--
Vagn Johansen
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-12 16:26 ` Vagn Johansen
@ 2009-04-14 15:00 ` rustom
2009-04-14 17:23 ` Vagn Johansen
0 siblings, 1 reply; 17+ messages in thread
From: rustom @ 2009-04-14 15:00 UTC (permalink / raw
To: help-gnu-emacs
On Apr 12, 9:26 pm, Vagn Johansen <gonz...@hotmail.com> wrote:
> rustom <rustompm...@gmail.com> writes:
> > My conclusion is that the tags making part of vps is having
> > ~/.emacs_vps hardcoded though the rest (Project.txt) is picked up from
> > vps-project-dir
>
> Almost. vps-project-dir is hardcoded to the *expanded* version of
> ~/.emacs_vps. From vps.el:
>
> (defvar vps-project-dir (expand-file-name "~/.emacs_vps"))
>
> Note the call to expand-file-name which means that vps-project-dir end
> up containing something like /Users/john/.emacs_vps.
>
> When you set vps-project-dir to ~/.. then the etags program fails to
> find the file (and thus fails to generate a tags file). The directory
> needs to be expanded for etags to work.
>
> I have updated vps.el to automatically expand the directory wherever
> it is used.
>
> Thanks for digging into the problem.
>
> --
> Vagn Johansen
You need to quote the file name in
(format "%s --members --output=\"%s\" -" "etags" (vps-tags-
filename)))))
in function vps-make-tags
[I am on windows and every single path is 'spaced-out' c:Documents and
Settings/... gets chopped to C:/Documents]
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-14 15:00 ` rustom
@ 2009-04-14 17:23 ` Vagn Johansen
0 siblings, 0 replies; 17+ messages in thread
From: Vagn Johansen @ 2009-04-14 17:23 UTC (permalink / raw
To: help-gnu-emacs
rustom <rustompmody@gmail.com> writes:
> You need to quote the file name in
> (format "%s --members --output=\"%s\" -" "etags" (vps-tags-
> filename)))))
> in function vps-make-tags
>
> [I am on windows and every single path is 'spaced-out' c:Documents and
> Settings/... gets chopped to C:/Documents]
Yes. I need to call shell-quote-argument when constructing the command
line
...
(shell-command-on-region (point-min) (point-max)
(format "%s --members --output=%s -" "etags"
(shell-quote-argument (vps-tags-filename))))
I have uploaded a new version with better support for spaces file and
directory names.
I have not run into this before because on windows I always set the
HOME environment variable to something like c:/vj. Emacs then looks
after .emacs in HOME (~/.emacs -> c:/vj/.emacs). I don't want my home
directory and ~ in Emacs to be c:/Document And Settings...<stuff I
cannot remember>... .
--
Vagn Johansen
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
[not found] <mailman.4901.1239203083.31690.help-gnu-emacs@gnu.org>
2009-04-08 18:56 ` Working with different projects in Emacs Vagn Johansen
@ 2009-04-15 10:29 ` Stefan Kamphausen
1 sibling, 0 replies; 17+ messages in thread
From: Stefan Kamphausen @ 2009-04-15 10:29 UTC (permalink / raw
To: help-gnu-emacs
Hello,
Damian <damian.only@gmail.com> writes:
> Hello,
>
> I work in several projects. Every project has a list of files
> associated to it (for instance several source code files or latex
> files).
this is the scenario that I originally wrote mtorus([1]) for. Albeit
only the navigation once the files are open.
> I would like that every time I start working in one of these projects,
> all the files could be found quickly without specifying the whole
> path.
Sebastian Freundt([2]) did a complete re-write of mtorus([3]) which may
help with this. Since I still stick to my old version I can't tell for
sure, though. And please note, that the pages of Sebastian may be out
of date, I don't know how actively they are maintained today.
Cheers,
stefan
Footnotes:
[1] http://www.skamphausen.de/cgi-bin/ska/mtorus
[2] http://www.math.tu-berlin.de/~freundt/
[3] http://www.math.tu-berlin.de/~freundt/MtorusPage.html
--
Stefan Kamphausen --- http://www.skamphausen.de
a blessed +42 regexp of confusion (weapon in hand)
You hit. The format string crumbles and turns to dust.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
@ 2009-04-08 18:10 grischka
0 siblings, 0 replies; 17+ messages in thread
From: grischka @ 2009-04-08 18:10 UTC (permalink / raw
To: damian.only; +Cc: help-gnu-emacs
> I work in several projects. Every project has a list of files
> associated to it (for instance several source code files or latex
> files). I would like that every time I start working in one of these
> projects, all the files could be found quickly without specifying the
> whole path.
eproject does stuff like this:
http://tromey.com/elpa/eproject-0.2.tar
Basically eproject manages a list of projects, where a project
is a list of files and a list of commands and is associated
with a directory.
If you open a project you get a menu with the files and it will
load the last viewed one.
You also get a menu for tool commands that can be fired with
one mouse-click or a keystroke. (can be just "make" but as well
anything else, typically stuff that you would not want to
remember when you revisit a project after some months)
Swiching projects is easy and fast, two mouse clicks or three
keystrokes. You can do something in one project, then switch
to another, do something there, and then switch back as if
you'd never left.
eproject has a text menu where you can "quick search" an
item (e.g. file) by pressing the first letter(s). It
works on terminals too.
All lists can be edited on the fly in the text menu. The
data itself is stored per project in a file "eproject.cfg".
The project list is stored in "~/.emacs.d/eproject.lst".
eproject does not generate makefiles or anything like that.
--- grischka
^ permalink raw reply [flat|nested] 17+ messages in thread
* Working with different projects in Emacs
@ 2009-04-08 12:50 Damian
2009-04-08 15:59 ` Drew Adams
0 siblings, 1 reply; 17+ messages in thread
From: Damian @ 2009-04-08 12:50 UTC (permalink / raw
To: help-gnu-emacs
Hello,
I work in several projects. Every project has a list of files
associated to it (for instance several source code files or latex
files). I would like that every time I start working in one of these
projects, all the files could be found quickly without specifying the
whole path.
The filesets almost serve this purpose, but the problem is that they
open all the files in the fileset, and I just want to be able to
auto-complete its filename (when I open a file using C-x C-f).
File cache is not an option, since I need several "caches" for each
project and I don't want to load them all when emacs starts.
And I'm unable to understand Icicles documentation (and Icicles is
more powerful than the tool I'm looking for).
Until now, I was able to find a solution for every problem (in the
good sense) in emacs, but for this one I cannot find one.
What can I do?
Thanks,
Damian.
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Working with different projects in Emacs
2009-04-08 12:50 Damian
@ 2009-04-08 15:59 ` Drew Adams
2009-04-08 18:21 ` Damian
0 siblings, 1 reply; 17+ messages in thread
From: Drew Adams @ 2009-04-08 15:59 UTC (permalink / raw
To: 'Damian', help-gnu-emacs
> I work in several projects. Every project has a list of files
> associated to it (for instance several source code files or latex
> files). I would like that every time I start working in one of these
> projects, all the files could be found quickly without specifying the
> whole path.
>
> The filesets almost serve this purpose, but the problem is that they
> open all the files in the fileset, and I just want to be able to
> auto-complete its filename (when I open a file using C-x C-f).
>
> File cache is not an option, since I need several "caches" for each
> project and I don't want to load them all when emacs starts.
>
> And I'm unable to understand Icicles documentation (and Icicles is
> more powerful than the tool I'm looking for).
>
> Until now, I was able to find a solution for every problem (in the
> good sense) in emacs, but for this one I cannot find one.
> What can I do?
If all of the files for a given project are in or under the same directory, then
moving (e.g. `cd') to that directory should let you complete file names there.
IOW, `M-x cd', which sets `default-directory', which is the directory, by
default, for file-name completion.
And you can easily write a command that takes you directly to your project
directory, so you don't have to enter it each time.
If the files of a project are in multiple directories, then you can use Dired,
passing it the file list explicitly. Then mark specific files in that Dired
buffer and then act on the marked files.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-08 15:59 ` Drew Adams
@ 2009-04-08 18:21 ` Damian
2009-04-08 18:44 ` Drew Adams
0 siblings, 1 reply; 17+ messages in thread
From: Damian @ 2009-04-08 18:21 UTC (permalink / raw
To: Drew Adams; +Cc: help-gnu-emacs
Hello Drew,
> If all of the files for a given project are in or under the same directory, then
> moving (e.g. `cd') to that directory should let you complete file names there.
> IOW, `M-x cd', which sets `default-directory', which is the directory, by
> default, for file-name completion.
>
> And you can easily write a command that takes you directly to your project
> directory, so you don't have to enter it each time.
The problem I have with this solution, is that if I open a file in
some other directory, the working directory is changed again :(
> If the files of a project are in multiple directories, then you can use Dired,
> passing it the file list explicitly. Then mark specific files in that Dired
> buffer and then act on the marked files.
And here it seems like one has to perform a lot of steps just to get
the autocompletion of the files for a project. But probably I'm not
getting it right
Thanks for your answer,
Damian.
^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: Working with different projects in Emacs
2009-04-08 18:21 ` Damian
@ 2009-04-08 18:44 ` Drew Adams
2009-04-08 19:13 ` Damian
0 siblings, 1 reply; 17+ messages in thread
From: Drew Adams @ 2009-04-08 18:44 UTC (permalink / raw
To: 'Damian'; +Cc: help-gnu-emacs
> > If all of the files for a given project are in or under the
> > same directory, then moving (e.g. `cd') to that directory
> > should let you complete file names there.
> > IOW, `M-x cd', which sets `default-directory', which is the
> > directory, by default, for file-name completion.
> >
> > And you can easily write a command that takes you directly
> > to your project directory, so you don't have to enter it each time.
>
> The problem I have with this solution, is that if I open a file in
> some other directory, the working directory is changed again :(
Only for the buffer of that file. The `default-directory' for the other buffers
(including, e.g. a Dired buffer) would stay the same.
I don't quite see the problem - perhaps you could describe a usage scenario in a
little more detail.
> > If the files of a project are in multiple directories, then
> > you can use Dired, passing it the file list explicitly.
> > Then mark specific files in that Dired buffer and then act
> > on the marked files.
>
> And here it seems like one has to perform a lot of steps just to get
> the autocompletion of the files for a project. But probably I'm not
> getting it right
A Dired buffer can have files from multiple directories, and those file names
can be absolute. Example:
M-: (dired '("my project" "/path/to/file1.c" "/other/path/to/file2.c"))
You can then access those files directly in Dired, and you can mark them and
operate on the marked files.
You can also include subdirectories in a Dired listing (using `i').
But yes, the `default-directory' for the Dired buffer won't be appropriate for
completing all of the file names, if the files are from different directories.
No single `default-directory' is adequate to that task. ;-)
But once you're visiting file A, you can complete to other files in the same
directory as A - visiting A changes `default-directory' appropriately.
If you are already aware of these things, and they don't provide what you need,
then try describing the need in a little more detail.
^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: Working with different projects in Emacs
2009-04-08 18:44 ` Drew Adams
@ 2009-04-08 19:13 ` Damian
0 siblings, 0 replies; 17+ messages in thread
From: Damian @ 2009-04-08 19:13 UTC (permalink / raw
Cc: help-gnu-emacs
> I don't quite see the problem - perhaps you could describe a usage scenario in a
> little more detail.
Yes, no problem. Suppose I'm working in three projects, namely, P0,
P1, P2. The files of each project are in directories /home/p0,
/home/p1, and /home/p2 respectivelly. Finally, within every project
directory you can have subdirectories that contain other files
belonging to the project.
In addition, there are a set of frequently used files. For instance, a
list of beers I have to try, the list of persons I should avoid in the
hall, my todo.org, and the emacs cheat sheet.
At the beginning of each day I would like to start up emacs in the
console, and open my agenda that is contained located in
/home/damian/docs/planning/todo.org
I would like to just type C-x C-f and then a few letters and fire up
autocompletion to get the full path. Since "files I frequently use"
doesn't mean files "I always use", it may be the case that I don't
open my agenda but the list of beers.
Then, after I decided work in project Pi, I would like to open some of
the files in that project, but not all the files, since there are *a
lot* of files in each project and I only work with 5 or 6 in a given
day. So, I would like to issue the open file command (C-x C-f), and
get automatic completion for all the files *reachable* from /home/pi,
which implies that the files may be in nested subdirectories.
My hope is to be able to do that just by filling up the filesets, and
then specifying from which filesets the completions must be made (plus
a shortcut to autocompletion).
Best regards,
Damian.
^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2009-04-15 10:29 UTC | newest]
Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <mailman.4901.1239203083.31690.help-gnu-emacs@gnu.org>
2009-04-08 18:56 ` Working with different projects in Emacs Vagn Johansen
2009-04-09 13:44 ` rustom
2009-04-09 19:45 ` Vagn Johansen
2009-04-11 15:30 ` rustom
2009-04-11 15:51 ` rustom
2009-04-11 18:30 ` Vagn Johansen
2009-04-12 8:56 ` rustom
2009-04-12 16:26 ` Vagn Johansen
2009-04-14 15:00 ` rustom
2009-04-14 17:23 ` Vagn Johansen
2009-04-15 10:29 ` Stefan Kamphausen
2009-04-08 18:10 grischka
-- strict thread matches above, loose matches on Subject: below --
2009-04-08 12:50 Damian
2009-04-08 15:59 ` Drew Adams
2009-04-08 18:21 ` Damian
2009-04-08 18:44 ` Drew Adams
2009-04-08 19:13 ` Damian
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.