我已将寻呼机从 切换less
到 ,vimpager
因为 vim 响应鼠标滚轮。
n
但是最近在通过编译更新版本的 vim 7.3 并添加了一系列很棒的插件来更新我的 vim 设置后,当我尝试使用and搜索联机帮助页中的文本时,vimpager 不再做任何合乎逻辑的事情N
。
这真的很糟糕,所以我开始使用:verbose map
.
从 vimpager 脚本(/usr/local/share/vim/vim73/macros/less.vim):
" Search
noremap <script> / H$:call <SID>Forward()<CR>/
if &wrap
noremap <script> ? H0:call <SID>Backward()<CR>?
else
noremap <script> ? Hg0:call <SID>Backward()<CR>?
endif
fun! s:Forward()
" Searching forward
noremap <script> n H$nzt<SID>L
if &wrap
noremap <script> N H0Nzt<SID>L
else
noremap <script> N Hg0Nzt<SID>L
endif
cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
endfun
fun! s:Backward()
" Searching backward
if &wrap
noremap <script> n H0nzt<SID>L
else
noremap <script> n Hg0nzt<SID>L
endif
noremap <script> N H$Nzt<SID>L
cnoremap <silent> <script> <CR> <CR>:cunmap <lt>CR><CR>zt<SID>L
endfun
call s:Forward()
" Quitting
noremap q :q<CR>
我得到的最后一个,它很有意义。但这H$nzt<SID>L
是完全不可理解的。
它到底在做什么?
PS我已经通过将这两个函数转换为空的无操作函数来恢复我的s:Forward()
搜索s:Backward()
。所以我已经准备好了,但是这些东西有什么作用呢?