mirror of
https://github.com/kennethreitz-archive/howtopython.org.git
synced 2026-06-05 23:20:18 +00:00
cb47e776b3
Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
103 lines
3.4 KiB
ReStructuredText
103 lines
3.4 KiB
ReStructuredText
Text Editors
|
||
============
|
||
|
||
Writing Python code typically involves what it known as a Text Editor. Our recommendation for a text editor is either `Sublime Text 3 <https://www.sublimetext.com/3>`_, which costs money but is free to use, or `Microsoft VS Code <https://code.visualstudio.com>`_.
|
||
|
||
The functional difference between these two editors is small — they both accomplish the same things, effectively. Which one you chose is a matter of personal taste. There are other editors, like *vim*, *Atom*, or *emacs*, which you may chose to use instead. Whatever works best for you is best.
|
||
|
||
----------------
|
||
|
||
I personally use an vastly prefer *Sublime Text 3* to all other options available. It's easily my favorite editor. If it didn't exist though, I'd be using *VS Code*.
|
||
|
||
Python Requirements for a Text Editor
|
||
-------------------------------------
|
||
|
||
There are a few soft "requirements" for a text editors
|
||
|
||
- Support for "soft tabs"
|
||
- Support for visible whitespace (this is crucial when working with Python files)
|
||
|
||
Nice–to–haves:
|
||
|
||
- Support for "rulers", which show a horizontal line at line 79, as PEP8 recommends.
|
||
- Built-in linter for showing sytax errors as you type.
|
||
- Built-in support for Flake8, which enforces PEP8 standards as you type.
|
||
|
||
|
||
Sublime Text 3
|
||
--------------
|
||
|
||
Sublime Text doesn't support all of these things by itself, but it comes with a great system called *Package Control*, which allows for easy installation/management of third-party plugins.
|
||
|
||
|
||
Sublime Text 3 Plugin Recommendations
|
||
+++++++++++++++++++++++++++++++++++++
|
||
|
||
- Package Control
|
||
- Anaconda
|
||
- Autocompleter?
|
||
- Flake8?
|
||
- GitSavvy
|
||
|
||
Sublime Text 3 Tricks
|
||
+++++++++++++++++++++
|
||
|
||
|
||
``subl`` Launcher
|
||
/////////////////
|
||
|
||
Once installed, the command–line ``subl`` launcher will allow you to easily open up projects from your terminal (e.g. ``$ subl .``). In addition, it also will inform plugins like Anaconda of which Python interpreter to use, based on the currently activated virtual environment.
|
||
|
||
|
||
Rulers
|
||
//////
|
||
|
||
According to `PEP8 <http://pep8.org/#maximum-line-length>`_, all lines of Python should typically be set to a maximum length of 79 charecters (72 if documentation). Let's configure Sublime Text to display these rulers. Go into *Preferences ➞ Settings*, and add the following JSON::
|
||
|
||
"rulers": [
|
||
72,
|
||
79,
|
||
],
|
||
|
||
Now, you'll see nice horizontal lines at 72 and 79 charecters, informing you of how long your lines are!
|
||
|
||
|
||
|
||
Microsoft VS Code
|
||
-----------------
|
||
|
||
Microsoft VS Code guides you through setting up the Python package, built by Microsoft themselves, the first time you run it.
|
||
|
||
Microsoft VS Code Extensions Recommendations
|
||
++++++++++++++++++++++++++++++++++++++++++++
|
||
|
||
- Python extension for Visual Studio Code
|
||
by Microsoft
|
||
Linting, Debugging (multi-threaded, remote), Intellisense, code formatting, refactoring, unit tests, snippets, Data Science (with Jupyter), PySpark and more.
|
||
- vscode-flake8
|
||
- MagicPython
|
||
Syntax highlighter for cutting edge Python.
|
||
|
||
Additionally Helpful Plugins
|
||
++++++++++++++++++++++++++++
|
||
|
||
- Jupyter
|
||
Data Science with Jupyter on Visual Studio Code.
|
||
- Django Template
|
||
Django template language support for Visual Studio Code.
|
||
- Django Snippets
|
||
Common Django snippets for everyday use.
|
||
|
||
Microsoft VS Code Tricks
|
||
+++++++++++++++++++++
|
||
|
||
Select a version of Python using Ctrl+Shift+P:
|
||
"Python: Select Interpreter"
|
||
|
||
``Microsoft VS Code`` Launcher
|
||
/////////////////
|
||
|
||
|
||
Rulers
|
||
//////
|