From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Riley Newsgroups: gmane.emacs.help Subject: Re: Tools for C Programming Date: Sun, 08 Mar 2009 15:06:38 +0100 Organization: A noiseless patient Spider Message-ID: References: <87r619y4qu.fsf@galatea.local> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1236523345 17728 80.91.229.12 (8 Mar 2009 14:42:25 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 8 Mar 2009 14:42:25 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sun Mar 08 15:43:43 2009 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1LgKEA-0000j5-NH for geh-help-gnu-emacs@m.gmane.org; Sun, 08 Mar 2009 15:43:43 +0100 Original-Received: from localhost ([127.0.0.1]:56284 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LgKCp-0006cZ-7I for geh-help-gnu-emacs@m.gmane.org; Sun, 08 Mar 2009 10:42:19 -0400 Original-Path: news.stanford.edu!newsfeed.stanford.edu!postnews.google.com!news4.google.com!feeder.news-service.com!news.motzarella.org!motzarella.org!rileyrgdev.motzarella.org!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 83 Original-X-Trace: news.eternal-september.org U2FsdGVkX19o+fF4I7Tuvz23kI5XuSAOdYBHOPmJQAptS4QvtnuE4SyyJOVPf5PWSUrxp+ulfHNqK3JD8Ds9pxqTCeachHzv5RqUzbhOK+QVdCXxS9quuNteWsXa+qbyXta1g/N31RYjvyb8h02m6Q== Original-X-Complaints-To: Please send complaints to abuse@motzarella.org with full headers Original-NNTP-Posting-Date: Sun, 8 Mar 2009 14:06:39 +0000 (UTC) X-Auth-Sender: U2FsdGVkX1+Xvhx9m9U+CLc2koH1ulPVm2jNrN5DBsw+N5bc1HUNXA== Cancel-Lock: sha1:tBkmVU8Je2tijAqhRhjEClEeJCo= User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.91 (gnu/linux) Original-Xref: news.stanford.edu gnu.emacs.help:167462 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:62761 Archived-At: Richard Riley writes: > pjb@informatimago.com (Pascal J. Bourguignon) writes: > >> "Chengqi(Lars) Song" 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