为什么 VIM 不跨会话存储宏?

为什么 VIM 不跨会话存储宏?

在 Ubuntu Server 12.04.1 上的 VIM 7.3 中,VIM 在关闭后会忘记宏和寄存器。我确实有set nocompatible.vimrc命令:set viminfo?给出了以下结果:

viminfo='100,<50,s10,h

什么可能会阻止宏和寄存器在关闭/打开过程中被存储?

请注意,我对将映射存储在 中以供长期使用不感兴趣.vimrc。相反,有时(例如在重构期间)我需要对一些文件执行简单操作,我发现在 VIM 中执行操作比在 Perl 中更容易。我只需要存储在 open/close 中的宏和寄存器,我确实在其他服务器上工作。

谢谢。

答案1

宏与(命名的)寄存器相同。您可以使用以下 shell 命令检查寄存器内容是否实际存储:

less +/Registers: ~/.viminfo

另外,(例如,当你执行完后sudo vim还没有文件时.viminfo),viminfo 文件可能对你的使用者不可写,所以你的更改将不再存在;请检查

ls -l ~/.viminfo

您的用户是文件所有者并且权限正确。(使用chown/修复chmod。)

相关内容