用点重复最后一次函数调用

时间:2013-09-03 20:04:06

标签: vim

我写了一个小函数,并添加了一个地图,跳转到下一行,与当前行中的两个第一个字符不匹配:

function! JumpToNextNonMatching()
  let curr_line = getline('.')
  let spattern = '^[^' . curr_line[0] . '][^' . curr_line[1] . ']'
  call search(spattern)
endfunction
nnoremap ,n :<C-U>call JumpToNextNonMatching()<CR><C-L>

所以,如果我点击,n,它将跳转到与条件不匹配的下一行。我想使用repeat.vim插件使用.重复此操作,即跳转到与条件不匹配的下一行。

如何使用上面提到的插件执行此操作,或者我可以使用更好的替代方法吗?

1 个答案:

答案 0 :(得分:2)

你应该告诉我们你到底在做什么。使用repeat.vim不需要进行很多更改:

  1. 您需要引入一个中间<Plug>映射,以便重复调用。
  2. 您需要在命令执行结束时使用插件注册映射。
  3. 你在这里:

    function! JumpToNextNonMatching()
        let curr_line = getline('.')
        let spattern = '^[^' . curr_line[0] . '][^' . curr_line[1] . ']'
        call search(spattern)
    
        silent! call repeat#set("\<Plug>JumpToNextNonMatching")
    endfunction
    nnoremap <Plug>JumpToNextNonMatching :<C-U>call JumpToNextNonMatching()<CR><C-L>
    nmap ,n <Plug>JumpToNextNonMatching
    
相关问题