Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'syntax': 0.03; 'messages.': 0.04; '(even': 0.05; 'arguments': 0.07; 'filenames': 0.07; 'parsing': 0.07; 'python': 0.09; 'grep': 0.09; 'highlighting': 0.09; 'invocation': 0.09; 'pause': 0.09; 'subject:still': 0.09; 'yeah,': 0.09; 'subject:python': 0.11; 'assume': 0.11; 'dec': 0.15; "-n'": 0.16; '6:52': 0.16; 'belongs': 0.16; 'bracket': 0.16; 'compiler,': 0.16; 'declaration,': 0.16; 'files).': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'highlight': 0.16; 'keyword,': 0.16; 'reminding': 0.16; 'roy': 0.16; 'sink': 0.16; 'wrote:': 0.17; 'instance,': 0.17; 'subject:need': 0.17; 'variable': 0.20; 'gcc': 0.22; 'lets': 0.22; 'names.': 0.22; 'parse': 0.22; 'planned': 0.22; 'errors': 0.23; 'matching': 0.23; "haven't": 0.23; 'external': 0.24; 'feature': 0.24; 'header:In-Reply-To:1': 0.25; 'fit': 0.26; 'am,': 0.27; 'important.': 0.27; 'in.': 0.27; 'message- id:@mail.gmail.com': 0.27; "doesn't": 0.28; 'there.': 0.28; 'lines': 0.28; 'chris': 0.28; 'editors': 0.29; 'invoke': 0.29; 'obscure': 0.29; 'smart': 0.29; 'yes.': 0.29; '(including': 0.30; 'keyword': 0.30; 'unlike': 0.30; 'function': 0.30; 'error': 0.30; 'helpful': 0.30; 'expect': 0.31; 'code': 0.31; 'file': 0.32; 'quickly': 0.32; 'messages,': 0.33; 'to:addr:python-list': 0.33; 'that,': 0.34; 'received:google.com': 0.34; 'awesome': 0.35; 'said,': 0.35; 'received:209.85.220': 0.35; 'too.': 0.35; 'subject:?': 0.35; 'similar': 0.35; 'received:209.85': 0.35; 'something': 0.35; 'next': 0.35; 'list.': 0.35; 'but': 0.36; 'compare': 0.36; "i'll": 0.36; 'correctly': 0.37; 'moment': 0.37; 'subject:New': 0.37; 'received:209': 0.37; 'subject:: ': 0.38; 'things': 0.38; 'to:addr:python.org': 0.39; 'header:Received:5': 0.40; 'most': 0.61; 'subject:, ': 0.61; 'save': 0.61; '30,': 0.62; 'is.': 0.62; 'different': 0.63; 'more': 0.63; 'show': 0.63; 'smith': 0.71; 'coupled': 0.84; 'omission': 0.84; 'pike': 0.84; 'subject:good': 0.84; 'touched': 0.84 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=IYn5VZFE04u8GhNPpcr63FKXACw6SYgDJV/WUggHqcM=; b=bkMubc2JPKCC4Ch6rY0MQr6ewyeyV9tQsD+qbDsGAvnIXdqtNZ49XKA8cSj/wJtSUX rzRgIIPnK8z+iqEuk6tIzZrHVl9AHD6bV/h8Q/xOV2H5q57WbicJyxvZ5b8mF8vhXvVZ /CBESrDFOjJiEnJJq5T6EaQ8nfSPT3Uy5NgHdZwZLwl/fzq83Cw6ZRuRZ/fLrYNz4L+f 3a6off28JYPiXEzQke6Wv987TWreSkiBywKksLEk+e9Q3SUgq/5KoMKPb4fPJw6we1t5 theyjS3oFGZ0sBe7P7eQWPsQu19sf9LFdGLSZolgc+/TR9TBnX07rUUbDiopzF54db3B DOeg== MIME-Version: 1.0 In-Reply-To: References: Date: Sun, 30 Dec 2012 08:21:44 +1100 Subject: Re: New to python, do I need an IDE or is vim still good enough? From: Chris Angelico To: python-list@python.org Content-Type: text/plain; charset=ISO-8859-1 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 48 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1356816523 news.xs4all.nl 6966 [2001:888:2000:d::a6]:43168 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:35782 On Sun, Dec 30, 2012 at 6:52 AM, Roy Smith wrote: > Chris Angelico wrote: > [regarding >> Bracket matching >> Language-sensitive auto-indentation >> and automatically indents > > Yeah, what he said, plus syntax coloring. And keyword highlighting. > And autocompletion of variable names. Syntax coloring I kinda touched on in different pieces; keyword highlighting isn't, imho, all that important. Apart from reminding you that the variable name you planned to use is an obscure keyword, it doesn't save all that much time. Auto-complete is handy, but not critical. > And parsing of error messages. > > I'll pause a moment to let that sink in. Grok the fullness of just how > awesome a feature it is. And how glaring an omission from my list. Yes. This one *definitely* belongs there. Though unlike most of the other examples, it's not as language-specific; you can cover a huge number of utilities by simply recognizing: filename:line: message Coupled with a helpful C compiler, this lets you jump around pretty easily. For instance, gcc will (if I recall correctly - haven't had to use this feature in a while, something to do with writing more code in Python and Pike than C, but anyway), if the arguments to a function mismatch, show error lines highlighting both the invocation *and* the declaration, so you can quickly compare (even if they're in different files). > emacs will parse that, highlight the filenames and line numbers and if I > type M-`, it'll take me to the line of the next error (including opening > the file if it's not already open). > > I assume other smart editors have similar capabilities. Yeah, SciTE has F4 and Shift-F4 to cycle forwards/backwards through messages, and I expect it's pretty much standard among editors that can invoke external tools. It's extremely handy; not only errors from compilation/execution, but things like a 'git grep -n' fit too. ChrisA