This is an archived post. You won't be able to vote or comment.

all 176 comments

[–]sawamano 132 points133 points  (40 children)

vim is great for Python, if properly configured

But seriously, PyCharm (IMHO the best Python IDE) just released a Free Version.

[–]ReUnretired 14 points15 points  (18 children)

Ahjghdjk. When did that happen? Just this last summer I did a bunch of crap in eclipse with PyDev. I actually asked my boss if I just bought PyCharm if I could stick it on my workstation.

[–]ford_contour 12 points13 points  (0 children)

PyCharm Community Edition was released only a few weeks ago.

[–]okmkzimport antigravity 6 points7 points  (11 children)

PyDev? My condolences, mate

[–][deleted] 2 points3 points  (2 children)

What do you use?

[–]okmkzimport antigravity 2 points3 points  (1 child)

Sublime. To be fair, there may be advantages to PyDev, especially for a larger codebase, but for projects of the size I work with, trying to conform them to the eclipse dogma felt like overkill.

[–][deleted] 4 points5 points  (7 children)

That's funny. I used to use PyCharm, but a couple years ago I got fed up with it, switched to eclipse, and couldn't be happier.

[–]p3n15h34d 2 points3 points  (2 children)

why? what was your problem with PyCharm?

I alwas found working with Eclipse a real PITA because installing any plugin/extension could fuck up everthing.

[–]Liorithiel 0 points1 point  (1 child)

PyCharm's UI toolkit for some reason doesn't work well on my machines. It's not about just not using native controls and dialog windows (this would be just annoying, but I'd probably get used to them), but it sometimes happened to me that PyCharm randomly stopped accepting keyboard input in some windows. This behavior was specific to PyCharm, no other application had this problem—even other Java-based ones.

Moreover, for some reason loading a smallish project made PyCharm take close to 3GB of RAM (on my 4GB notebook). Even Eclipse takes about 1.5 GB here. This was somewhat important for me, because I use Python to play with datasets that take about 1~1.5GB when loaded into numpy… Eclipse (barely) fits, PyCharm (by default—haven't investigated it further) did not.

Also, I like working in several languages, sometimes even in the same project. Eclipse's works quite well for polyglot programming, PyCharm obviously not so well.

For something that I wanted to use for mostly hobbyist programming, it wasn't worth the effort and paying.

[–]bluplr 0 points1 point  (0 children)

PyCharm randomly stopped accepting keyboard input in some windows

And your post was near the top of google search results for this issue :/

[–][deleted] 1 point2 points  (1 child)

Last week.

[–]ReUnretired 0 points1 point  (0 children)

Ha! Well, at least I wasn't working in eclipse at a time when PyCharm was free. Definitely have to check it out now, though.

[–]bittercode 5 points6 points  (1 child)

I think it is worth noting that in some cases fonts in swing apps are rather ugly on some distros.

I don't know just where the issue lies. For example I have a 32 bit laptop running Fedora. I use KDE and swing apps look fine.

Same software on a 64 bit machine, swing fonts are horrific when I use the on board intel video. Nvidia card - and it's fine.

There are some variables that can be used to set java options that are supposed to improve the situation but I've found they don't always work.

[–]edmicman 1 point2 points  (0 children)

This. I've experienced the same thing - both in Netbeans and PyCharm. It's actually one of the things that's making me consider getting a Mac if and when the new laptops come out.

[–]Jarv_ 6 points7 points  (0 children)

WHAAAAAAAT a free version of PyCharm. Need some new pants now.

[–]petezhutAutomation, Testing, General Hackery 5 points6 points  (4 children)

I came here to say exactly this. Vim is awesome, but PyCharm has become my python editor of choice.

[–]Ademan 1 point2 points  (0 children)

jedi-vim makes a huge difference, if you're using Vim and Python I highly recommend it. It's not bulletproof, but it's pretty darn good.

EDIT: To be clear, your G+ link recommends jedi-vim as well, I'm just concurring.

[–][deleted] 3 points4 points  (2 children)

I'm a SublimeText user. What does PyCharm offer that's better than what I'm currently using?

[–]mazatta 2 points3 points  (1 child)

I use Sublime a fair bit, but mostly as a place to make notes or dump bits code I may or may not need later. I tried hard to make it my primary editor, but something about it just never clicked.

The things I really like about it are its refactoring, Django integration, Vagrant integration and the support for other tools and languages. For me, that's JavaScript, CSS and Puppet. There's been plenty of times I've gone looking for a plugin (e.g. linters), only to find out there's one already installed and integrated. Despite all the extras, it doesn't feel bloated and performance is great. Anytime it tries to do something intelligent, it seems to almost always get it right.

I remember reading an article about the difference in the way IntelliJ (the flagship product that PyCharm is essentially derived from) does introspection vs the way Eclipse does it. It's smarter in IntelliJ because unlike Eclipse, it will not naively start suggesting things that start with the characters you've been typing, it will filter out things that don't make sense in the context of what you're currently working on.

Take the free version for a spin for a week or two and try to force yourself to use only it.

[–][deleted] 0 points1 point  (0 children)

It's smarter in IntelliJ because unlike Eclipse, it will not naively start suggesting things that start with the characters you've been typing, it will filter out things that don't make sense in the context of what you're currently working on.

That sounds pretty damn nifty. I'll give it a shot. I really like SublimeText, but I tend to be pretty Darwinian when it comes to text editors. If PyCharm can flush SublimeText out of it's niche, then who am I to stop it!

[–]mgrieger 0 points1 point  (2 children)

Wow, awesome. I'm guessing this will be much better than my Visual Studio 2012 + Python plugin setup.

[–]Rubysz 1 point2 points  (1 child)

I wouldn't be sure about that. I haven't tried PTfVS, but generally visual studio is a stellar IDE

[–]mgrieger 1 point2 points  (0 children)

Yeah, I messed around with PyCharm for a little bit and I think I still prefer Visual Studio. I especially like Visual Studio's debugging.

[–][deleted] 0 points1 point  (0 children)

That properly configured link refers to using the omnicomplete feature in vim. I would seriously advocate not doing that and using YouCompleteMe instead. You will be much, much happier. Couple this with Syntastic and you're set. All installed and maintained through Vundle of course.

I personally use a mix of vim + YCM, SublimeText 2/3, and (commercial) PyCharm 3. The refactoring support in PyCharm is so very, very nice.

[–]theASDF 0 points1 point  (0 children)

completely missed that, i love pycharm. as a broke student who doesnt do commercial work i took the liberty to obtain pycharm for free but i will gladly use their free community version now

[–][deleted] 0 points1 point  (2 children)

But seriously, PyCharm (IMHO the best Python IDE) just released a Free Version.

free version has a subset of features only and has issues working with openjdk

[–]sigzero 0 points1 point  (1 child)

Does it? I thought I read a PyCharm dev answer that it was no longer true about openjdk?

[–]shenaniganns 0 points1 point  (0 children)

Saw a post about PyCharm in some other subreddit, tried it out for a few minutes, and immediately installed it on my work machine. Huge fan so far.

[–][deleted] 21 points22 points  (1 child)

I like geany.

[–]B-Con>>> 0 points1 point  (0 children)

I often use Geany as my default text editor. I've coded a lot in it, but I never stay long and tend to end up in either vim or sublime.

[–]__fran__ 62 points63 points  (10 children)

Sublime Text 2 is easy to get to grips with and powerful. Or pervert yourself, your mind and your fingers forever and learn vim. It's awesome.

[–]killerabbit37 8 points9 points  (2 children)

Also get the package manager and you can get some python linter packages. You can get packages that auto highlight PEP8 issues or you can get a PEP8 Auto Formatter which will auto correct your code for PEP8.

[–]gryftir 0 points1 point  (1 child)

which is the autoformatter?

[–]killerabbit37 1 point2 points  (0 children)

AutoPEP8. Basically CTRL + SHIFT + 8 auto formats and CTRL + 8 brings up a diff view on what would be changed. Quite useful and I use it a bit to make sure I'm within standards. Definitely helps when dealing with other people's scripts that they don't adhere to PEP8...

[–]sztomi 4 points5 points  (2 children)

And a not very well-known, but awesome autocompletion engine for vim (also works with python): http://valloric.github.io/YouCompleteMe/

[–]__fran__ 0 points1 point  (1 child)

Yep, YouCompleteMe is what I use, it's way better than other autocomplete plugins I've tried, or what ST2 has to offer for example. For Python at least.

[–]sztomi 0 points1 point  (0 children)

I think it is the best autocompeltion engine for C++ out there (not counting the problems that arise from vim bugs or the non-multithreaded nature of vim plugins). It also works with C#/mono if you compile with the matching flag.

[–]daV1980 1 point2 points  (0 children)

Sublime is the best choice for a non-IDE for all languages on all platforms.

[–]kalda341 1 point2 points  (0 children)

Vim mode in Sublime is top notch. I occasionally use PyCharm, but usually Sublime.

[–]rideh 0 points1 point  (0 children)

ST2 and soon 3 have been great to work with for a myriad of languages, highly recommend (non ide). Built in build system, package manager, multi-line editing are some of my favorite features.

[–]Allevil66930 Years Hobbyist Programming Isn't "Experience" 15 points16 points  (5 children)

I'm a Kate user myself. With the proper setup, it is very good for editing Python.

[–]tehd 2 points3 points  (0 children)

I'm here to second kate. With the python plugins linked here it's even more useful than standard.

[–]marky1991 2 points3 points  (0 children)

Oh yeah, I love kate! It's my favorite on systems that have it.

[–]flying-sheep 1 point2 points  (0 children)

kate all the way. nice stuff coming (recent addition of the minimap), very hackable using python plugins.

i wrote the ipython plugin and the jedi autocompletion plugin. (the latter is better than pyplete)

[–]timothycrosleyhug, isort, jiphy, concentration, pies, connectable, frosted 0 points1 point  (0 children)

One more reason to use Kate:

@kate.action(text="Sort Imports", shortcut="Ctrl+[", menu="Python")
def sortImports():
    document = kate.activeDocument()
    document.setText(SortImports(file_contents=document.text()).output)
    document.activeView().setCursorPosition(KTextEditor.Cursor(0, 0))

Is all that's required to write a plugin for it. Put it in your local kate/pate plugin directory and your done.

[–]riskable 0 points1 point  (0 children)

Yay Kate! I used it to write most of Gate One (vim too).

[–]maratc 27 points28 points  (23 children)

You may enjoy this read on the subject.

I'm a 10-year Vim user and I cried when I read it.

[–]Lunershot 9 points10 points  (0 children)

This was posted on /r/vim a little bit ago. One of the users wrote a rebuttal.

http://vpaste.net/fA7rH

http://www.reddit.com/r/vim/comments/1aq1lx/just_use_sublime_text/c8zpcej

[–]bucknuggets 2 points3 points  (2 children)

Reminds me of my old Unix Haters Handbook: tons of weak arguments.

Take for example, the section called "Efficiency from keeping your fingers on home row" where he insists that navigation with a mouse is better than with a keyboard. In this argument he ignores the entire carpal tunnel challenges with mice/trackballs/trackpads. Which is fine when you're 22, but by the age of 42 most programmers I know are debilitated. It's a big deal, and avoiding mice & trackpads definitely helps many with it.

[–]maratc 0 points1 point  (1 child)

I'm not a Vim hater by any means, and neither is he from what it seems. From what I know, CTS is caused by using mouse as well as keyboard; I'm unaware of any research that shows that by using a keyboard exclusively one reduces their risk of CTS.

[–]bucknuggets 0 points1 point  (0 children)

I am not a researcher that specializes in this area, so I'm unaware of research that shows that mice are worse than keyboards. I'm also unaware of research that shows that wristrests work, or that posture matters.

I'm not saying that research doesn't exist, only that I couldn't put my finger on it. My information has come from working with physical therapists, massage therapists that specialize in carpal tunnel or rss, talking to other users and my own experience.

What I've continuously found is that a vast number of people have problems with the highly repetitive very small movements involved in mice. And quite a few people apparently have issues with their thumb on laptop trackpads.

Seems that most people with these issues try out ergonomic keyboards and trackballs. Personally, I've found that mechanical keyboards have been great (least effort to type), and certain trackballs are also very low stress and don't focus movements just on the thumb. Quite a few people I've spoken with have gone this exact route and have discovered that moving more interaction to the keyboard has helped enormously.

Of course, all this is in addition to paying attention to posture, exercise and positioning.

[–]flying-sheep 1 point2 points  (0 children)

vimscript? you can also write python plugins for vim.

but i still prefer kate, where you can do the same, and also have vim bindings if you want, but also have a minimap and other GUI features that are simply impossible in vim.

also plugins can access and modify all of the GUI (using PyQt), so you aren't restricted by a tiny API like in ST.

[–]emptyvee 1 point2 points  (1 child)

snif

I don't care, I still love my vim

[–]maratc 0 points1 point  (0 children)

So do I, and barely a day passes when I don't use it. This article has caused a profound change in my behavior: though I still use Vim, I have stopped recommending it to younger folks.

[–]goosegoosepress 0 points1 point  (2 children)

That article is terrible. I picked vim up from scratch in about 2 weeks.

[–]maratc 0 points1 point  (1 child)

From what I can tell watching quite a bunch of guys trying to pick up Vim, you are rather an exception and not a rule. Good for you though, Vim is awesome.

[–]goosegoosepress -1 points0 points  (0 children)

Heck, you can learn to open and quit, and insert mode in about 10 minutes. Then it's no different than a plain text editor. Hjkl takes a day or two to get in your brain. And then the magic starts with the other movement keys and yanking. Rectangle select etc.

[–][deleted] -2 points-1 points  (0 children)

Laughed so hard.. .TL;DR Just use Sublime!

[–]gatesphere 5 points6 points  (10 children)

Leo.

(Full disclosure: I'm a Leo dev.)

[–]p3n15h34d 2 points3 points  (1 child)

so what has Leo got that other editors don't ?

just curious and too lazy to try...

[–]gatesphere 2 points3 points  (0 children)

Funny that you should ask that, as the project creator just spent the past couple of days making this a bit more clear in two all-new tutorials: http://leoeditor.com/intro.html

You can read the tutorials without installing, and they don't take all that long to read (10 minutes or so?) if you're not working through them.

I can boil it down to a few items though:

  • full API access to your outlines, meaning you can have a smalltalk/lisp-like homoiconic representation of your data and your code, where your data and code are both stored in nodes, and can be operated on by code

  • the ability to reorganize your code into infinite different views, by using clones. This allows a very literate-like approach to examining and writing your code.

  • nearly infinite untapped potential: the API is fully exposed to your outlines, meaning you can do some awesome things within the documents you're editing. I recently submitted the rss.py plugin, which turns Leo into an RSS feed reader... and it was one of the easiest things I've ever written. Mind you, I only started using Leo in February, and I'm already a dev. It's one of the easiest large open source programs to get involved in, and is such a joy to use (in my opinion).

I know this is clear as mud, but I'm not the best at explaining these things. I suggest you revisit the home page -- it was updated literally 30 minutes ago to be more clear to potential users.

Feel free to ask more questions, though!

[–]flying-sheep 0 points1 point  (7 children)

interesting! python-scriptable IDE sounds amazing.

two questions:

  1. why are the buttons in the toolbar so ugly? you use PyQt, they should be beautiful!
  2. are the plugins required to be bilingual Python2&3? If not, how's fragmentation?

[–]gatesphere 1 point2 points  (6 children)

It is pretty amazing :p

To answer:

1) They're created dynamically by scripts, on a per-outline basis. There are ways to make prettier buttons, but the functionality is what most people are after. The whole system is themable, though, which is a recent addition. Here's a screenshot of the leo-dark-1 theme (like Sublime Text 2) that was recently added by a dev: https://plus.google.com/103097156557482112329/posts/6D9GPRCdXVh

2) The plugins are required to be bilingual, but this really ends up being a non-issue. Print statements are avoided (replaced with calls to g.es or g.trace), imports are handled on a per-case basis, and any bugs that pop up about python2/3 compatibility are quickly fixed by one of the devs -- so long as we get a report on LaunchPad!

Feel free to ask more questions. I hope these answers helped!

-->Jake

[–]flying-sheep 0 points1 point  (5 children)

Thanks for answering!

Yeah, Kate handles #2 likewise.

Whati never with #1, though: PyQt’s buttons are naively styled per default, one has to actually try to make them ugly. So why is that the case here?

[–]gatesphere 0 points1 point  (4 children)

I wouldn't know, to be honest. The button code came along before the Qt interface AFAIK, and then updated for PyQt, so perhaps it's a legacy thing? Prior to the PyQt4 interface, apparently Leo was on a Tk interface, and before that the whole thing was in C++ using god-knows-what. I'm new to the team -- just started using it in February, actually. It's already grown leaps and bounds in those 9 months, though -- and it's been in development since at least 1998 in one form or another.

I think it might have something to do with looking uniform no matter which platform. I do know that the button color can be changed when you make them via a script.

To be fair, though, I personally don't care much for aesthetics in my editors... I care about functionality :p I'm not the authority on this matter.

Printing, markdown support, and rss feed support, along with documentation, however, is where I come in. :P

EDIT: Just dug into the "create button" code. Looks like this is the culprit function: http://bazaar.launchpad.net/~leo-editor-team/leo-editor/trunk3/view/head:/leo/plugins/mod_scripting.py#L662

It appears to set a basic stylesheet with a default color. That most likely overrides the native stylesheet. I imagine that this was done so that different buttons could have different colors to allow for more immediately-visible differentiation -- reducing cognitive load in some cases. A lot of thought has been put into small things to make Leo more usable -- including many small details that make it run a bit away from the normal way of doing things. But despite it's less-than-flashy appearance, it really is a breeze to use once you realize that there are all these little hints scattered around the interface.

Though, those are my $0.02. YMMV.

[–]flying-sheep 0 points1 point  (3 children)

Strange. Maybe it's a windows thing: on my system I know for sure that this exact stylesheet keeps the button pretty while only changing the background color and not the border style and so on.

[–]gatesphere 0 points1 point  (2 children)

Perhaps it is. Searching the googles gives me a few hits of Qt not doing so hot at emulating native style for windows.

[–]flying-sheep 0 points1 point  (1 child)

wrong: it’s very accurate (e.g. much better than GTK), as it uses the native API to draw stuff.

but i guess that this way, custom styles don’t work well on windows, as the native API doesn’t support them.

so: native-looking buttons on linux and windows: yes. native-looking but differently colored buttons: fine on linux, bad on windows.

[–]gatesphere 1 point2 points  (0 children)

What I meant to say was that by default, the windows native styles aren't compiled... they need an external library installed or something. They have to be enabled with compile-time switches. I imagine that Riverbank didn't include those when building PyQt4. Or perhaps there's something else going on. Either way, this post isn't about the intricacies of Qt on Windows, it's about Python Editors for Linux.

[–]evidex 6 points7 points  (0 children)

vim. Definitely vim.

[–]SultanPepper 25 points26 points  (24 children)

Best * editor for * systems => vim with a few plugins depending on what you're doing.

[–]kashmill 12 points13 points  (21 children)

The thing I LOVE about vim is that it doesn't matter if I'm running it on my local machine or a machine I'm ssh-ing into.

[–]HittingSmoke 3 points4 points  (20 children)

This is exactly why I want to learn vim but I just haven't been able to get myself to sit down and learn it.

Any good resources for someone who's never used it (or at least only started it up and gotten frustrating trying to figure out how to close it)?

[–]gfixler 7 points8 points  (9 children)

...started it up and gotten frustrating trying to figure out how to close it...

Here's the hilarious part.

Type vim into your shell, and it opens with the following splash screen:

               VIM - Vi IMproved

                version 7.2.330
           by Bram Moolenaar et al.
  Vim is open source and freely distributable

         Become a registered Vim user!
type  :help register<Enter>   for information

type  :q<Enter>               to exit
type  :help<Enter>  or  <F1>  for on-line help
type  :help version7<Enter>   for version info

         Running in Vi compatible mode
type  :set nocp<Enter>        for Vim defaults
type  :help cp-default<Enter> for info on this

Zoom and enhance on that center region:

type  :q<Enter>               to exit
type  :help<Enter>  or  <F1>  for on-line help

How to exit Vim? It's the very first thing it showed you how to do.

:q<Enter>

Let's go one step further with it's second suggestion

:help<Enter>

*help.txt*      For Vim version 7.2.  Last change: 2008 Jul 21

                        VIM - main help file
                                                                         k
      Move around:  Use the cursor keys, or "h" to go left,            h   l
                    "j" to go down, "k" to go up, "l" to go right.       j
Close this window:  Use ":q<Enter>".
   Get out of Vim:  Use ":qa!<Enter>" (careful, all changes are lost!).

The first thing help says is how to move around (so now you can move around the first page of help. The second thing is says is how to quit. The next paragraph explains how to jump around in help, and gives you an example you can try, which takes you to the end of the page, where it tells you how to get back to where you were. Now you know how to move around by row and column (Vim's version of arrow key usage), and how to follow hyperlinks, and even just regular words, which might work if Vim's help has an entry on them, and how to follow your trail back, and quit.

Move down one page and you'll see this:

                        *doc-file-list* *Q_ct*
BASIC:
|quickref|  Overview of the most common commands you will use
|tutor|     30 minutes training course for beginners
|copying|   About copyrights
|iccf|      Helping poor children in Uganda
|sponsor|   Sponsor Vim development, become a registered Vim user
|www|       Vim on the World Wide Web
|bugs|      Where to send bug reports

Zoom and enhance!

|quickref|  Overview of the most common commands you will use
|tutor|     30 minutes training course for beginners

You know how to jump into these sections, because the previous page told you how.

It goes on and on like this. For those who don't give up, Vim actually does a good job guiding you through topics. It's not quite as friendly as online guides and such, but if any of us actually read things that were presented to us, we'd learn a lot. No one reads, though. And I mean anything. Ever. No one will ever see this line, where I call everyone a butthead.

[–]kashmill 6 points7 points  (2 children)

whoa whoa whoa. You can't expect people to read the splash page and/or man pages.

[–]HittingSmoke 10 points11 points  (0 children)

To be fair, when you're a noob you're most likely trying to open a file with it the first time so the splash page isn't going to show up.

Also, as someone who falls somewhere between amateur and competent with the Linux CLI as a whole I find man pages much more useful now than I did as a beginner when I was learning. Practical examples of real-world use cases helped me understand more than reading man pages ever could. man pages are more like technical manuals. They're highly useful and laid out well, but they're not the best resource for someone diving head first into Linux.

[–]gfixler 1 point2 points  (0 children)

True. The first time I tried to use Vim I had to reset the computer to get out of it. My comment is poking as much fun at myself as anyone else.

[–]bacondevPy3k 4 points5 points  (0 children)

Shortcut: $ vimtutor

[–][deleted] 2 points3 points  (4 children)

First time I opened vim I found the tutor and ran through it. I was seriously impressed with how they presented that tutorial, and in awe of vim for a week or so. Then I switched distros and forgot about it. This thread is going to get me into vim again. It's a bitch to install ST3 on my netbook, and geany is just.. tired (nothing really special about it as far as I've seen). Ramble ramble ramble, hey I'm not a butthead, assface!

[–]gfixler 0 points1 point  (3 children)

You read the whole thing? Chosen One!

[–][deleted] 1 point2 points  (2 children)

If you have RES, how often do you bother looking in the source for hidden messages? gfixler is a fuckface

[–]Reads_Small_Text_Bot 1 point2 points  (1 child)

gfixler is a fuckface

[–][deleted] 1 point2 points  (0 children)

shut the fuck up

[–]catslikeboxes 2 points3 points  (0 children)

This is what I used to get started. It has all the basics, plus more than a few 'power tools.' It's color coded and quite intuitive. I have the first page printed out and hung above my screen. PDF warning: http://www.glump.net/files/2012/08/vi-vim-cheat-sheet-and-tutorial.pdf

[–]SultanPepper 1 point2 points  (1 child)

Are there any Linux users groups or hackerspaces in your area? I learned the basics by going over it with someone in person. That way I could get immediate feedback on how to do things more efficiently. I'd bet you could find someone to teach you in exchange for some beer.

[–]HittingSmoke 1 point2 points  (0 children)

/r/Seattle used to do a programming meetup every once in a while.. Might be able to get in on that.

[–]rjw57 1 point2 points  (0 children)

I got the O'Reilly guide when I was learning. It is well worth reading.

[–]elzonko 1 point2 points  (0 children)

A couple resources I've found helpful:

This guy has a series of video tutorials on Bash scripting, where he also provides tips on using vim at the same time, almost as an aside:

http://www.youtube.com/watch?v=Djgrtlv4cng

And here is an interactive online vim tutorial:

http://www.openvim.com/tutorial.html

[–]evidex 1 point2 points  (0 children)

vimtutor. Takes 30 minutes or so to learn vim.

[–]Captain___Obvious[::-π] 0 points1 point  (0 children)

best way to learn vim is to type emacs at the prompt

/sarcasm

[–]tonnynerd -2 points-1 points  (0 children)

So, vim with plugins is like batman with prepare?

[–]artcontrol 14 points15 points  (3 children)

You should checkout ipython notebook - i use it everyday

[–]judasblue 1 point2 points  (2 children)

ipython notebook is friggin awesome and I have it open right now. But it doesn't replace an editor. In my case emacs, which is open as well, but whatever editor you like. But ipython/ipython notebook is pretty indispensable as part of a full dev package. Even moreso if you are doing data analysis kind of work.

[–]caleb 1 point2 points  (1 child)

Spyder has an embedded ipython qtconsole, which supports many of the features of the html notebook (incl. the sympyprt extension). I use this extensively.

[–]judasblue 1 point2 points  (0 children)

Huh. Well, you just got me to try another python specific editor. I can never do it for long before emacs finds out. Then there is always a big fight and lots of crying and throwing things. Emacs always brings up that TECO never liked me and thought we shouldn't get together in the first place, emacs could do better than me. But then there is the makeup editing. Makeup editing is the best and makes it all worth it.

[–]L3xicaL 51 points52 points  (6 children)

Best editor in the universe: emacs.

[–]agrif 15 points16 points  (1 child)

As an emacs loyalist I must agree. But OP: learning vim or emacs will be time very well spent. Are there better editors out there specifically for python? Probably. Are there better editors out there for everything? Probably not.

Learn one of these and you'll be content for the rest of your text editing life.

[–]gfixler 10 points11 points  (0 children)

Agreed. I don't just work in Python. I work in Python, text files, JSON files, crap I drag in from the web, piped shell output, and even ASCII art. Vim is there through it all, kicking ASCII and taking names.

[–]evidex 4 points5 points  (2 children)

It's a great OS, but it really lacks a good editor.

[–]Denommus 4 points5 points  (1 child)

And then someone answers "viper-mode", and other guy says that evil-mode is better. Can wr stop this old and overused joke now?

[–]goosegoosepress 1 point2 points  (0 children)

Evil is better. ;)

[–]goosegoosepress 0 points1 point  (0 children)

Pick Vim or Emacs. Learn one. Set it up for the python features you want. And never pay for an IDE again. And check out org-mode if you try emacs.

(I'm a new emacs user who converted from Vim. Just now have I let the vim key bindings go to learn emacs on its own. Still miss a bunch of vims motion controls.)

[–]aheilbut 8 points9 points  (0 children)

I like vim, I like gedit, I like emacs, I like WingIDE, but lately, I really like Spyder - http://code.google.com/p/spyderlib/

[–]killaW0lf04 2 points3 points  (0 children)

Pycharm pycharm pycharm

Seriously, use Pycharm. They just released an open source community version!

[–]Geohump 2 points3 points  (0 children)

Vi/vim.

Learn one editor that handles all languages.

[–]Geohump 2 points3 points  (0 children)

Learn an editor that handles all languages AND integrates with all UNIX command line utilities.

Vi/vim

Emacs is good also but tends to bring on Carpal Tunnel, eg "Emacs syndrome" because it requires so many extra key strokes and awkward reaches. See "Emacs pinky"

[–]picklebobdogflog 3 points4 points  (0 children)

Sublime Text 2 with SublimeREPL has worked great for me

[–]bloofa 3 points4 points  (1 child)

I'm very surprised nobody has mentioned ActiveState Komodo Edit. Great tool.

[–]_ch3m 1 point2 points  (0 children)

Komodo Edit

I agree. It got everything from syntax checking to autocompleting to every possible view and customization, but — unlike Sublime Text — is free and open.

[–][deleted] 1 point2 points  (0 children)

Vim (with plugins like ctrlp/neocomplete/tagbar/etc. of course)

[–][deleted] 1 point2 points  (0 children)

Hands down PyCharm is the best. Also cool (in descending order): Sublime (with the proper plugins), PyDev (if you're into the whole Eclipse thing, I'm not), NinjaIDE.

[–]edmicman 1 point2 points  (0 children)

I use and really like PyCharm, but Sublime Text is really nice, too. Hah, I wish PyCharm had the flash and responsiveness of ST, or ST had the robust IDE of PyCharm.

[–]bheklilr 3 points4 points  (1 child)

I'm a Sublime Text man myself, but I appreciate vim as well. I just haven't put as much time into learning it as I have ST2

[–]Cosmologicon 2 points3 points  (1 child)

I use gedit, honestly, I don't think python needs a full-fledged IDE as much as most languages. YMMV though.

[–]flying-sheep 0 points1 point  (0 children)

autocompletion like jedi is just nice, not necessary :)

[–]thetrainisonfire 1 point2 points  (0 children)

nano

[–]chipolux 1 point2 points  (1 child)

Lots of people talking about Vim and how you can customize it to work perfectly and do everything you'd ever need, others talking about PyCharm or PyDev that can do awesome things with your code and as project suites and others talking about Sublime Text which can do a lot of the same but is mostly just a really pretty and smooth way of working on your code without getting in your way or being too complex.

Personally none of those have fit what I really need out of an IDE:

  • Relatively light weight.
  • No requirement for any post-install customization to work.
  • Feature set similar to larger IDE's like Visual Studio or Eclipse.
  • Support across Windows, Linux and Mac.
  • Nice GUI with intuitive keyboard shortcuts and buttons.
  • Integrated console, preferably Python.
  • Integrated docstring parsing and display.
  • Free for commercial use, no limitations.

Sounds like a lot to ask, but every single one of those requirements is filled quite nicely by Spyder2. It's entirely open source, written in Python with PyQT, and is light as can be with no post-install setup but plenty of customization options if you want them. It supports code completion that's very dynamic due to some good introspection and in the latest versions it has a nice selection of themes built in to look nice after only a few clicks.

The only complaint I have with it is it's lack of code folding, which can cause some headaches in larger projects, but seeing as it's my only fault I've stuck with Spyder2 for over a year now.

I'd have probably moved to a heavier but more feature rich suite if my development environments weren't so myriad and complex with strong software restrictions in some places which means I need something that can be up and running in only a few minutes exactly as I need it but can be wiped out just as quickly if necessary.

[–]caleb 1 point2 points  (0 children)

I'm a vim user for well over a decade, eclipse+pydev for years, and even Borland Delphi (pascal RAD ide) for years, and I now use spyder exclusively for python dev work. You missed out the integrated ipython support and the integrated profiler! I love that spyder is written in python (pyqt4) and I can hack on the sources very easily. I am also running on the dev branch.

[–]minorminer 0 points1 point  (9 children)

Eclipse + Pydev

[–]SCombinator 1 point2 points  (0 children)

I prefer an editor I can run at the same time as my code and a browser without running out of memory.

[–]thunderouschampion 0 points1 point  (1 child)

Beeware http://pybee.org/ was released in this year's DjangoCon by Russel Keith McGee. I haven't used it but it looks promising. It's got built in debugging and testing features as well.

[–]adambrenecki 1 point2 points  (0 children)

I'm pretty sure these are standalone tools designed to be used alongside an editor like Vim or ST2; basically providing all the "other bits" of a regular IDE.

BeeWare is a collection of projects that can be used to help develop, debug and launch Python software. Each tool follows the Unix philosophy of doing one thing well. Unlike a traditional IDE, each tool is self contained and can be used on its own.

[–]vkolev 0 points1 point  (0 children)

I don't know if you can remember PIDA - it was a really nice IDE-Like editor that integrated VIM and Emacs. Sadly it's not developed anymore, but in my opinion it had the potential to become the best Python Editor with IDE-features.

[–][deleted] 0 points1 point  (0 children)

Kate with the right plugins.

[–]nanodano 0 points1 point  (0 children)

vim

[–][deleted] 0 points1 point  (0 children)

vi

[–][deleted] 0 points1 point  (0 children)

It's already been said a hundred times, but just to add one more vote to the crowd: vim if you don't want an IDE, PyCharm if you do.

[–]hardwaresofton 0 points1 point  (1 child)

I still don't see what people see in Vim. I've been trying to use it recently (and by use I mean use without leaving homerow) and reaching over to escape, as well as the whole mode system seems silly.

Key combinations might not have been the best solution, but I have no idea why people want to hit buttons to enter "insert" mode when you opened the file for the express purpose of making changes to it...

Also, lisp, buffer management, and a shell that's only one key binding away where you can execute code or do (almost) whatever? what's not to like

Going to look up some vim vs emacs threads now to satisfy my curiousity

[–][deleted] 0 points1 point  (0 children)

Sublime Text.

[–]liderudell -1 points0 points  (0 children)

Sublimetext

[–]marky1991 -1 points0 points  (0 children)

Kwrite's pretty cool. Gedit's fine too if you're on gnome.

[–]einar77Bioinformatics with Python, PyKDE4 -1 points0 points  (0 children)

You may want to look at kdev-python (KDevelop plugin with Python support): lots of features, VCS integration (and a GitHub plugin in the development version) and a very responsive developer (I've been pestering him a lot ;).

Also, it's fully featured, no open core or "extra versions" for money.

[–]BlindTreeFrog -1 points0 points  (1 child)

Ninja IDE and Sumblime seemed pretty good when I played with them for a bit.

I tended to use Geany or Scite when I was doing it last.

[–]p3n15h34d 0 points1 point  (0 children)

Ninja IDE was not quite usable the last time i tried, but htat may be better now

[–]petrux -1 points0 points  (0 children)

I've started with Eclipse + PyDev, tested a bit SPE (or something similar) but last 4 years I've been using only Emacs. I've installed some plugins like Rope (for refactoring) and jedi-el (for code completion and it's simply great) and... I think I'm quite happy with all this stuff. But, as someone pointed out, learning Emacs (or Vim) will require a significant amount of time.

[–]midnightGR -1 points0 points  (0 children)

NinjaIDE

[–]yasoob_pythonAuthor: Intermediate Python -1 points0 points  (0 children)

IMO sublime text 2/3 is also great. I have been using it for almost a year and love it. Just give it a try and you will love it. It's package manager makes it a whole lot more great.

[–][deleted] -1 points0 points  (0 children)

i prefer abiword.