4.6 KiB
title | description |
---|---|
SpaceVim lang#python layer | This layer is for Python development, provide autocompletion, syntax checking, code format for Python file. |
Available Layers >> lang#python
Description
This layer is for Python development.
Features
- Auto-completion using deoplete-jedi or jedi-vim
- Documentation Lookup using jedi-vim
Install
enable layer
To use this configuration layer, add following snippet to your custom configuration file.
[[layers]]
name = "lang#python"
language tools
syntax checking:
checker
layer provide syntax checking feature, and for Python it uses flake8
package:
pip install --user flake8
code formatting:
The default key binding for formatting buffer is SPC b f
, and you need to install yapf
. To enable automatic buffer formatting on save, load this layer with setting format-on-save
to 1
.
[[layers]]
name = "lang#python"
format-on-save = 1
pip install --user yapf
format imports:
To be able to suppress unused imports easily, install autoflake:
pip install --user autoflake
To be able to sort your imports, install isort
pip install --user isort
code coverage:
To be able to show code coverage, install coverage.py
pip install --user coverage
Configuration
By default, when create a new python file, SpaceVim will insert file head automatically.
to change the file head, use python-file-head
option:
[[layers]]
name = "lang#python"
python-file-head = [
'#!/usr/bin/env python',
'# -*- coding: utf-8 -*-',
'',
''
]
Key bindings
Jump to definition
Mode | Key Bindings | Description |
---|---|---|
normal | g d |
Jump to the definition position of cursor symbol |
Code generation
Mode | Key Binding | Description |
---|---|---|
normal | SPC l g d |
Generate docstring |
Code Coverage
Mode | Key Binding | Description |
---|---|---|
normal | SPC l c r |
coverager report |
normal | SPC l c s |
coverager show |
normal | SPC l c e |
coverager session |
normal | SPC l c f |
coverager refresh |
Text objects and motions
This layer contains vim-pythonsense which provides text objects and motions for Python classes, methods, functions, and doc strings.
Text Objects | Descriptions |
---|---|
ac |
Outer class text object. |
Inferior REPL process
Start a Python or iPython inferior REPL process with SPC l s i
. If ipython
is available in system executable search paths, ipython
will be used to launch Python shell; otherwise, default python
interpreter will be used. You may change your system executable search path by activating a virtual environment.
Send code to inferior process commands:
Key Bindings | Descriptions |
---|---|
SPC l s b |
send buffer and keep code buffer focused |
SPC l s l |
send line and keep code buffer focused |
SPC l s s |
send selection text and keep code buffer focused |
Running current script
To running a Python script, you can press SPC l r
to run current file without loss focus, and the result will be shown in a runner buffer.
Testing
Refactoring
Key Bindings | Descriptions |
---|---|
SPC l i r |
remove unused imports with autoflake |
SPC l i s |
sort imports with isort |