* Tools for C Programming
@ 2009-03-07 8:25 Chengqi(Lars) Song
2009-03-07 10:10 ` Eli Zaretskii
[not found] ` <mailman.2631.1236420655.31690.help-gnu-emacs@gnu.org>
0 siblings, 2 replies; 8+ messages in thread
From: Chengqi(Lars) Song @ 2009-03-07 8:25 UTC (permalink / raw)
To: help-gnu-emacs
hi,
I've been using emacs for a long time but I've just started to write C program in emacs. I need some functions but dunno how to configure. Maybe you can give me some suggestions.
1. The folder structure is like:
abc-+-
|--MakeFile
|--src-+-
|--main.c
after I use C-x C-f to open main.c, how to 'make' when the MakeFile is in the parent folder?
2. How to display function list?
3. How to auto-complete identifier names, struct memebers, and hints for function parameters?
4. How to jump to definition?
Thanks a lot!
lars
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
2009-03-07 8:25 Tools for C Programming Chengqi(Lars) Song
@ 2009-03-07 10:10 ` Eli Zaretskii
[not found] ` <mailman.2631.1236420655.31690.help-gnu-emacs@gnu.org>
1 sibling, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2009-03-07 10:10 UTC (permalink / raw)
To: help-gnu-emacs
> Date: Sat, 7 Mar 2009 16:25:32 +0800
> From: "Chengqi(Lars) Song" <songcq@gmail.com>
>
> 1. The folder structure is like:
> abc-+-
> |--MakeFile
> |--src-+-
> |--main.c
> after I use C-x C-f to open main.c, how to 'make' when the MakeFile is in the parent folder?
"M-x compile RET cd .. && make RET"
> 2. How to display function list?
"M-x list-tags RET RET"
"M-x tags-apropos RET regexp RET"
But you need to create the TAGS file first, see the node "Create Tags
Table" in the Emacs manual.
> 3. How to auto-complete identifier names, struct memebers, and hints for function parameters?
I generally use M-/. For the last feature, you will have to install
ECB, I think, which is not part of Emacs, and is quite heavy. I
generally manage without that feature, and use the one below instead.
> 4. How to jump to definition?
"M-." (after creating TAGS, as explained above).
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
[not found] <mailman.2621.1236414377.31690.help-gnu-emacs@gnu.org>
@ 2009-03-07 11:03 ` Pascal J. Bourguignon
2009-03-07 13:02 ` Dirk-Jan C. Binnema
2009-03-07 19:30 ` Richard Riley
0 siblings, 2 replies; 8+ messages in thread
From: Pascal J. Bourguignon @ 2009-03-07 11:03 UTC (permalink / raw)
To: help-gnu-emacs
"Chengqi(Lars) Song" <songcq@gmail.com> writes:
> hi,
>
> I've been using emacs for a long time but I've just started to write C program in emacs. I need some functions but dunno how to configure. Maybe you can give me some suggestions.
>
> 1. The folder structure is like:
> abc-+-
> |--MakeFile
> |--src-+-
> |--main.c
>
> after I use C-x C-f to open main.c, how to 'make' when the
> MakeFile is in the parent folder?
M-x compile RET C-a C-k make -C /home/chengqi/src/abc/Makefile all RET
next time you can just do:
M-x recompile RET
> 2. How to display function list?
>
>
> 3. How to auto-complete identifier names, struct memebers, and hints
> for function parameters?
>
>
> 4. How to jump to definition?
ECB is the most complete package to do that.
http://ecb.sourceforge.net/
Otherwise, there are also tools such as tags (use etags(1) to build a
TAGS index, and use M-. to jump to the definition(s) of a symbol,
M-TAB to complete a symbol, etc).
Put this in your Makefile:
tags etags:
find $(SRCDIR) \( \( -name \[#.]\?\* -prune \) \
-o -name \*.h -o -name \*.c \
-o -name \*.hh -o -name \*.hxx -o -name \*.cc -o -name \*.cxx \) \
-print \
| while read f ; do echo $$f ; etags -a -o $(SRCDIR)/TAGS $$f ; done
M-x compile RET C-e tags RET
and then type or move after the name of a function, and type M-.
--
__Pascal Bourguignon__
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
[not found] ` <mailman.2631.1236420655.31690.help-gnu-emacs@gnu.org>
@ 2009-03-07 11:05 ` Pascal J. Bourguignon
2009-03-08 13:27 ` Nikolaj Schumacher
0 siblings, 1 reply; 8+ messages in thread
From: Pascal J. Bourguignon @ 2009-03-07 11:05 UTC (permalink / raw)
To: help-gnu-emacs
Eli Zaretskii <eliz@gnu.org> writes:
>> Date: Sat, 7 Mar 2009 16:25:32 +0800
>> From: "Chengqi(Lars) Song" <songcq@gmail.com>
>>
>> 1. The folder structure is like:
>> abc-+-
>> |--MakeFile
>> |--src-+-
>> |--main.c
>> after I use C-x C-f to open main.c, how to 'make' when the MakeFile is in the parent folder?
>
> "M-x compile RET cd .. && make RET"
It's better to put an absolute pathname here, so you can really M-x
recompile RET from any place.
--
__Pascal Bourguignon__
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
2009-03-07 11:03 ` Pascal J. Bourguignon
@ 2009-03-07 13:02 ` Dirk-Jan C. Binnema
2009-03-07 19:30 ` Richard Riley
1 sibling, 0 replies; 8+ messages in thread
From: Dirk-Jan C. Binnema @ 2009-03-07 13:02 UTC (permalink / raw)
To: help-gnu-emacs
[-- Attachment #1: Type: text/plain, Size: 926 bytes --]
On Sat, Mar 07, 2009 at 12:03:21PM +0100, Pascal J. Bourguignon wrote:
> "Chengqi(Lars) Song" <songcq@gmail.co
> >
> > 4. How to jump to definition?
>
> ECB is the most complete package to do that.
> http://ecb.sourceforge.net/
>
> Otherwise, there are also tools such as tags (use etags(1) to build a
> TAGS index, and use M-. to jump to the definition(s) of a symbol,
> M-TAB to complete a symbol, etc).
>
>
<snip>
I'd like to mention 'global', which is a nice alternative to etags.
See:
http://emacs-fu.blogspot.com/2009/01/navigating-through-source-code-using.html
There are some instructions too.
Best wishes,
Dirk.
--
------------------------------------------------------
Dirk-Jan C. Binnema <djcb[at]djcbsoftware.nl>
http://www.djcbsoftware.nl/
PGP: D09C E664 897D 7D39 5047 A178 E96A C7A1 017D DA3C
------------------------------------------------------
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
2009-03-07 11:03 ` Pascal J. Bourguignon
2009-03-07 13:02 ` Dirk-Jan C. Binnema
@ 2009-03-07 19:30 ` Richard Riley
2009-03-08 14:06 ` Richard Riley
1 sibling, 1 reply; 8+ messages in thread
From: Richard Riley @ 2009-03-07 19:30 UTC (permalink / raw)
To: help-gnu-emacs
pjb@informatimago.com (Pascal J. Bourguignon) writes:
> "Chengqi(Lars) Song" <songcq@gmail.com> writes:
>
>> hi,
>>
>> I've been using emacs for a long time but I've just started to write C program in emacs. I need some functions but dunno how to configure. Maybe you can give me some suggestions.
>>
>> 1. The folder structure is like:
>> abc-+-
>> |--MakeFile
>> |--src-+-
>> |--main.c
>>
>> after I use C-x C-f to open main.c, how to 'make' when the
>> MakeFile is in the parent folder?
>
> M-x compile RET C-a C-k make -C /home/chengqi/src/abc/Makefile all RET
>
> next time you can just do:
>
> M-x recompile RET
>
>
>> 2. How to display function list?
>>
>>
>> 3. How to auto-complete identifier names, struct memebers, and hints
>> for function parameters?
>>
>>
>> 4. How to jump to definition?
>
> ECB is the most complete package to do that.
> http://ecb.sourceforge.net/
>
> Otherwise, there are also tools such as tags (use etags(1) to build a
> TAGS index, and use M-. to jump to the definition(s) of a symbol,
> M-TAB to complete a symbol, etc).
>
>
> Put this in your Makefile:
>
> tags etags:
> find $(SRCDIR) \( \( -name \[#.]\?\* -prune \) \
> -o -name \*.h -o -name \*.c \
> -o -name \*.hh -o -name \*.hxx -o -name \*.cc -o -name \*.cxx \) \
> -print \
> | while read f ; do echo $$f ; etags -a -o $(SRCDIR)/TAGS $$f ;
> done
I just have
ctags-exuberant -e --recurse=yes --links=yes --verbose=no
>
> M-x compile RET C-e tags RET
>
> and then type or move after the name of a function, and type M-.
I suggest cscope. It's much better than tags.
--
important and urgent problems of the technology of today are no longer the satisfactions of the primary needs or of archetypal wishes, but the reparation of the evils and damages by the technology of yesterday. ~Dennis Gabor, Innovations: Scientific, Technological and Social, 1970
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
2009-03-07 11:05 ` Pascal J. Bourguignon
@ 2009-03-08 13:27 ` Nikolaj Schumacher
0 siblings, 0 replies; 8+ messages in thread
From: Nikolaj Schumacher @ 2009-03-08 13:27 UTC (permalink / raw)
To: Pascal J. Bourguignon; +Cc: help-gnu-emacs
pjb@informatimago.com (Pascal J. Bourguignon) wrote:
>> "M-x compile RET cd .. && make RET"
>
> It's better to put an absolute pathname here, so you can really M-x
> recompile RET from any place.
Unless I'm very mistaken, M-x recompile will restore the path from where
M-x compile was called.
regards,
Nikolaj Schumacher
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tools for C Programming
2009-03-07 19:30 ` Richard Riley
@ 2009-03-08 14:06 ` Richard Riley
0 siblings, 0 replies; 8+ messages in thread
From: Richard Riley @ 2009-03-08 14:06 UTC (permalink / raw)
To: help-gnu-emacs
Richard Riley <rileyrgdev@gmail.com> writes:
> pjb@informatimago.com (Pascal J. Bourguignon) writes:
>
>> "Chengqi(Lars) Song" <songcq@gmail.com> writes:
>>
>>> hi,
>>>
>>> I've been using emacs for a long time but I've just started to write C program in emacs. I need some functions but dunno how to configure. Maybe you can give me some suggestions.
>>>
>>> 1. The folder structure is like:
>>> abc-+-
>>> |--MakeFile
>>> |--src-+-
>>> |--main.c
>>>
>>> after I use C-x C-f to open main.c, how to 'make' when the
>>> MakeFile is in the parent folder?
>>
>> M-x compile RET C-a C-k make -C /home/chengqi/src/abc/Makefile all RET
>>
>> next time you can just do:
>>
>> M-x recompile RET
>>
>>
>>> 2. How to display function list?
>>>
>>>
>>> 3. How to auto-complete identifier names, struct memebers, and hints
>>> for function parameters?
>>>
>>>
>>> 4. How to jump to definition?
>>
>> ECB is the most complete package to do that.
>> http://ecb.sourceforge.net/
>>
>> Otherwise, there are also tools such as tags (use etags(1) to build a
>> TAGS index, and use M-. to jump to the definition(s) of a symbol,
>> M-TAB to complete a symbol, etc).
>>
>>
>> Put this in your Makefile:
>>
>> tags etags:
>> find $(SRCDIR) \( \( -name \[#.]\?\* -prune \) \
>> -o -name \*.h -o -name \*.c \
>> -o -name \*.hh -o -name \*.hxx -o -name \*.cc -o -name \*.cxx \) \
>> -print \
>> | while read f ; do echo $$f ; etags -a -o $(SRCDIR)/TAGS $$f ;
>> done
>
> I just have
>
> ctags-exuberant -e --recurse=yes --links=yes --verbose=no
>
>
>>
>> M-x compile RET C-e tags RET
>>
>> and then type or move after the name of a function, and type M-.
>
> I suggest cscope. It's much better than tags.
I just noticed from Alex Ott's blog that there is a new version of
cedet.
I was pleasantly surprised to find it "just worked" with auto-complete
when you use
init-auto-complete.el
from the emacs wiki.
C programmers should give this a go.
r.
--
important and urgent problems of the technology of today are no longer the satisfactions of the primary needs or of archetypal wishes, but the reparation of the evils and damages by the technology of yesterday. ~Dennis Gabor, Innovations: Scientific, Technological and Social, 1970
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2009-03-08 14:06 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-07 8:25 Tools for C Programming Chengqi(Lars) Song
2009-03-07 10:10 ` Eli Zaretskii
[not found] ` <mailman.2631.1236420655.31690.help-gnu-emacs@gnu.org>
2009-03-07 11:05 ` Pascal J. Bourguignon
2009-03-08 13:27 ` Nikolaj Schumacher
[not found] <mailman.2621.1236414377.31690.help-gnu-emacs@gnu.org>
2009-03-07 11:03 ` Pascal J. Bourguignon
2009-03-07 13:02 ` Dirk-Jan C. Binnema
2009-03-07 19:30 ` Richard Riley
2009-03-08 14:06 ` Richard Riley
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 read-only IMAP folder(s) and NNTP newsgroup(s).