Vimpager剧本:非常神秘

时间:2013-05-16 04:34:33

标签: vim

我已将寻呼机从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>Ls:Forward()转换为空的无操作函数,我得到了我的回顾。所以我已经准备好了,但这些东西做了什么?

1 个答案:

答案 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一样工作。