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: Sat, 07 Mar 2009 20:30:16 +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 1236454856 24707 80.91.229.12 (7 Mar 2009 19:40:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 7 Mar 2009 19:40:56 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Mar 07 20:42:12 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 1Lg2PL-00074Q-55 for geh-help-gnu-emacs@m.gmane.org; Sat, 07 Mar 2009 20:42:03 +0100 Original-Received: from localhost ([127.0.0.1]:42526 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Lg2Nz-0006wg-Cw for geh-help-gnu-emacs@m.gmane.org; Sat, 07 Mar 2009 14:40:39 -0500 Original-Path: news.stanford.edu!headwall.stanford.edu!news.glorb.com!news2.glorb.com!news.k-dsl.de!news.motzarella.org!motzarella.org!rileyrgdev.motzarella.org!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 67 Original-X-Trace: news.eternal-september.org U2FsdGVkX187TjKSVDzuAG2AEOCLVtytnmIZtebOd2sm5wqw03hek8kPbLl4v76La60IiieDonEPTuJueSusBz2ZDdKj0y8GFTgLoosxYZ0+jaBt62To67TeySCux1vDPLzoDhp7gOHtAn+SUG2UVQ== Original-X-Complaints-To: Please send complaints to abuse@motzarella.org with full headers Original-NNTP-Posting-Date: Sat, 7 Mar 2009 19:30:16 +0000 (UTC) X-Auth-Sender: U2FsdGVkX19nO6XZ+UstB2XrLNLlRzOkt8AHwSf4YObbwNd8baRumg== Cancel-Lock: sha1:/gOihVp6RXDGhHf4qi1XBaMTGNk= User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.91 (gnu/linux) Original-Xref: news.stanford.edu gnu.emacs.help:167448 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:62747 Archived-At: 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. -- 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