我将尝试编写一个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>
在这里,我折叠所有代码块,然后展开了很多代码块(比通常的好代码要多),然后将当前行居中。顺便说一下,你可以在此处查看它的演示 - http://ascii.io/a/1771
我不喜欢:norm! zozozozozozozozozo
这一行。是否有一个命令可以打开当前行周围的所有代码块而不移动光标?
%foldclose!
命令,你可以使用它来代替normal! zM
。在某些情况下,由于{range}
参数的存在,它更加有用。 - ZyX