{"id":5280,"date":"2016-05-26T15:58:00","date_gmt":"2016-05-26T19:58:00","guid":{"rendered":"http:\/\/irreal.org\/blog\/?p=5280"},"modified":"2016-05-26T15:58:50","modified_gmt":"2016-05-26T19:58:50","slug":"emacs-as-a-python-ide","status":"publish","type":"post","link":"https:\/\/irreal.org\/blog\/?p=5280","title":{"rendered":"Emacs as a (Python) IDE"},"content":{"rendered":"<p> A couple of years ago, Drew Werner gave a nice talk to the New York Emacs Meetup group on <a href=\"https:\/\/www.youtube.com\/watch?v=6BlTGPsjGJk&amp;index=15&amp;list=PL8tzorAO7s0he-pp7Y_JDl7-Kz2Qlr_Pj\">An Intelligent Python IDE with Emacs, Projectile, and Jedi<\/a>. I came across a reference to it today and watched the video of it. It&#8217;s well worth the 47 and half minutes even if you&#8217;re not a Python user. <\/p>\n<p> Werner&#8217;s idea is that you can take his basic method of setting up a Python IDE and use it to set up an IDE for any language. Indeed, the first two components are pretty much language independent. He first sets up <a href=\"https:\/\/github.com\/bbatsov\/projectile\">Projectile<\/a> to handle your workflow at the project level. Then he installs <a href=\"https:\/\/github.com\/auto-complete\/auto-complete\">auto-complete<\/a> to provide context sensitive completion. The problem is that auto-complete doesn&#8217;t understand Python so its completion is rudimentary. <\/p>\n<p> He solves that problem by adding <a href=\"https:\/\/github.com\/tkf\/python-epc\">EPC<\/a> and <a href=\"https:\/\/github.com\/tkf\/emacs-jedi\">Jedi<\/a>, which provide Python language parsing and enable auto-complete to provide much better completions. Auto-complete has engines for other languages so with a little work you can build an IDE for many environments. See my post on \u00c1tila Neves&#8217; talk on <a href=\"http:\/\/irreal.org\/blog\/?p=4670\">setting up Emacs as a C++ IDE<\/a> as an example. <\/p>\n<p> If you&#8217;re a Python user you should definitely watch the video. If you&#8217;re not, you may still find the ideas that Werner talks about useful for enhancing your own workflow. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>A couple of years ago, Drew Werner gave a nice talk to the New York Emacs Meetup group on An Intelligent Python IDE with Emacs, Projectile, and Jedi. I came across a reference to it today and watched the video &hellip; <a href=\"https:\/\/irreal.org\/blog\/?p=5280\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[18],"class_list":["post-5280","post","type-post","status-publish","format-standard","hentry","category-general","tag-emacs"],"_links":{"self":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5280"}],"version-history":[{"count":1,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5280\/revisions"}],"predecessor-version":[{"id":5281,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/5280\/revisions\/5281"}],"wp:attachment":[{"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/irreal.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}