我正在尝试编写一个vim函数,它会折叠除当前行/块/方法之外的所有内容.
这是我已经写的:
set foldemethod=indent
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" FOCUS ON BLOCK OF CODE (fold everything else)
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
function! FocusOnBock()
:normal! zM " close all folds
:normal! zozozozozozozozozo " I hope enough to open all nested folds :)
:normal! zz " center the current line
endfunction
:command! FocusOnBock :call FocusOnBock()
:map <leader>F :FocusOnBock<CR>
Run Code Online (Sandbox Code Playgroud)
在这里,我关闭所有折叠,然后打开多个折叠(通常存在于良好的代码中),然后我将当前行居中.顺便说一句,你可以看到它在行动 - http://ascii.io/a/1771
我不喜欢:norm! zozozozozozozozozo行.是否有命令在不移动光标的情况下打开当前行周围的所有折叠?