Tim Chase at 2016/1/11 UTC+8 11:16:27AM wrote: > On 2016-01-10 17:59, jf...@ms4.hinet.net wrote: > > It lets you jump between the current cursor position and the line > > the upper level indentation start, something like the bracket > > matching in C editor. Because of Python use indentation as its code > > block mark, It might be helpful if we can jump between different > > level of it:-) > > While not quite what you're asking for, vim offers an "indent text > object" plugin[1] that allows you to use a block of indentation > around the cursor as an object. So you can use vim's grammar to issue > commands like "dai" to delete the current indentation-defined block; > or you can use ">ii" to add a level of indentation to the > indentation-defined block.
Thanks, Tim. I always admire people who can remember all those detail commands/parameters/options which a DOS-style editor as vim has. It's almost like a mission impossible to me:-( > If you want to make a vim mapping that will jump up to the top of the > previous level of indentation, the following should do the trick > > :nnoremap <expr> Q '?^'.repeat(' ', (strlen(substitute(getline('.'), > '\S.*', '', ''))-&sw)).'\S?e'."\<cr>" But, but... this line??? won't it goes too far for a human being to read? --Jach > There might be some edge-cases that I haven't caught there, but, as > long as you edit with spaces rather than tabs, it should work, > including the accommodation of your 'shiftwidth', even if it's not > PEP8 4-spaces-per-indent. > > -tkc > > [1] > https://github.com/michaeljsmith/vim-indent-object -- https://mail.python.org/mailman/listinfo/python-list