Skip to content

PyCharm (vs WingIDE, kinda)

November 18, 2016

I’ve been thinking of checking out PyCharm for a while, and the fact that the amazing Paul Everitt works for them now finally triggered me into doing it. This is some random notes.

  • PyCharm by default adds all files in the directory to the project, forcing you to exclude everything you don’t want. That makes a bit more work upfront when starting to use it for an existing project, which is fine, but when you work with very large projects it’s sometimes less than ideal. It would be really nice if it by default excluded directories that aren’t under version control.
  • “Search Everywhere”, the search box you get up by pressing <Shift> twice most definitely does not search everywhere. In fact, it seems to always find everything except the piece of code I want to find.
  • PyCharm claims to have zc.buildout support and you can choose a file to pick paths from, but it doesn’t work, and PyCharm continues to incorrectly claim that your dependencies aren’t installed.
  • I miss the class and method dropdown boxes in WingIDE.
  • Ctrl-Y maps to yank line, not redo. Annoying (but fixable)
  • Where is revert to disk?
  • Why is there no way to see if a file is modified compared to the disk?
  • What? It doesn’t ask if I want to save when I close the file!? ARGH! It saves to disk directly! TURN IT OFF!
  • Can’t I assign live templates to keys? I have to use a macro? Weird.
  • I have to name the new files I create before I edit them? Weird. And they’ll end up where they end up, which seems to be in the same directory as the file you just opened. You can create files from the file browser as well, but you can’t make a new file and then save it outside the project directory… That’s just too weird.

After a month I’ve decided to go back to WingIDE, despite that it still randomly crashes when you change projects, an annoying bug that has been a constant for ten years now.

From → python

  1. Thanks for taking the time to write this up. And hey, give a guy another chance, eh? [wink]

    – *Add everything to the project*. Not sure what you mean on this. Do you mean a project that wasn’t yet under version control, and you use PyCharm to add it to version control? If so, it usually asks you about adding to VCS. Give me the specifics and I can look into it.

    – *Search everywhere*. Well, it gets a bit eager and probably drowns out what you’re looking for. Can you give an example? I generally use the more-narrow searches (symbol, class, file, etc.) Also, the searches have a checkbox to only include stuff directly in your project (not in your virtual env, for example.) Perhaps that’s what you want.

    – *buildout*. I too have found it to sometimes misfire. Last time I showed it to someone, at the Plone Conf, it worked the first time for Plone. Point it at bin/py.

    – *Class and method*. Did you open the “Structure” tool? Note that you can hot-key to jump to it, and speed search to narrow.

    – *Yank*. There are other keymaps, if you want something else. Or duplicate the default and customize.

    – *Revert, modified, direct*. Uhh…yep. [wink] You can turn it off, but hey, learn to love it, baby!

    – *Live Templates*. You’re right. But you’re also wrong…that sucks! Cmd-J then speed search is so, so much more natural (IMO).

    – *Name files*. There is a scratchfile facility, if you don’t want to commit to making a file-on-disk.

    I’m surprised, I actually had a non-elementary-school-level response for all of those!

    • What I mean is that when you open a project you actually open a directory, and PyCharm will stick all of the files in that directory into the project, and analyze them and search them, unless you explicitly exclude the directories. And with typical setups with either a virtualenv or buildout that’s a lot of files. Only adding versioned files would have been a better default.

      Oh, wait, I think I get it now. “Search everywhere” actually only searches *filenames*. Maybe. It doesn’t say so anywhere, so that’s not clear at all. Ctrl-Shift-F search works as expected anyway.

      I did open the structure tool, but I still miss the WingIDE class/method drop downs. Splitting the sidebar so I can have the structure tool open all the time works but takes up screen space. Not a big issue.

      And no, I can’t love the auto-save feature, I actually rely on the file not being saved until I explicitly save it. But yes, I did find out how to turn it off.

      And I stick “import pdb;pdb.set_trace()” into code so often that I want it inserted with one keypress. It’s actually also mildly annoying that PyCharm will reformat that into two lines.

      Well, OK, so I can start a scratch file and then “Save As” to where it should be. Good enough I guess.

  2. And BTW, where are you on Twitter?

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: