【问题标题】:mapping the 'n' key in vim while not searching不搜索时在vim中映射'n'键
【发布时间】:2011-04-21 15:55:13
【问题描述】:

是否可以在不覆盖它们用于浏览搜索结果的时间的情况下映射“n”和“N”键?

【问题讨论】:

    标签: vim key mapping


    【解决方案1】:

    基本上,您可以在任何给定时间搜索某些内容,因此在正常模式下重新映射n 而不进行修改将覆盖略读。

    经过一番考虑,如果你总是用<C-l> 退出搜索(清除突出显示,我不确定这是否是默认设置),你确实可以使用一些额外的辅助函数来做这样的事情:

    /,?,*:
     --> set s:searching = true
         and do the builtin things
    
    <C-l>:
     --> set s:searching = false
         and do the builtin things
    
    n,N:
     --> if s:searching then use the builtin n
         else activate your own functionality 
    

    【讨论】:

    • 为什么是v:searching?你不能在最新的 vim 中设置这个变量(早期的有一个错误,可以让你将元素添加到 v: 字典)。我想你应该把它改成s:searching
    • @ZyX:你是完全正确的。无法立即回忆起前缀。
    【解决方案2】:

    是的,您可以在特定模式下映射键。您可以阅读documentation for map 以了解所有可用选项来微调您的映射。

    具体来说,the map-overview 获取映射列表以及它们使用的模式。

    【讨论】:

    • 确实如此,但就他的问题而言,他在搜索下一个/上一个时会处于正常模式。我相信,在正常模式下覆盖 n/N 键会破坏搜索略读。
    • 是的,我只是认为“不覆盖使用时间”的意思是“不覆盖正常模式”
    猜你喜欢
    • 2014-09-10
    • 1970-01-01
    • 2010-10-20
    • 2016-04-21
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    相关资源
    最近更新 更多