繁体   English   中英

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

[英]Vim - Use search register for find ( 'f', 't', 'F', 'T' ) commands

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

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

我怎样才能做到这一点?

您可以通过在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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM