0

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

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 插件来.重复这个操作,即跳转到不符合条件的下一行。

我如何使用提到的插件来做到这一点,或者我可以使用更好的替代品吗?

4

1 回答 1

2

你应该告诉我们你到底在挣扎什么。使用 repeat.vim 不需要很多改动:

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

给你:

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
于 2013-09-04T15:30:13.940 回答