The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Tip 1014 Printable Monobook Previous Next
created 2005 · complexity basic · author Robert Schols · version 5.7
This command will make a visual selection of the lines that have the same indent level or more as the current line.
:exe "normal V" | let temp_var=indent(line(".")) | while indent(line(".")+1) >= temp_var | exe "normal j" | endwhile
Comments
A slight modification, to select the area above the cursor position as well, and the whole thing wrapped in a function (and nmapped to <Space>):
function! SelectIndent () let temp_var=indent(line(".")) while indent(line(".")-1) >= temp_var exe "normal k" endwhile exe "normal V" while indent(line(".")+1) >= temp_var exe "normal j" endwhile endfun nmap <Space> :call SelectIndent()<CR>
Currently, I just :set foldmethod=indent
and select the folded area.
I believe this function might be better.
function SelectIndent() let cur_line = line(".") let cur_ind = indent(cur_line) let line = cur_line while indent(line - 1) >= cur_ind let line = line - 1 endw exe "normal " . line . "G" exe "normal V" let line = cur_line while indent(line + 1) >= cur_ind let line = line + 1 endw exe "normal " . line . "G" endfunction nnoremap vip :call SelectIndent()<CR>
--February 23, 2013
- Thanks, but any chance of mentioning why it is better? JohnBeckett (talk) 23:42, February 23, 2013 (UTC)