Text Editors and IDEs

Text editors and integrated development environments (IDEs) are applications for writing code. These applications are the primary user interface for developers to create their own programs.

Vim with basic configuration options on a dark background.

Vim is an example of a text editor implementation that can be expanded into a full Python IDE using configuration files and plugins.

Text editors and IDEs are a concept implemented by Vim, Emacs, Sublime Text, Jupyter Notebook and several other applications. Learn how the parts fit together in the development environments chapter or view all topics.

Why is a text editor or IDE necessary?

Where will you write your code if you do not have a text editor? Your development environment must include a text editor so you can enter, edit and delete characters to create Python applications.

Preferrably your editor will have a monospace font. It will also get out of your way, so no "smart" correction or automatic letter capitalization.

What's the difference between text editors and IDEs?

IDEs contain text editors but many text editors, for example Notepad included with Windows, do not include IDE features. Many text editors such as Vim or Emacs have IDE features by default but then can be further customized to add file trees, syntax highlighting, line numbers and syntax checking that is commonly found in full-featured IDEs.

Text editor implementations

The following text editor implementations can be upgraded with configurations and plugins to become full-fledged IDEs when a developer wants that kind of functionality.

IDE implementations

  • PyCharm by JetBrains

  • Beeware

  • Wing Python IDE

Text editor & IDE resources

What do you want to develop with your IDE?

I want to know about working with data in Python.

I want to learn how to code a Python web application using a framework.

I've built a Python web app, now how do I deploy it?

Sign up for two emails per month with Python tutorials and Full Stack Python updates.

Full Stack Python

Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.
Updates via newsletter, Twitter & Facebook.
1. IntroductionLearning ProgrammingWhy Use Python?Python 2 or 3?Enterprise PythonPython CommunityCompanies using PythonBest Python ResourcesBest Python VideosBest Python Podcasts2. Development EnvironmentsText Editors & IDEsVimEmacsSublime TextPyCharmJupyter NotebookBash shellShellsZshPowerShellTerminal MultiplexerstmuxScreenPymuxEnvironment configurationApplication DependenciesSource ControlGitMercurialApache SubversionHosted Source ControlGitHubBitBucketGitLab3. Core LanguageGeneratorsComprehensions4. TestingUnit TestingIntegration TestingCode MetricsDebuggingLoggingMarkdown6. Security7. Web DevelopmentWeb FrameworksDjangoFlaskBottlePyramidFalconMorepathSanicOther Web FrameworksTemplate EnginesJinja2MakoDjango TemplatesWeb DesignCascading Style Sheets (CSS)HTMLResponsive DesignMinificationBootstrapJavaScriptTask QueuesCeleryRedis Queue (RQ)DramatiqStatic Site GeneratorsPelicanLektorMkDocsWebSocketsuvloop8. DeploymentServersStatic ContentPlatform-as-a-ServiceVirtual Private ServersOperating SystemsUbuntuWeb ServersApache HTTP ServerNginxCaddyWSGI ServersGreen Unicorn (Gunicorn)Continuous IntegrationJenkinsConfiguration ManagementAnsibleDockerServerlessAWS LambdaGoogle Cloud Functions9. DataRelational DatabasesPostgreSQLMySQLSQLiteObject-relational MappersSQLAlchemyPeeweeDjango ORMSQLObjectPony ORMNoSQL Data StoresRedisMongoDBApache CassandraNeo4jData analysispandasBokehd3.jsMatplotlib10. Web APIsMicroservicesBotsAPI CreationAPI IntegrationTwilio11. DevOpsMonitoringCachingRollbarWeb Analytics12. Change LogWhat Full Stack MeansAbout the AuthorFuture DirectionsPage Statuses ...or view all topics.

Matt Makai 2012-2018