On Friday, August 16, 2013 7:00:15 AM UTC-7, David Fishburn wrote:
> On Fri, Aug 16, 2013 at 9:32 AM, Jürgen Krämer <[email protected]> wrote:
> 
> 
> 
> Hi,
> 
> 
> 
> 
> Reckoner wrote:
> 
> >
> 
> > I'm using vim 7.3 on windows 8.
> 
> >
> 
> > Is there a way to setup a normal mode mapping where if I hit <enter> on a 
> > folded section, it will open that section (as in zO). The trick is that I 
> > only want that mapping to work *while on a folded line* and not otherwise  
> > map <enter> elsewhere.
> 
> 
> >
> 
> > Possible?
> 
> 
> 
> use the following mapping:
> 
> 
> 
>   nnoremap <expr> <cr> foldclosed(line('.')) == -1 ? "\<cr>" : "zO"
> 
> 
> 
> 
> Reckoner,
> 
> 
> I use the following for mine (using the space bar, not the enter key):
> 
> nnoremap  <silent> <space> :exe 'silent! normal! '.((foldclosed('.')>0)? 
> "zMzxzt" : 'zc')<cr>
> 
> 
> 
> Which came originally from Vim Tip 108, which when moved to the wiki is now 
> part of:
> http://vim.wikia.com/wiki/Folding 
> 
> 
> 
> And of course changes from discussions on this list.
> 
> 
> Whether that helps or not.
> You can try both in different scenarios, when the fold is in different spots 
> (top of window, bottom, middle and so on).
> 
> 
> 
> David

Thanks for all the great tips and the reference link. I wound up using:

   nnoremap <expr> <s-cr> foldclosed(line('.')) == -1 ? "\<cr>" : "zA" 
   nnoremap <expr> <cr>   foldlevel(line('.'))  ? "za" : "\<cr>"

BTW, is there a way to set the foldlevel using a mapping? I use the 
SimpylFold plugin, which is great, but automatically sets the foldlevel to 
expr, which prohibits me from manually folding.

Thanks!


-- 
-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to