You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vim如何将多次重复<cr>的键位映射简写为<cr>*4格式

Vim插入模式映射重复按键简化方案

Vim 原生的inoremap类映射命令本身不支持<cr>*4这种乘法简写语法,原生要求按键序列必须平铺书写,可通过以下方案实现类似的简化效果:

  • 无插件原生实现(最常用)
    使用表达式映射搭配内置repeat()函数即可,示例配置如下:
    inoremap <expr> <C-S-Tab> repeat('<cr>', 4)
    
    说明:<expr>标记表示映射的右值是一个Vim表达式,执行时会取表达式的返回值作为实际触发的按键序列;repeat('<cr>',4)会直接生成4个连续的<cr>字符串,效果和手动书写4个<cr>完全一致,修改重复次数只需调整第二个参数即可,维护成本更低。
  • 自定义语法支持(适合大量同类映射场景)
    如果你确实需要使用<cr>*4的简写格式写配置,可以自己封装一个自定义的映射创建函数,解析*后缀的重复标记,自动生成对应的按键序列,示例封装代码如下:
    function! s:MapWithRepeat(mode, lhs, rhs, opts)
      let rhs = substitute(a:rhs, '\v<([^>]+)>\*(\d+)', '\=repeat("<".submatch(1).">", str2nr(submatch(2)))', 'g')
      execute a:mode.'noremap '.(a:opts ?? '').' '.a:lhs.' '.rhs
    endfunction
    " 使用示例
    call s:MapWithRepeat('i', '<C-S-Tab>', '<cr>*4')
    

内容的提问来源于stack exchange,提问作者Ng Lok Chun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:24:05