On Tue, 26 Oct 2010, Andy Wokula wrote:

Am 26.10.2010 19:28, schrieb Benjamin R. Haskell:
When searching through files, I'd like to have "context" in the sense that 'scrolloff' provides. But I don't want it for normal editing.

E.g. I'd like to be able to manually scroll such that the cursor is on the last line of the window, but when jumping around via 'n', I don't ever want to end up on the last line.

Is there such an option already?

If not, how could I simply wrap the built-in normal mode 'n' command with a save-and-restore of 'so'?

First attempt: (guessing it fails because of calling feedkeys from w/in
a mapping?)

fun! NoEndJump()
    let so=&l:so
    call feedkeys('n','n')
    let &l:so=so
endfun
nnoremap n <C-O>:call NoEndJump()<CR>

Smoked too much of that 'scrolloff' thing?
   :nnoremap n nzz

I do have a tendency to run with things a bit too far. :-)

Your solution's close, but no cigar. It accomplishes my goal (not ending up on the last line of the window) by always ending up in the middle of the screen (which will never be the bottom). But, I only want any scrolling at all if the next match is off-screen. (Which works right with 'so' enabled.)

Running with your solution, this is what I was looking for:

:nnoremap n nzv3j3k

(zv ensures folds are open after landing at the search destination, and the jk sequence ensures there are at least three lines visible below the search match)

--
Thanks much,
Ben

--
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

Reply via email to