Using VIM for Python IDE in Windows? - python

I am turning to Python from .NET world. And Visual Studio was something a great tool i used.
In python world we do have basic IDLE and another one is VIM. I have seen that a lot of developers have configured VIM to a great IDE. Using basic VIM in Windows 7 seems of less use.
So i want to moderate my VIM to a level which has file explorer, syntax highlighting, search, error highlighting etc. So that it gives feel of Visual Studio and more productive.
But all hacks/tips available are for Linux/Ubuntu users mostly, which i may use later but as of now i need to make my VIM in Windows more productive, visual.
Please Suggest some Tips/Hacks/Resources to look around for VIM configuration?
Thanks

This question addresses your low level issue: coding Python with an IDE that is not VS.
There are a few popular blog posts addressing your high level issue: setting up Vim for Python development. They are a quick google away…
I feel the need to point out that Vim is not an IDE. You can customize it a lot and end up with something that looks like an IDE but you won't get an IDE. Only an over-customized text editor.
Anyway, here are a few tips for starting out with Vim:
Do $ vimtutor as many times as needed to feel comfortable with the basics.
Get familiar with Vim's buit-in documentation: the answers to most of your questions are somewhere inside. :help gets you to the front page, :help 'option' shows the documentation for option, :help :command shows the documentation for command… Hit <C-]> on a colored word to jump to its definition.
Don't use Janus or SPF13 or whatever pre-packaged set of plugins. You'll only grow bad habits. Similarly, don't copy other people's vimrc wholesale.
Ctags is an external code indexer that is used by Vim to "jump to definition" with <C-]>. cscope is another option, it's more powerful but also a little more complex. See :help tags.
Related to ctags, TagList and TagBar are two popular plugins used to display more or less the equivalent of the Object Browser in VS.
NERDTree is another popular plugin that mimicks the file tree found in many IDEs/editors. But Vim comes with netrw (:Ex) by default, try it before installing NERDTree.
Read :help motion.txt as soon as possible.
Watch Drew Neil's laser-guided vimcasts.
Don't rush it.

you can use vim plugins on windows, http://www.vim.org/scripts/index.php, typing "vim {your feature here}" into google will come up with lots of results.
popular file explorer is nerdtree,
syntax highlighting can be turned on with
syntax on in your vimrc
searching open file is easy to do using reg exes . Initialize search with /.
Searching directory is easy to do using grep.
I don't develop on windows but i have read that Cygwin might be worth installing for some linux tools if not already installed.

I am in no way an evangelist of any Editor/IDE.
But, if you are a newbie to Python I would suggest trying out Sublime Text 2 http://www.sublimetext.com/ . It is a very light weight yet powerful editor with a great following and it has a free evaluation version with no deadline.
But, if you intend to work using frameworks such as Django/ GAE then I would suggest using PyCharm from JetBrains
http://www.jetbrains.com/pycharm/
Finally, these tools are all just personal choices until you get comfortable with one or two of them.
Thanks,
-Hari

One possible compromise is to use your favorite IDE with a vim emulator plugin. For example, in Eclipse you can use Vrapper, PyCharm has IdeaVim and so forth. Lighttable also has vim key-bindings. The plug-ins (or key-binding options) give you some of the benefits of editing in Vim while still having the powerful debugging / navigation features, etc. of a full-blown IDE. BTW, Vrapper works with PyDev.
Using an emulator in an IDE allows you to gain the "muscle-memory" necessary for effective vim editing, without getting bogged down in "configuration hell" associated with turning an editor into an IDE (which auto-complete plugin do I use?..etc.?). Once you have mastered the vim keystrokes for normal and visual mode, used along with insert mode, you may decide to continue on into pure Vim and face those issues.

I wouldn't recommend to learn VIM in 2012 (despite it being a great editor). If you must, this blog post will get you started.
But VIM isn't an IDE, it's a text editor.
If you really want a powerful IDE, try IntelliJ IDEA or Eclipse. Both have great plugins to turn them into Python IDEs (along with code completion and all the other nice time savers). For Eclipse, try PyDev. For IntelliJ, search for Python in the plugin preferences pages.

Related

Kivy development in eclipse PyDev on Ubuntu 14.04 SetUp

I begun to develope with Python and Kivy and I really like it :-) For daily business I'm a Java developer and also a an eclipse child. So i decided to setup eclipse (Mars) with Python, means install PyDev-Plugin and create the settings (done in one button-click).
But I have a problem, my eclipse do not want to recognize the kv-files as python files.
So my question has anyone experience with this set up?
Do anyone knows a good set up tutorial?
Thanks for your help
*.kv files aren't Python files. I don't think trying to treat them as such is really what you want to do. If you must, you can choose to treat *.kv files as python files by going to Preferences > General > Editors > File Associations and adding an entry for *.kv with the Python Editor as an associated editor.
My own personal preference, however, is to use YEdit YAML editor for *.kv files. It won't recognize Python syntax in expressions, but it works well enough for me. If you're willing to use an external editor, you can get Kv-lang syntax highlighting in Vim. If you're willing to learn to use Vim. Which you should, because Vim is awesome.
Finally, if you're willing to pay, the developer of PyDev also develops a closed source fork of Eclipse called Liclipse, which, if I recall correctly, has syntax highlighting, outlining, and autocomplete in kv files.

Python Code Completion

After using C# for long time I finally decided to switch to Python.
The question I am facing for the moment has to do about auto-complete.
I guess I am spoiled by C# and especially from resharper and I was expecting something similar to exist for Python.
My editor of choice is emacs and after doing some research I found autocomplete.pl, yasnippet and rope although it is not clear to me if and how they can be installed in a cygwin based system which is what I use since all the related documentation appears to be linux specific...
The version of emacs I currently use is 23.2.1 which bundles the python mode that although useful is far behind from whatever research has to offer.
My question to python users has to do about how common is autocomplete vs manual typing (using M-/ where possible) ?
I am thinking about just memorizing python build-in functions like len, append, extend etc. and revert close to a pre-autocomplete editing mode. How different such an approach is from what other pythonistas are doing?
I found this post
My Emacs Python environment
to be the most useful and comprehensive list of instructions and references on how to setup a decent Python development environment in Emacs regardless of OS platform. It is still a bit of work to setup but at least it covers the popular packages and components generally recommended for Python in Emacs that provide auto-completion functionality.
I loosely used this post as a guide to do the setup on my Windows machine with Emacs 23.2.1 and Python 2.6.5. Although, I also have Cygwin installed in some cases instead of running the *nix shell commands mentioned in the post, I just download the packages via a web browser, unzip them with 7zip, and copy them to my Emacs' plugin directory.
Also, to install Pymacs, Rope, and Ropemacs, I used Python's EasyInstall package manager. To use it, I downloaded and installed the setuptools package using the Windows install version. Once installed, at the command line, cd to their respective download locations and run the command
easy_install .
instead of the shell commands shown in the post.
Generally, I saved any *.el files in my ~\.emacs.d\plugins (e.g. in %USERPROFILE%\Application Data\.emacs.d\) and then updated my .emacs file to reference them as documented in the post.
Despite all this, on occasion, I've used DreamPie since it does have overall better auto-completion out of the box than my Emacs setup.
I'm spoiled by Intellisense too. The PyDev extensions for Eclipse offer a pretty good auto-complete substitute.
I find that PyDev + Eclipse can meet most of my needs. There is also PyCharm from the Intellij team. PyCharm has the added advantage of smooth integration with git.
I've been using PyScripter, an IDE for Windows, for a while now, and have found it very good. It has autocompletion among many other features. It's written in Delphi -- not that there's anything wrong with that -- it just bothers me a bit, though...
Take a look at Spyderlib, support most of the features including code completion
IMO, by far the easiest way to take advantage of the python tools available for emacs is to take advantage of the defaults that are all set up at:
https://github.com/gabrielelanaro/emacs-for-python
I actually took the time to get pymacs and ropemacs and python-mode all working independently before finding that little gem, and now I rely on it entirely for all my python based customizations. If you are new, I would definitely start there.

.NET developer moving to ubuntu for development

I've been developing in .NET now for about 3 years. I love the visual studio IDE and sadly I won't be able to use it anymore.
Could someone save me hours of searching the web and reading reviews, and suggest the 'standard' or most popular IDE/Text editor for linux that will get me up and running quickly?
My main goals here are web development backed with Python.
Consider Wing IDE -- IMHO the best commercial IDE for Python, it does support Django if that's what you want (as, apparently, do 80% of Python-based websites; personally, I prefer werkzeug and the like, but maybe that's partly because my "web apps" tend to be more like "web services", with most all the UI/views parts done in HTML/CSS/Dojo;-).
Me, I use Vim (usually in the gvim incarnation) as my "Python IDE" (and I've seen Emacs-using colleagues do at-least-equivalent wizardry, but I just can't get used to Emacs myself!-)... but I have to admit that a Wing IDE expect, particularly if faced with a thorny debug scenario, can do circles around me (and even around the Emacsers). ((So why haven't I made the effort to switch? Maybe because, thanks to fanatical testing, I now face thorny debug scenarios too rarely to make me an expert in any new tool!-)) ((Or maybe because my fingers, having learned vi 30+ years ago, would HATE me if I switched to ANYTHING else;-)).
See this question about Python IDEs.
I use Eclipse + PyDev.
First off, if you want to do web with Python, the Django framework seems like the best choice.
From some quick Googling, the best IDE for Django would be NetBeans with a plugin.
Good luck on learning 'nix development, then!
You can still develop .NET on linux.
Microsoft's Visual Studio Code is an Integrated Development Environment (IDE) with support for Mac, Linux and Windows.
I really like gedit and a terminal. You'll more than likely need to make a few tweaks and maybe install a plugin or two. gedit also has a Python console window plugin if you like that kind of integration. (Edit -> Preferences -> Plugins, then enable the bottom pane with View -> Bottom Pane)
If you're new to Ubuntu I'd still recommend trying a few different tools before you get settled. The impression I get is that text editors are more commonplace than full blown IDEs on Linux. I tried a few IDEs on Ubuntu and it just didn't seem right - gedit is lightweight and I actually enjoy using it more than Textmate on OS X.
If you are willing to pay Wing IDE (http://www.wingware.com/) is the best (IMO)
They have trial versions and a basic version free (https://wingware.com/wing101)
Mono Develop
If you've been using visual studio, then I'd guess that mono develop would be the closest thing. As far as I know, its the best attempt around to be a linux version of visual studio. A quick Google search gives several results for python plugins for mono develop.

New to Python. Need info on the environment for it

I'm a complete newbie to Python. I've worked on PHP/JavaScript earlier but starting today I'm moving onto Python. I have no idea about the environment needed for it. I could use some suggestions on it for me to get started.
Under Unix, Emacs is a good choice, to which I always come back, because it is convenient to have a single editor for everything, and because it's open source.
What is best for you depends on your past experience with IDEs. I'd say: stick with what you've been using, or take this opportunity to try an even better IDE.
Note: Python comes with Idle, which is a very simple (if limited) IDE.
Be sure to check out IPython. It's an enhanced interactive python shell with a bunch of useful features such as Tab-Completion using introspection (eg, type "my_object." to see a list of its attributes and methods), logging your interactive session to an executable python-file, defining macros, etc. The documentation page has a link to the tutorial as well as screencasts showing it in action.
On my mac/Linux machines, python came pre-installed. On windows I use both jython under the eclipse IDE and ActivePython with their IDE/eclipse.   With eclipse you'll want PyDev.
It all depends on what you are looking for and what you are already using.
For instance, if you are using a more 'simple' editor at the moment: as long as it's got Python syntax you've got the basics.
If you are used to e.g. Eclipse you can just continue to use that, combined with Pydev. Besides syntax highlighting you'll also get more fancy features to help you debug and refactor your code.
Personally I use Emacs with python-mode (and a few other modes to interface with Subversion and Git). In the past I used Vim which also worked quite well.
My advice would be to start out with your current environment as long as it has some rudimentary support for Python. Once you are familiar with the language, start exploring what your environment is missing and either add it or if you cannot, switch to an enviroment which does support the feature.
I use gvim with some plugin in order to have better support for python.
If you like IDE, look at wing IDE wich is the best I have tested so far. Especially the debuger included is really helpful.
The Python Beginner's Guide and the official Python Tutorial both seem like good places to start.
Geany is a good option for a Linux setup, it's intellisense isn't that great but syntax highlighting is good and it can compile your code directly from inside the editor, plus it handles other languages such as C/C++, PHP, Java etc... Eric is another popular choice as it's a full IDE and I know some people use Eclipse.
On windows I use Notepad++, but it's mostly because I like text editors instead of fully blown IDE's.
Reference wise Daniel's choices are very good places to start, also check out Green Tea Press who do free computer books, there are two Python choices on there but the "Python for Software Design" book hasn't yet been published properly although you can download the manuscript. The "How to Think Like a Computer Scientist" book is a good one and not as scary as it sounds.
IDLE is nice to try out things. Other tools that people like are Eclipse with the Pydev plugin which seems to work ok, although it has crashed a few times (Eclipse, that is) and NetBeans (which I haven't tried) but some people seem to like.
I can only help you if you're running a Mac. Download Xcode. I believe that Python 2.3 comes bundled with these development tools. Luckily enough, this is all you really need to get started, unless you want a newer version of Python.
All you need to do is open up Terminal and type python. You're done!

Django development IDE [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I have done a little Django development, but it has all been in a text editor. I was curious what more advanced development tools others are using in their Django development.
I am used to using Visual Studio for development and really like the IntelliSense, code completion, and file organization it provides and would like to find something (or a combination of tools) that would provide some of this in the Django/Python environment.
There is PyCharm from JetBrains which supports Django and Google Apps. It looks promising.
Note: You need to buy a license for the Professional version if you want Django support. The Community version desn't support Django.
I use Eclipse and a plain vanilla PyDev. There isn't any specific Django functionality. The best I came up with was setting up a run profile to run the development web server.
If you add the web tools project (WTP), you'll get syntax highlighting in your templates, but nothing that relates to the specific template language. PyDev is a decent plugin, and if you are already familiar with Eclipse and use it for other projects it is a good way to go.
I recall NetBeans starting to get Python support, but I have no idea where that is right now. Lots of people rave about NetBeans 6, but in the Java world Eclipse still reigns as the king of the OSS IDEs.
Update: LiClipse is also fantastic for Django.
Install it, use this method to get the icon into Ubuntu's menu. Start LiClipse and in File > New > Project ..., select PyDev and PyDev Django project. You may have to set up your Python interpreter etc, but that you'll be able to figure out on your own. Once the Django project is created, you can right click on the project and the menu will have a "Django" option, which allows various things like creating a Django app or running migrations etc. LiClipse is good because it consumes far lesser memory than PyCharm and supports refactoring and autocomplete reasonably well.
I use Vim:
http://github.com/skyl/vim-config-python-ide
[UPDATE]
Sublime Text 2 is pretty awesome. It supports a lot of Vim commands if you want them: Vintage Mode
It has a nice package manager: http://wbond.net/sublime_packages/package_control
I use these packages so far:
Djaneiro
SetDjangoSyntax
CoffeeScript
SublimeLinter
Theme - Soda
SideBarEnhancements
I still love Vim but ... did I mention that Sublime Text plugins are written in Python?
I use Komodo Edit. Check out the Open Komodo Edit.
Sublime
I am beginning to enjoy working with Aptana Studios + PyDev (and other) plugins for all sorts of web application development. As you can tell, it is built on top of the powerful Eclipse, but is tailor-designed to focus on web application development.
I use Kate (KDE Advanced Text Editor) for most of my development, including Django. It has both a Python and Django Templates syntax higlighting. I switch to Quanta+ when a significant part of the project involves HTML.
Since it uses Kate's KPart, it's just as good for editing the Python parts, and for the HTML templates i have the whole Quanta+ tools, while still highligting Django-specific tags.
Update 2013: Unfortunately, Quanta+ has been dead for years now, and there's no hope that it will ever be resurrected. Also, there's no other usable HTML editor out there, so it's Kate all the time now.
NetBeans for Python is my current favorite (lighter and so much easier to install than Eclipse I found). Supports simple refactoring, autocompletion, errors/warnings...
Eclipse Aptana PyDev probably one of the most complete free IDE nowadays (haven't tested a lot)
Wingware Python IDE a commercial IDE, which has some Django-specific project setup features the ability to debug Django template files.
IntelliJ IDEA Ultimate Edition another commercial IDE which has also a plugin for Python that is under heavy development. I saw some demo which look very promising on the auto-completion (for templates and Python).
Vim which I still use a small touch-fix application. See also: Extra tweaks for Django.
PyCharm. It is best the IDE for Python,Django, and web development I've tried so far. It is totally worth the money.
You guys should checkout PyCharm! It is the first decent Django IDE.
Eclipse has the PyDev plugin for python development. Unfortunately, I'm not sure how well it integrates with Django.
As far as I know there is not "an IDE" for Django, but there are some IDEs that support Django right out of the box, specifically the Django syntax for templates.
The name is Komodo, and it has a lot of features, but it's not cheap. If you are not worried about source control or debugging then there is a free version called Komodo Edit.
There is an actual Python extension for Visual Studio: http://pytools.codeplex.com/. It's absolutely fantastic. It feels the same as if I were coding in any native Visual Studio language. The extension is even compatabile with Django. And best of all: it's totally free. Even for Visual Studio, it only requires the Visual Studio Shell to work, which is completely free.
Now you can also use Visual Studio 2010. Here's how:
Download and install Python Tools for Visual Studio.
Create a new project from existing code (menu File → New → Project From Existing Code...)
Specify your Django project folder and use the defaults.
Right-click on manage.py and choose Set as Startup File.
In your project properties Debug tab, add "runserver" in Script Arguments.
You can set break points, and attach to the Python process for debugging. If you want to debug without having to "attach to process," use "runserver --noreload" in your script arguments. However, the "--noreload" means you'll have to stop and restart the Django development web server manually (to recognize your code changes).
This is a nice setup if you already use Visual Studio.
Python Tools has been updated. It has built in support for Django now.
PyCharm, definitely. I tried them all (almost), but PyCharm is the one I found most useful for any heavy development.
For simple, one time, scripts I use whatever comes to mind (TextMate, Vim, Emacs, TextWrangler, etc., you name it).
I have used Eclipse with PyDev and PyCharm. PyCharm is definitely the best IDE for Django/Python I have tried. It does proper template highlighting and auto-completion for all objects. It also does cross-file referencing.
It's quite expensive, but definitely the best Django IDE I have tried. You can try a 30 day evaluation at http://www.jetbrains.com/pycharm/download/.
I've also had good results with Eclipse and Pydev. Although I still require a shell opened to the project directory to run manage.py commands. I've also been using it with the Bazaar plugin for revision control and syncing code with the server.
I really like E Text Editor as it's pretty much a "port" of TextMate to Windows. Obviously Django being based on Python, the support for auto-completion is limited (there's nothing like intellisense that would require a dedicated IDE with knowledge of the intricacies of each library), but the use of snippets and "word-completion" helps a lot. Also, it has support for both Django Python files and the template files, and CSS, HTML, etc.
I've been using E Text Editor for a long time now, and I can tell you that it beats both PyDev and Komodo Edit hands down when it comes to working with Django. For other kinds of projects, PyDev and Komodo might be more adequate though.
I use Kate as well. Kate's simplicity is its biggest feature. It doesn't get in your way. (This is of course highly subjective opinion.)
Kate includes a Python code browser plugin. But it isn't useful IMO. No automatic updates when you change the code/view. Also when you update, the whole tree is collapsed, and you have to expand it again yourself. Too many clicks.
Instead, I use the Source Browser plugin that comes with Pâté. It does cause Kate to freeze temporarily sometimes, but no crashes or anything of that sort so far.
Shameless blog plug: more on using Django with Kate (Pâté)
Well, I've been using my own one. Recently they released an alpha version. Here it is at pfaide.com/.
If you like Vim as an editor, here are some suggestions on how to tune it (up to the point of a full fledged IDE) for Django development: http://code.djangoproject.com/wiki/UsingVimWithDjango.
Editra supports Django Template Language syntax highlighting. You can configure it either as a better Notepad or a basic IDE.
I made a blog post about NetBeans' new and upcoming support for Django. When paired with its already fantastic Python, JavaScript, HTML and CSS support, it's a strong candidate in my mind!
TextMate with the Django and django-html bundles installed gives you syntax highlighting and great extensibility. It is lightweight and fun to use.
Here is a link to a code completion project for TextMate with Python (which I haven't used myself). As for "intellisense" (which I understand to be inline-doc reference), TextMate has that too.
The Wingware editor from http://www.wingware.com is Python-specific with very good auto-completion for Python/Django/Zope, etc.
It has a built in Python shell to run snippets (or select and run) and support for Mercurial/Git, etc. and a built-in unittest/nose/doctest test runner. It's commercial though, but as it is written in Python, it's cross platform.
I bought it a while ago, and thought it looked dorky, but I've tried them all and keep coming back. Caveat that I am a Windows guy with no Emacs or Vim skills, so leveraging that was not an option. And the Mac version requires X Window and seems to be more glitchy.
Geany
It is GTK2 based, fast, lightweight, available for Linux and Windows.
Ninja-IDE.
Check this: Ninja-IDE Django Plugin
Ulipad is a good one.
http://code.google.com/p/ulipad/
I have consistently used Vim or Kate, but I would prefer a full-blown IDE. Given it is not as heavy as Visual Studio.
I like Eclipse + PyDev and/or eric, myself. The new version of PyDev has some pretty awesome code completion support.
Since I only use Eclipse for PyDev, I use a slim install of just the Platform Runtime Binary + PyDev + Subclipse.

Categories

Resources