796 lines
28 KiB
Text
796 lines
28 KiB
Text
*pymode.txt* *python-mode.txt* *pymode* *python-mode*
|
|
|
|
____ _ _ ____ _ _ _____ _ _ __ __ _____ ____ ____ ~
|
|
( _ \( \/ )(_ _)( )_( )( _ )( \( )___( \/ )( _ )( _ \( ___) ~
|
|
)___/ \ / )( ) _ ( )(_)( ) ((___)) ( )(_)( )(_) ))__) ~
|
|
(__) (__) (__) (_) (_)(_____)(_)\_) (_/\/\_)(_____)(____/(____) ~
|
|
|
|
|
|
Version: 0.9.0
|
|
|
|
==============================================================================
|
|
CONTENTS *pymode-contents*
|
|
|
|
1.Intro.......................................................|pymode-intro|
|
|
2.Common functionality.......................................|pymode-common|
|
|
2.1 Python version...............................|pymode-python-version|
|
|
2.2 Python indentation...................................|pymode-indent|
|
|
2.3 Python folding......................................|pymode-folding|
|
|
2.4 Vim motion...........................................|pymode-motion|
|
|
2.5 Show documentation............................|pymode-documentation|
|
|
2.6 Support virtualenv...............................|pymode-virtualenv|
|
|
2.7 Run code................................................|pymode-run|
|
|
2.8 Breakpoints.....................................|pymode-breakpoints|
|
|
3. Code checking...............................................|pymode-lint|
|
|
3.1 Code checkers options..........................|pymode-lint-options|
|
|
4. Rope support................................................|pymode-rope|
|
|
4.1 Code completion..................................|pymode-completion|
|
|
4.2 Find definition.................................|pymode-rope-findit|
|
|
4.3 Refactoring................................|pymode-rope-refactoring|
|
|
4.4 Undo/Redo changes.................................|pymode-rope-undo|
|
|
5. Syntax....................................................|pymode-syntax|
|
|
6.FAQ...........................................................|pymode-faq|
|
|
7.Credits...................................................|pymode-credits|
|
|
8.License...................................................|pymode-license|
|
|
|
|
==============================================================================
|
|
1. Intro ~
|
|
*pymode-intro*
|
|
|
|
Python-mode is a vim plugin that allows you to use the pylint, rope, and pydoc
|
|
libraries in vim to provide features like python code bug checking,
|
|
refactoring, and some other useful things.
|
|
|
|
This plugin allows you to create python code in vim very easily. There is no
|
|
need to install the pylint or rope libraries on your system.
|
|
|
|
Python-mode contains all you need to develop python applications in Vim.
|
|
|
|
Features: *pymode-features*
|
|
|
|
- Support Python version 2.6+ and 3.2+
|
|
- Syntax highlighting
|
|
- Virtualenv support
|
|
- Run python code (``<leader>r``)
|
|
- Add/remove breakpoints (``<leader>b``)
|
|
- Improved Python indentation
|
|
- Python folding
|
|
- Python motions and operators (``]]``, ``3[[``, ``]]M``, ``vaC``, ``viM``,
|
|
``daC``, ``ciM``, ...)
|
|
- Code checking (pylint_, pyflakes_, pylama_, ...) that can be run
|
|
simultaneously (``:PymodeLint``)
|
|
- Autofix PEP8 errors (``:PymodeLintAuto``)
|
|
- Search in python documentation (``K``)
|
|
- Code refactoring <rope refactoring library> (rope_)
|
|
- Strong code completion (rope_)
|
|
- Go to definition (``<C-c>g`` for `:RopeGotoDefinition`)
|
|
- And more, more ...
|
|
|
|
|
|
==============================================================================
|
|
2. Common functionality ~
|
|
*pymode-common*
|
|
|
|
This script provides the following options that can customizes the behavior of
|
|
PythonMode. These options should be set in your |vimrc|.
|
|
|
|
Below shows the default values.
|
|
|
|
|
|
Turn on the whole plugin *'g:pymode'*
|
|
>
|
|
let g:pymode = 1
|
|
|
|
Turn off plugin's warnings *'g:pymode_warnings'*
|
|
>
|
|
let g:pymode_warnings = 1
|
|
|
|
Add paths to `sys.path` *'g:pymode_paths'*
|
|
Value is list of path's strings.
|
|
>
|
|
let g:pymode_paths = []
|
|
|
|
Trim unused white spaces on save *'g:pymode_trim_whitespaces'*
|
|
>
|
|
let g:pymode_trim_whitespaces = 1
|
|
|
|
Setup default python options *'g:pymode_options'*
|
|
>
|
|
let g:pymode_options = 1
|
|
|
|
If this option is set to 1, pymode will enable the following options for
|
|
python buffers: >
|
|
|
|
setlocal complete+=t
|
|
setlocal formatoptions-=t
|
|
if v:version > 702 && !&relativenumber
|
|
setlocal number
|
|
endif
|
|
setlocal nowrap
|
|
setlocal textwidth=79
|
|
setlocal commentstring=#%s
|
|
setlocal define=^\s*\\(def\\\\|class\\)
|
|
|
|
Setup max line length *'g:pymode_options_max_line_length'*
|
|
>
|
|
let g:pymode_options_max_line_length = 79
|
|
|
|
Enable colorcolumn display at max_line_length *'g:pymode_options_colorcolumn'*
|
|
>
|
|
let g:pymode_options_colorcolumn = 1
|
|
|
|
Setup pymode |quickfix| window
|
|
|
|
*'g:pymode_quickfix_maxheight'* *'g:pymode_quickfix_minheight'*
|
|
>
|
|
let g:pymode_quickfix_minheight = 3
|
|
let g:pymode_quickfix_maxheight = 6
|
|
|
|
------------------------------------------------------------------------------
|
|
2.1. Python version ~
|
|
*pymode-python-version*
|
|
|
|
By default pymode looks for current python version supported in your Vim.
|
|
You could choose prefer version, but value will be tested on loading.
|
|
|
|
*'g:pymode_python'*
|
|
>
|
|
let g:pymode_python = 'python'
|
|
|
|
Values are `python`, `python3`, `disable`. If value set to `disable` most
|
|
python-features of **pymode** will be disabled.
|
|
|
|
Set value to `python3` if you are working with python3 projects. You could use
|
|
|exrc|
|
|
|
|
------------------------------------------------------------------------------
|
|
2.2 Python indentation ~
|
|
*pymode-indent*
|
|
|
|
Pymode supports PEP8-compatible python indent.
|
|
Enable pymode indentation *'g:pymode_indent'*
|
|
>
|
|
let g:pymode_indent = 1
|
|
|
|
------------------------------------------------------------------------------
|
|
2.3 Python folding ~
|
|
*pymode-folding*
|
|
|
|
Fast and usual python folding in Vim.
|
|
Enable pymode folding *'g:pymode_folding'*
|
|
>
|
|
let g:pymode_folding = 1
|
|
|
|
------------------------------------------------------------------------------
|
|
2.4 Vim motion ~
|
|
*pymode-motion*
|
|
|
|
Support Vim motion (See |operator|) for python objects (such as functions,
|
|
class and methods).
|
|
|
|
`C` — means class
|
|
`M` — means method or function
|
|
*pymode-motion-keys*
|
|
|
|
================ ============================
|
|
Key Command
|
|
================ ============================
|
|
[[ Jump to previous class or function (normal, visual, operator modes)
|
|
]] Jump to next class or function (normal, visual, operator modes)
|
|
[M Jump to previous class or method (normal, visual, operator modes)
|
|
]M Jump to next class or method (normal, visual, operator modes)
|
|
aC Select a class. Ex: vaC, daC, yaC, caC (normal, operator modes)
|
|
iC Select inner class. Ex: viC, diC, yiC, ciC (normal, operator modes)
|
|
aM Select a function or method. Ex: vaM, daM, yaM, caM (normal, operator modes)
|
|
iM Select inner function or method. Ex: viM, diM, yiM, ciM (normal, operator modes)
|
|
================ ============================
|
|
|
|
Enable pymode-motion *'g:pymode_motion'*
|
|
>
|
|
let g:pymode_motion = 1
|
|
|
|
------------------------------------------------------------------------------
|
|
2.5 Show documentation ~
|
|
*pymode-documentation*
|
|
|
|
Pymode could show documentation for current word by `pydoc`.
|
|
|
|
Commands:
|
|
*:PymodeDoc* <args> — show documentation
|
|
|
|
Turns on the documentation script *'g:pymode_doc'*
|
|
>
|
|
let g:pymode_doc = 1
|
|
|
|
Bind keys to show documentation for current word (selection)
|
|
*'g:pymode_doc_bind'*
|
|
>
|
|
let g:pymode_doc_bind = 'K'
|
|
|
|
------------------------------------------------------------------------------
|
|
2.6 Support virtualenv ~
|
|
*pymode-virtualenv*
|
|
|
|
Commands:
|
|
*:PymodeVirtualenv* <path> -- Activate virtualenv (path can be absolute or
|
|
relative to current working directory)
|
|
|
|
Enable automatic virtualenv detection *'g:pymode_virtualenv'*
|
|
>
|
|
let g:pymode_virtualenv = 1
|
|
|
|
Set path to virtualenv manually *'g:pymode_virtualenv_path'*
|
|
>
|
|
let g:pymode_virtualenv_path = $VIRTUAL_ENV
|
|
|
|
------------------------------------------------------------------------------
|
|
2.7 Run code ~
|
|
*pymode-run*
|
|
|
|
Commands:
|
|
*:PymodeRun* -- Run current buffer or selection
|
|
|
|
Turn on the run code script *'g:pymode_run'*
|
|
>
|
|
let g:pymode_run = 1
|
|
|
|
Binds keys to run python code *'g:pymode_run_bind'*
|
|
>
|
|
let g:pymode_run_bind = '<leader>r'
|
|
|
|
------------------------------------------------------------------------------
|
|
2.8 Breakpoints ~
|
|
*pymode-breakpoints*
|
|
|
|
Pymode automatically detects available debugger (like pdb, ipdb, pudb) and user
|
|
can set/unset breakpoint with one key and without code checking and etc.
|
|
|
|
Enable functionality *'g:pymode_breakpoint'*
|
|
>
|
|
let g:pymode_breakpoint = 1
|
|
|
|
Bind keys
|
|
>
|
|
let g:pymode_breakpoint_bind = '<leader>b'
|
|
|
|
Manually set breakpoint command (leave empty for automatic detection)
|
|
>
|
|
let g:pymode_breakpoint_cmd = ''
|
|
|
|
|
|
==============================================================================
|
|
3. Code checking ~
|
|
*pymode-lint*
|
|
|
|
Pymode supports `pylint`, `pep257`, `pep8`, `pyflakes`, `mccabe` code
|
|
checkers. You could run several similar checkers.
|
|
|
|
Pymode uses Pylama library for code checking. Many options like skip
|
|
files, errors and etc could be defined in `pylama.ini` file or modelines.
|
|
Check Pylama documentation for details.
|
|
|
|
Pylint options (ex. disable messages) may be defined in `$HOME/pylint.rc`
|
|
See pylint documentation.
|
|
|
|
Commands:
|
|
*:PymodeLint* -- Check code in current buffer
|
|
*:PymodeLintToggle* -- Toggle code checking
|
|
*:PymodeLintAuto* -- Fix PEP8 errors in current buffer automatically
|
|
|
|
Turn on code checking *'g:pymode_lint'*
|
|
>
|
|
let g:pymode_lint = 1
|
|
|
|
Check code on every save (if file has been modified) *'g:pymode_lint_on_write'*
|
|
>
|
|
let g:pymode_lint_on_write = 1
|
|
|
|
Check code on every save (every) *'g:pymode_lint_unmodified'*
|
|
>
|
|
let g:pymode_lint_unmodified = 0
|
|
|
|
Check code when editing (on the fly) *'g:pymode_lint_on_fly'*
|
|
>
|
|
let g:pymode_lint_on_fly = 0
|
|
|
|
Show error message if cursor placed at the error line *'g:pymode_lint_message'*
|
|
>
|
|
let g:pymode_lint_message = 1
|
|
|
|
Default code checkers (you could set several) *'g:pymode_lint_checkers'*
|
|
>
|
|
let g:pymode_lint_checkers = ['pyflakes', 'pep8', 'mccabe']
|
|
|
|
Values may be chosen from: `pylint`, `pep8`, `mccabe`, `pep257`, `pyflakes`.
|
|
|
|
Skip errors and warnings *'g:pymode_lint_ignore'*
|
|
E.g. "E501,W002", "E2,W" (Skip all Warnings and Errors that starts with E2) and etc
|
|
>
|
|
let g:pymode_lint_ignore = "E501,W"
|
|
|
|
Select some error or warnings. *'g:pymode_lint_select'*
|
|
By example you disable all warnings starting from 'W', but want to see warning
|
|
'W0011' and warning 'W430'
|
|
>
|
|
let g:pymode_lint_select = "E501,W0011,W430"
|
|
|
|
Sort errors by relevance *'g:pymode_lint_sort'*
|
|
If not empty, errors will be sort by defined relevance
|
|
E.g. let g:pymode_lint_sort = ['E', 'C', 'I'] " Errors first 'E',
|
|
after them 'C' and ...
|
|
>
|
|
let g:pymode_lint_sort = []
|
|
|
|
Auto open cwindow (quickfix) if any errors have been found
|
|
*'g:pymode_lint_cwindow'*
|
|
>
|
|
let g:pymode_lint_cwindow = 1
|
|
|
|
Place error |signs| *'g:pymode_signs'*
|
|
>
|
|
let g:pymode_lint_signs = 1
|
|
|
|
Definitions for |signs|
|
|
>
|
|
let g:pymode_lint_todo_symbol = 'WW'
|
|
let g:pymode_lint_comment_symbol = 'CC'
|
|
let g:pymode_lint_visual_symbol = 'RR'
|
|
let g:pymode_lint_error_symbol = 'EE'
|
|
let g:pymode_lint_info_symbol = 'II'
|
|
let g:pymode_lint_pyflakes_symbol = 'FF'
|
|
|
|
------------------------------------------------------------------------------
|
|
3.1 Set code checkers options ~
|
|
*pymode-lint-options*
|
|
|
|
Pymode has the ability to set code checkers options from pymode variables:
|
|
|
|
Set PEP8 options *'g:pymode_lint_options_pep8'*
|
|
>
|
|
let g:pymode_lint_options_pep8 =
|
|
\ {'max_line_length': g:pymode_options_max_line_length})
|
|
|
|
See https://pep8.readthedocs.org/en/1.4.6/intro.html#configuration for more
|
|
info.
|
|
|
|
Set Pyflakes options *'g:pymode_lint_options_pyflakes'*
|
|
>
|
|
let g:pymode_lint_options_pyflakes = { 'builtins': '_' }
|
|
|
|
Set mccabe options *'g:pymode_lint_options_mccabe'*
|
|
>
|
|
let g:pymode_lint_options_mccabe = { 'complexity': 12 }
|
|
|
|
Set pep257 options *'g:pymode_lint_options_pep257'*
|
|
>
|
|
let g:pymode_lint_options_pep257 = {}
|
|
|
|
Set pylint options *'g:pymode_lint_options_pylint'*
|
|
>
|
|
let g:pymode_lint_options_pylint =
|
|
\ {'max-line-length': g:pymode_options_max_line_length})
|
|
|
|
See http://docs.pylint.org/features.html#options for more info.
|
|
|
|
|
|
|
|
==============================================================================
|
|
3. Rope support ~
|
|
*pymode-rope*
|
|
|
|
Pymode supports Rope refactoring operations, code completion and code assists.
|
|
|
|
Commands:
|
|
|:PymodeRopeAutoImport| -- Resolve import for element under cursor
|
|
|:PymodeRopeModuleToPackage| -- Convert current module to package
|
|
|:PymodeRopeNewProject| -- Open new Rope project in current working directory
|
|
|:PymodeRopeRedo| -- Redo changes from last refactoring
|
|
|:PymodeRopeRegenerate| -- Regenerate the project cache
|
|
|:PymodeRopeRenameModule| -- Rename current module
|
|
|:PymodeRopeUndo| -- Undo changes from last refactoring
|
|
|
|
|
|
Turn on the rope script *'g:pymode_rope'*
|
|
>
|
|
let g:pymode_rope = 1
|
|
|
|
.ropeproject Folder ~
|
|
*.ropeproject*
|
|
|
|
*:PymodeRopeNewProject* [<path>] -- Open new Rope project in the given path
|
|
*:PymodeRopeRegenerate* -- Regenerate the project cache
|
|
|
|
Rope uses a folder inside projects for holding project configuration and data.
|
|
Its default name is `.ropeproject`. It is recommended that you do not add the
|
|
.ropeproject folder to version control system.
|
|
|
|
Currently it is used for things such as:
|
|
|
|
* The config.py file in this folder contains project configuration. Have
|
|
a look at the default config.py file (which is created when it
|
|
does not exist) for more information.
|
|
* It can be used for saving project history, so that the next time you open the
|
|
project you can undo past changes.
|
|
* It can be used to save information about object inferences.
|
|
* It can be used to save a global name cache, which is used for auto-import.
|
|
|
|
By default, if `.ropeproject` is not found in the current directory, rope will
|
|
look recursively for it in parent folders.
|
|
|
|
Warning: If rope finds `.ropeproject` in a parent dir, it will use it with
|
|
all its child directories, which may slow scanning down (because of many,
|
|
possibly unrelated, files)
|
|
|
|
Enable searching for |.ropeproject| in parent directories
|
|
*'g:pymode_rope_lookup_project'*
|
|
>
|
|
let g:pymode_rope_lookup_project = 0
|
|
|
|
You can also manually set the rope project directory. If not specified rope will
|
|
use the current directory.
|
|
*'g:pymode_rope_project_root'*
|
|
>
|
|
let g:pymode_rope_project_root = ""
|
|
|
|
|
|
The location of the `.ropeproject` folder may also be overridden if you wish to
|
|
keep it outside of your project root. The rope library treats this folder as a
|
|
project resource, so the path will always be relative to your project root (a
|
|
leading '/' will be ignored). You may use `'..'` path segments to place the
|
|
folder outside of your project root.
|
|
*'g:pymode_rope_ropefolder'*
|
|
>
|
|
let g:pymode_rope_ropefolder='.ropeproject'
|
|
|
|
|
|
|
|
Show documentation for element under cursor ~
|
|
|
|
Show documentation for object under cursor. *'g:pymode_rope_show_doc_bind'*
|
|
Leave empty to disable the key binding.
|
|
>
|
|
let g:pymode_rope_show_doc_bind = '<C-c>d'
|
|
|
|
Regenerate project cache on every save (if file has been modified)
|
|
>
|
|
let g:pymode_rope_regenerate_on_write = 1
|
|
|
|
------------------------------------------------------------------------------
|
|
4.1 Completion ~
|
|
*pymode-completion*
|
|
|
|
By default you can use <Ctrl-Space> for autocompletion. The first entry will
|
|
be automatically selected and you can press <Return> to insert the entry in
|
|
your code. <C-X><C-O> and <C-P>/<C-N> works too.
|
|
|
|
Autocompletion is also called by typing a period in |Insert| mode by default.
|
|
|
|
|
|
Turn on code completion support in the plugin *'g:pymode_rope_completion'*
|
|
>
|
|
let g:pymode_rope_completion = 1
|
|
|
|
Turn on autocompletion when typing a period
|
|
*'g:pymode_rope_complete_on_dot'*
|
|
>
|
|
let g:pymode_rope_complete_on_dot = 1
|
|
|
|
Keymap for autocomplete *'g:pymode_rope_completion_bind'*
|
|
>
|
|
let g:pymode_rope_completion_bind = '<C-Space>'
|
|
|
|
Extended autocompletion (rope could complete objects which have not been
|
|
imported) from project *'g:pymode_rope_autoimport'*
|
|
>
|
|
let g:pymode_rope_autoimport = 0
|
|
|
|
Load modules to autoimport by default *'g:pymode_rope_autoimport_modules'*
|
|
>
|
|
let g:pymode_rope_autoimport_modules = ['os', 'shutil', 'datetime']
|
|
|
|
Offer to unresolved import object after completion.
|
|
>
|
|
let g:pymode_rope_autoimport_import_after_complete = 0
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
4.2 Find definition ~
|
|
*pymode-rope-findit*
|
|
|
|
By default when you press *<C-C>g* on any object in your code you will be moved
|
|
to definition.
|
|
Leave empty for disable key binding. *'g:pymode_rope_goto_definition_bind'*
|
|
>
|
|
let g:pymode_rope_goto_definition_bind = '<C-c>g'
|
|
|
|
Command for open window when definition has been found
|
|
Values are (`e`, `new`, `vnew`) *'g:pymode_rope_goto_definition_cmd'*
|
|
>
|
|
let g:pymode_rope_goto_definition_cmd = 'new'
|
|
|
|
------------------------------------------------------------------------------
|
|
4.3 Refactoring ~
|
|
*pymode-rope-refactoring*
|
|
|
|
Rename method/function/class/variable in the project ~
|
|
|
|
Pymode can rename everything: classes, functions, modules, packages, methods,
|
|
variables and keyword arguments.
|
|
|
|
Keymap for rename method/function/class/variables under cursor
|
|
*'g:pymode_rope_rename_bind'*
|
|
>
|
|
let g:pymode_rope_rename_bind = '<C-c>rr'
|
|
|
|
|
|
Rename a current module/package ~
|
|
|
|
*:PymodeRopeRenameModule* -- Rename current module
|
|
|
|
Keymap for rename current module *'g:pymode_rope_rename_module_bind'*
|
|
>
|
|
let g:pymode_rope_rename_module_bind = '<C-c>r1r'
|
|
|
|
|
|
Imports ~
|
|
|
|
*:PymodeRopeAutoImport* -- Resolve import for element under cursor
|
|
|
|
Organize imports sorts imports, too. It does that according to PEP8. Unused
|
|
imports will be dropped.
|
|
Keymap *'g:pymode_rope_organize_imports_bind'*
|
|
>
|
|
let g:pymode_rope_organize_imports_bind = '<C-c>ro'
|
|
|
|
Insert import for current word under cursor *'g:pymode_rope_autoimport_bind'*
|
|
Should be enabled |'g:pymode_rope_autoimport'|
|
|
>
|
|
let g:pymode_rope_autoimport_bind = '<C-c>ra'
|
|
|
|
|
|
Convert module to package ~
|
|
*'g:pymode_rope_module_to_package_bind'*
|
|
|
|
*:PymodeRopeModuleToPackage* -- convert current module to package
|
|
|
|
Keybinding:
|
|
>
|
|
let g:pymode_rope_module_to_package_bind = '<C-c>r1p'
|
|
|
|
|
|
Extract method/variable ~
|
|
*pymode-rope-extract*
|
|
|
|
Extract method/variable from selected lines.
|
|
|
|
*'g:pymode_rope_extract_method_bind'*
|
|
*'g:pymode_rope_extract_variable_bind'*
|
|
>
|
|
let g:pymode_rope_extract_method_bind = '<C-c>rm'
|
|
let g:pymode_rope_extract_variable_bind = '<C-c>rl'
|
|
|
|
|
|
Use function ~
|
|
*pymode-rope-use*
|
|
|
|
It tries to find the places in which a function can be used and changes the
|
|
code to call it instead.
|
|
>
|
|
let g:pymode_rope_use_function_bind = '<C-c>ru'
|
|
|
|
|
|
Move method/fields ~
|
|
*pymode-rope-move*
|
|
|
|
It happens when you perform move refactoring on a method of a class. In this
|
|
refactoring, a method of a class is moved to the class of one of its
|
|
attributes. The old method will call the new method. If you want to change all
|
|
of the occurrences of the old method to use the new method you can inline it
|
|
afterwards.
|
|
>
|
|
let g:pymode_rope_move_bind = '<C-c>rv'
|
|
|
|
Change function signature ~
|
|
>
|
|
let g:pymode_rope_change_signature_bind = '<C-c>rs'
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
4.4 Undo/Redo changes ~
|
|
*pymode-rope-undo*
|
|
*pymode-rope-redo*
|
|
|
|
Commands:
|
|
|
|
*:PymodeRopeUndo* -- Undo last changes in the project
|
|
*:PymodeRopeRedo* -- Redo last changes in the project
|
|
|
|
|
|
==============================================================================
|
|
5. Syntax ~
|
|
*pymode-syntax*
|
|
|
|
Turn on pymode syntax *'g:pymode_syntax'*
|
|
>
|
|
let g:pymode_syntax = 1
|
|
|
|
Slower syntax synchronization that is better at handling code blocks in
|
|
docstrings. Consider disabling this on slower hardware.
|
|
*'g:pymode_syntax_slow_sync'*
|
|
>
|
|
let g:pymode_syntax_slow_sync = 1
|
|
|
|
Enable all python highlights *'g:pymode_syntax_all'*
|
|
>
|
|
let g:pymode_syntax_all = 1
|
|
|
|
Highlight "print" as a function *'g:pymode_syntax_print_as_function'*
|
|
>
|
|
let g:pymode_syntax_print_as_function = 0
|
|
|
|
Highlight "async/await" keywords *'g:pymode_syntax_highlight_async_await'*
|
|
>
|
|
let g:pymode_syntax_highlight_async_await = g:pymode_syntax_all
|
|
|
|
Highlight '=' operator *'g:pymode_syntax_highlight_equal_operator'*
|
|
>
|
|
let g:pymode_syntax_highlight_equal_operator = g:pymode_syntax_all
|
|
|
|
Highlight '*' operator *'g:pymode_syntax_highlight_stars_operator'*
|
|
>
|
|
let g:pymode_syntax_highlight_stars_operator = g:pymode_syntax_all
|
|
|
|
Highlight 'self' keyword *'g:pymode_syntax_highlight_self'*
|
|
>
|
|
let g:pymode_syntax_highlight_self = g:pymode_syntax_all
|
|
|
|
Highlight indent's errors *'g:pymode_syntax_indent_errors'*
|
|
>
|
|
let g:pymode_syntax_indent_errors = g:pymode_syntax_all
|
|
|
|
Highlight space's errors *'g:pymode_syntax_space_errors'*
|
|
>
|
|
let g:pymode_syntax_space_errors = g:pymode_syntax_all
|
|
|
|
Highlight string formatting *'g:pymode_syntax_string_formatting'*
|
|
*'g:pymode_syntax_string_format'*
|
|
*'g:pymode_syntax_string_templates'*
|
|
*'g:pymode_syntax_doctests'*
|
|
>
|
|
let g:pymode_syntax_string_formatting = g:pymode_syntax_all
|
|
let g:pymode_syntax_string_format = g:pymode_syntax_all
|
|
let g:pymode_syntax_string_templates = g:pymode_syntax_all
|
|
let g:pymode_syntax_doctests = g:pymode_syntax_all
|
|
|
|
Highlight builtin objects (True, False, ...) *'g:pymode_syntax_builtin_objs'*
|
|
>
|
|
let g:pymode_syntax_builtin_objs = g:pymode_syntax_all
|
|
|
|
Highlight builtin types (str, list, ...) *'g:pymode_syntax_builtin_types'*
|
|
>
|
|
let g:pymode_syntax_builtin_types = g:pymode_syntax_all
|
|
|
|
Highlight exceptions (TypeError, ValueError, ...)
|
|
*'g:pymode_syntax_highlight_exceptions'*
|
|
>
|
|
let g:pymode_syntax_highlight_exceptions = g:pymode_syntax_all
|
|
|
|
Highlight docstrings as pythonDocstring (otherwise as pythonString)
|
|
*'g:pymode_syntax_docstrings'*
|
|
>
|
|
let g:pymode_syntax_docstrings = g:pymode_syntax_all
|
|
|
|
|
|
==============================================================================
|
|
6. FAQ ~
|
|
*pymode-faq*
|
|
|
|
Python-mode doesn't work
|
|
------------------------
|
|
|
|
Open any python file and run ":call pymode#troubleshooting#test()",
|
|
fix the warning or send me the output.
|
|
|
|
|
|
Rope completion is very slow *pymode-rope-slow*
|
|
----------------------------
|
|
|
|
Rope creates a project-level service directory in |.ropeproject|
|
|
|
|
If ``.ropeproject`` is not found in the current directory, rope will walk
|
|
upwards looking for a ``.ropeproject`` in every dir of the parent path. If
|
|
rope finds ``.ropeproject`` in a parent dir, it sets the project for all child
|
|
dirs and the scan may be slow for so many dirs and files.
|
|
|
|
Solutions:
|
|
|
|
- Delete `.ropeproject` from the parent dir to make rope create `.ropeproject`
|
|
in the current dir.
|
|
- Run ``:PymodeRopeNewProject`` to make rope create ``.ropeproject`` in the
|
|
current dir.
|
|
- Set |'g:pymode_rope_lookup_project'| to 0 for prevent searching in parent
|
|
dirs.
|
|
|
|
You may also set |'g:pymode_rope_project_root'| to manually specify the project
|
|
root path.
|
|
|
|
|
|
|
|
Pylint check is very slow
|
|
-------------------------
|
|
|
|
In some projects pylint may check slowly, because it also scans imported
|
|
modules if possible. Try using another code checker: see
|
|
|'g:pymode_lint_checkers'|.
|
|
|
|
You may set |exrc| and |secure| in your |vimrc| to auto-set custom settings
|
|
from `.vimrc` from your projects directories.
|
|
|
|
|
|
OSX cannot import urandom
|
|
-------------------------
|
|
|
|
See: https://groups.google.com/forum/?fromgroups=#!topic/vim_dev/2NXKF6kDONo
|
|
|
|
The sequence of commands that fixed this:
|
|
>
|
|
brew unlink python
|
|
brew unlink macvim
|
|
brew remove macvim
|
|
brew install -v --force macvim
|
|
brew link macvim
|
|
brew link python
|
|
<
|
|
|
|
==============================================================================
|
|
7. Credits ~
|
|
*pymode-credits*
|
|
Kirill Klenov
|
|
http://klen.github.com/
|
|
http://github.com/klen/
|
|
|
|
Rope
|
|
Copyright (C) 2006-2010 Ali Gholami Rudi
|
|
Copyright (C) 2009-2010 Anton Gritsay
|
|
|
|
Pylint
|
|
Copyright (C) 2003-2011 LOGILAB S.A. (Paris, FRANCE).
|
|
http://www.logilab.fr/
|
|
|
|
Pyflakes:
|
|
Copyright (c) 2005 Divmod, Inc.
|
|
http://www.divmod.com/
|
|
|
|
PEP8:
|
|
Copyright (c) 2006 Johann C. Rocholl <johann@rocholl.net>
|
|
http://github.com/jcrocholl/pep8
|
|
|
|
autopep8:
|
|
Copyright (c) 2012 hhatto <hhatto.jp@gmail.com>
|
|
https://github.com/hhatto/autopep8
|
|
|
|
Python syntax for vim:
|
|
Copyright (c) 2010 Dmitry Vasiliev
|
|
http://www.hlabs.spb.ru/vim/python.vim
|
|
|
|
PEP8 VIM indentation
|
|
Copyright (c) 2012 Hynek Schlawack <hs@ox.cx>
|
|
http://github.com/hynek/vim-python-pep8-indent
|
|
|
|
|
|
==============================================================================
|
|
8. License ~
|
|
*pymode-license*
|
|
|
|
Python-mode is released under the GNU lesser general public license.
|
|
See: http://www.gnu.org/copyleft/lesser.html
|
|
|
|
If you like this plugin, I would very appreciated if you kindly send me a postcard :)
|
|
|
|
My address is: "Russia, 143500, MO, Istra, pos. Severny 8-3" to "Kirill Klenov".
|
|
Thanks for your support!
|
|
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
vim:tw=78:ts=8:ft=help:norl:
|