Vim - 使用搜索寄存器查找('f','t','F','T')命令

问题描述 投票:1回答:1

在Vim中有找到命令('f','t','F','T'),这些命令可以通过使用';'重复要么 ','。我希望能够通过使用'n'和'N'重复这些命令。基本上好像我使用了单词搜索('/')。

例如,当我输入'fa'时,我希望vim像我执行命令'/ a'一样。

我怎样才能做到这一点?

vim find command
1个回答
3
投票

您可以通过在vim配置中添加以下内容来完成此操作:

function! MyFind(c)
       execute "let @/ = '" . a:c . "'"
       return 'n'
endfunc

function! MyBackfind(c)
       execute "let @/ = '" . a:c . "'"
       return 'N'
endfunc

nnoremap <expr> f MyFind(nr2char(getchar()))
nnoremap <expr> F MyBackfind(nr2char(getchar()))

警告:

  • 不适用于t / T,虽然可以实施,但我会把这个任务留给你
  • F,它转到上一次出现的字母,但按n仍然会前进,它将做/搜索,而不是?搜索(两个使用相同的寄存器,我没有找到一种方法来创建一个?搜索,同样,我把它作为锻炼给你:-))

欲了解更多信息,请阅读:help <expr>

© www.soinside.com 2019 - 2024. All rights reserved.