为什么在定义寄存器项后我无法保存我的`_vimrc`?

时间:2015-04-24 00:43:30

标签: vim

添加以下注册商定义后,我无法再保存_vimrc

let @m = "V}k:s/ /\&/gV{j,tt$b${j$yV}k:s/\&kbkb&/ /kbkb/g"

这是完整的错误图片。 事实证明,我在_vimrc中的定义并未在stackoverflow上精确显示。我在编辑框中看到的就是这篇文章的最后部分。

enter image description here

编辑框:enter image description here

奇怪的是,评论它也没有帮助!我仍然无法保存_vimrc。错误信息应相同。

1 个答案:

答案 0 :(得分:0)

_vimrc中的以下设置导致了问题:

 set set encoding=utf-8

这个设置本身并不邪恶,但(我猜)它会导致通过键盘输入的所有键击编码方式不同。 Vim不喜欢它。

因此,当我录制宏时,在保持此类设置处于活动状态时,Vim正在录制仅与utf-8兼容的内容。然后,当我尝试将宏捕获的内容分配给某个寄存器项时,Vim对于那些奇怪的键击编码"错误地"感到困惑。

简而言之:

  1. 记录将encoding设置为默认值的宏(注释掉现有的编码规范);

  2. 从寄存器粘贴到_vimrc,定义应为

    let @g = "{}{jV}k:s/ /\&/gV{j,tt$^M{j$yV}k:s/&//g^M"
    
  3. 或者,在视觉上_vimrc如下: enter image description here