代码之家  ›  专栏  ›  技术社区  ›  Kartikey Tanna

.vimrc中的regex抛出“not an editor command”

vim
  •  1
  • Kartikey Tanna  · 技术社区  · 6 年前

    我正试图创建一个keybinding来删除文件中的所有注释行。

    下面给出了我想要的结果 :g/^\(#\|$\)/d

    我声明约束如下 ~/.vimrc

    nnoremap <leader>dcl :g/\v^(#|$)/d<cr>
    

    它正在引发以下错误:

    E492: Not an editor command: $)/d<cr>
    

    用regex声明键绑定的正确方法是什么?

    1 回复  |  直到 6 年前
        1
  •  8
  •   yolenoyer    6 年前

    将绑定替换为:

    nnoremap <leader>dcl :g/\v^(#<bar>$)/d<cr>
    

    实际上,在脚本或命令行中,vim考虑 | 作为命令分隔符的字符;因此必须将其替换为 <bar> .