On 2012-01-22, Benjamin R. Haskell wrote: > For an explanation: It seems to me that it's an accident of > implementation. The Vim-internal key names I see mapped to nv_down > (the function that implements moving downward some number of lines) > in src/normal.c are: > > NL, Ctrl_M, Ctrl_N, '+', 'j', and K_DOWN > > In nv_down, the first thing it checks is whether MOD_MASK_SHIFT is > set. In the comment, it indicates that it's checking for <S-Down>, > which gets translated to "page down" (nv_page) rather than "line > down".
Very good. I was looking for something more explicit in the code and missed that. > My guess is that GUI versions of Vim, where Enter != Shift-Enter, it > also catches Shift + NL. > > It doesn't catch 'J' because that's a different function (nv_join). > I'm not sure why it doesn't catch Ctrl_M, Ctrl_N, or '+'. Again, > hypothesizing, probably because Ctrl+letter is already weird in Vim, > so there's possibly special handling for it somewhere else (which > doesn't pass Ctrl+Shift+letter to the function). > > 'Shift-+' is hard to type on QWERTY (where '+' already requires > 'Shift'). But xmodmap'ing it to something without Shift, it still > doesn't get caught. If I use gvim, set the NumLk on my ThinkPad keyboard, and use the + on the numeric keypad, + scrolls down one line and Shift-+ scrolls down one page, as you thought it would. Assuming that the behavior of Shift-Enter should be documented along with <S-Up>, <PageUp> and CTRL-B, should the key combination be spelled <S-Enter> or <S-CR>? The latter appears when typing Ctrl-K Shift-Enter and either can be used on the lhs of a mapping. I hesitate to document Shift-+ because it's not likely to be encountered on the keyboards I'm familiar with and could be difficult to explain. Maybe, "On keyboards where + is not already a shifted key, Shift-+ will also scroll forward one page." Regards, Gary -- 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
