我已将寻呼机从less
切换到vimpager
,因为vim会响应鼠标滚轮。
然而,最近在通过编译更新版本的vim 7.3来更新我的vim设置并添加了一系列令人敬畏的插件之后,当我尝试使用n
和{来搜索联机帮助页中的文本时,vimpager不再做任何逻辑操作{1}}。
这非常糟糕,所以我开始使用N
追溯绑定。
来自vimpager脚本(/usr/local/share/vim/vim73/macros/less.vim):
:verbose map
我得到的最后一个,这很有道理。但是这个" 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>
是完全不可穿透的。
它到底在做什么?
P.S。通过将这两个函数H$nzt<SID>L
和s:Forward()
转换为空的无操作函数,我得到了我的回顾。所以我已经准备好了,但这些东西做了什么?
答案 0 :(得分:0)
您可以使用less
中的滚轮。
总之...
H "puts the cursor on the first printable character
"of the first visible line of the window.
$ "moves the cursor to the end of that line
n "moves the cursor on the next match
zt "scrolls the current line at the top of the window
<SID>L "executes the L mapping defined in the current script
整件事看起来有点令人费解,试图让Vim的n
像[{1}} less
一样工作。