X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/dc48cc1a022fd9b4c7f9d1a360a9d4443f06cfe4..10228215c76da4004b5ac4b60cfdf94682ea6e22:/README.rst diff --git a/README.rst b/README.rst index 917b40a..1e3de55 100644 --- a/README.rst +++ b/README.rst @@ -2,71 +2,113 @@ vim-python-pep8-indent ====================== .. image:: https://travis-ci.org/hynek/vim-python-pep8-indent.png?branch=travis -:target: https://travis-ci.org/hynek/vim-python-pep8-indent + :target: https://travis-ci.org/hynek/vim-python-pep8-indent -This small script modifies vim_’s indentation behavior to comply with PEP8_ and -my aesthetic preferences: :: python +This small script modifies Vim_’s indentation behavior to comply with PEP8_ and my aesthetic preferences. +Most importantly:: -foobar(foo, - bar) + foobar(foo, + bar) -and :: python +and:: -foobar( - foo, - bar -) + foobar( + foo, + bar + ) -It was *not* originally written by me. I have found the script in vim’s `script -repo`_, however the indentation was off by one character in the first case. - -I fixed it with the help of `Steve Losh`_ and am putting it out here so you -don’t have to patch the original. The original patch is still available here_. - -While my Vimscript_ skills are still feeble, I intend to maintain it for now. -So feel free to report bugs, I’ll try to address them as well as I can, -provided they fit into the scope of this project. - -Unfortunately, I wasn’t able to reach any of the original authors/maintainers: -**David Bustos** and **Eric Mc Sween**. I’d like to thank them here for their -work and release it hereby to the *Public Domain*. If anyone with a say in this -objects, please let me know. Installation ------------ + Pathogen -######## -Follow the instructions on installing Pathogen_ and then :: +^^^^^^^^ + +Follow the instructions on installing Pathogen_ and then: + +.. code-block:: shell-session + + $ cd ~/.vim/bundle + $ git clone https://github.com/hynek/vim-python-pep8-indent.git -cd ~/.vim/bundle -git clone https://github.com/hynek/vim-python-pep8-indent.git Vundle -###### +^^^^^^ -Follow the instructions on installing Vundle_ and add the appropriate -plugin line: :: +Follow the instructions on installing Vundle_ and add the appropriate plugin line into your ``.vimrc``: + +.. code-block:: vim + + Plugin 'hynek/vim-python-pep8-indent' -Plugin 'hynek/vim-python-pep8-indent` NeoBundle -######### +^^^^^^^^^ + +Follow the instructions on installing NeoBundle_ and add the appropriate NeoBundle line into your ``.vimrc``: + +.. code-block:: vim + + NeoBundle 'hynek/vim-python-pep8-indent' + + +Configuration +------------- + +python_pep8_indent_multiline_string +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Follow the instructions on installing NeoBundle_ and add the appropriate -NeoBundle line: :: +You can configure the initial indentation of multiline strings using ``g:python_pep8_indent_multiline_string`` (which can also be set per buffer). +This defaults to ``0``, which means that multiline strings are not indented. +``-1`` and positive values will be used as-is, where ``-1`` is a special value for Vim's ``indentexpr``, and will keep the existing indent (using Vim's ``autoindent`` setting). +``-2`` is meant to be used for strings that are wrapped with ``textwrap.dedent`` etc. It will add a level of indentation if the multiline string started in the previous line, without any content in it already:: -NeoBundle 'hynek/vim-python-pep8-indent` + testdir.makeconftest(""" + _ -### Notes +With content already, it will be aligned to the opening parenthesis:: -Please note that Kirill Klenov’s [python-mode][python_mode]ships its own version -of this bundle. Therefore, if you want to use this version specifically, -you’ll have to disable python-mode’s using :: + testdir.makeconftest("""def pytest_addoption(parser): + _ + +Existing indentation (including ``0``) in multiline strings will be kept, so this setting only applies to the indentation of new/empty lines. + + +Notes +----- + +Please note that Kirill Klenov’s python-mode_ ships its own version of this bundle. +Therefore, if you want to use this version specifically, you’ll have to disable python-mode’s using: + +.. code-block:: vim + + let g:pymode_indent = 0 + + +License and Authorship +---------------------- + +This script is based on one from Vim’s official `script repo`_ that was *not* originally written by me. +Unfortunately the indentation was off by one character in one case and the script hasn’t been updated since 2005. + +Even more unfortunately, I wasn’t able to reach any of the original authors/maintainers: +**David Bustos** and **Eric Mc Sween**. + +So I fixed the annoyance with the help of `Steve Losh`_ and am putting it out here so you don’t have to patch the original yourself. +The original patch is still available here_. + +Over the time a lot more improvements have been contributed_ by `generous people`_. + +I’d like to thank the original authors here for their work and release it hereby to the *Public Domain* (using the CC0_ licence) since I hope that would be in their spirit. +If anyone with a say in this objects, please let me_ know immediately. +Also, if someone is in contact with one of them, I would appreciate being introduced. + +While my Vimscript_ skills are still feeble, I intend to maintain it for now. +This mainly means that I’ll triage through bugs and pull requests but won’t be fixing much myself. -let g:pymode_indent = 0 -.. _vim: http://www.vim.org/ +.. _Vim: http://www.vim.org/ .. _PEP8: http://www.python.org/dev/peps/pep-0008/ .. _`script repo`: http://www.vim.org/scripts/script.php?script_id=974 .. _`Steve Losh`: http://stevelosh.com/ @@ -76,3 +118,7 @@ let g:pymode_indent = 0 .. _python-mode: https://github.com/klen/python-mode .. _`Vimscript`: http://learnvimscriptthehardway.stevelosh.com/ .. _vundle: https://github.com/gmarik/Vundle.vim +.. _me: https://hynek.me/ +.. _CC0: http://creativecommons.org/publicdomain/zero/1.0/ +.. _contributed: https://github.com/hynek/vim-python-pep8-indent/blob/master/CONTRIBUTING.rst +.. _`generous people`: https://github.com/hynek/vim-python-pep8-indent/graphs/contributors