Python folding in Vim

2009-05-22 12:59; Tags: ,

There are several ftplugins at www.vim.org that fold python code. I could have used one of them and be happy but the burden of my ex-prog-life leads me to my own wheel to be reinvented.

Brief description

  • Folds are created for:
    • let g:python_fold_block = "all" — all python code blocks;
    • let g:python_fold_block = "def" — defs and classes. [DEFAULT]
  • The way empty lines are folded controlled by g:python_fold_keep_empty_lines variable:
    • let g:python_fold_keep_empty_lines = "all" — keep empty lines between code blocks; [DEFAULT]
    • let g:python_fold_keep_empty_lines = "top" — keep empty lines between top level code blocks;
    • let g:python_fold_keep_empty_lines = "top-one" — keep one empty line between top level code blocks;
    • let g:python_fold_keep_empty_lines = "one" — keep one empty line between code blocks.
  • Comment’s folding:
    • let g:python_fold_comments = 1 — fold comments; [DEFAULT]
    • let g:python_fold_comments = 0 — do not fold comments.
  • Import’s folding:
    • let g:python_fold_imports = 1 — fold imports; [DEFAULT]
    • let g:python_fold_imports = 0 — do not fold imports.
  • Docstring’s folding:
    • let g:python_fold_docstrings = 1 — fold docstrings; [DEFAULT]
    • let g:python_fold_docstrings = 0 — do not fold docstrings.

Screenshots

p_fold_all
let g:python_fold_keep_empty_lines = "all"
p_fold_top
let g:python_fold_keep_empty_lines = "top"
p_fold_top-one
let g:python_fold_keep_empty_lines = "top-one"
p_fold_one
let g:python_fold_keep_empty_lines = "one"

Install

  1. Download python.vim
  2. Place python.vim to
    • Windows: ~/vimfiles/ftplugin/
    • Linux: ~/.vim/ftplugin/

Note: Folding is shiftwidth dependent. If a code indented with 2 spaces make sure shiftwidth is 2 spaces too.

PS: It works for me and it may work for you too despite evil bugs that could live in it. ;)

Йога

2009-05-18 10:44; Tags:

Я долго сопротивлялся, но вода камень точит. Затащили меня на йогу. Йога названа по имени мудрого старца индуса — Айенгара.

Тусклый зал, коврики, фотография мудрого старца в рамочке на самом видном месте — привет мудрому старцу из японии Морихею Уэс(ш)ибе. Я, если честно, думал, что перед началом нам всем скажут ему поклониться, ан нет. Не сказали.

Помимо меня было еще 2 мужика и, примерно, 20 особ женского пола разного возраста.
Делали разное: собака смотрит вверх, воин смотрит вперед, какой-то «магический» треугольник и прочие асаны-шмасаны.

Я — мало-гнущийся, плохо-растягивающийся мужчина. Мне как-то не особо понравилось. И еще 3 раза не особо понравится.

vimwiki 0.9.2, 0.9.2a, 0.9.2b

2009-05-04 12:17; Tags: ,

This weekend new version of vimwiki was released. And right after it a small fix was done this monday — many thanks to (annoying) dos line endings.

upd. .vba file still has dos CRLFs. The problem is in my new deployment script written in python. I will upload new .vba as soon as I am next to my computer.
upd2. Now there is vimwiki 0.9.2b with a couple of fixes and without dos lineendings.

0.9.2b

  • FIX: Installation on Linux doesn’t work. (Dos line endings in Vimball archive file).
  • FIX: Clear out FlexWiki ftplugin’s setup. Now you don’t have to hack filetype.vim to get rid of unexpected ‘:setlocal bomb’ from FlexWiki’s ftplugin.
  • FIX: When write done: it will show another done: in html file.

0.9.2a

  • FIX: Remove dos line endings from some files.

0.9.2

  • NEW: Option ‘folding’ added to turn folding on/off.
  • NEW: Header text object. See :h vimwiki-text-objects.
  • NEW: Add/remove Header levels with ‘=’ and ‘-’. See :h vimwiki_=.
  • NEW: Vimwiki GUI menu to select available wikies. See :h g:vimwiki_menu.
  • NEW: You can specify the name of your css file now. See :h vimwiki-option-css_name.
  • NEW: You can add styles to image links, see :h vimwiki-syntax-links.
  • FIX: History doesn’t work after :VimwikiRenameWord.
  • FIX: Some of wikipedia links are not correctly highlighted. Links with parentheses.
  • MISC: Renamed vimwiki_gtd to vimwiki_lst.

Get it from vimwiki downloads list.

Powered by WordPress