【发布时间】:2019-07-27 18:48:18
【问题描述】:
由于某种原因,vim 不保存当前缓冲区的光标位置。例如,如果我打开了 3 个缓冲区(选项卡)
foo | bar* | foobar
并且选择了“bar”,退出时vim将光标位置保存到"标记“foo”和“foobar”而不是“bar”。退出前始终是当前选中的缓冲区,无论是否有其他缓冲区。以下是我关闭 vim 会话后 ~/.local/share/shada/main.shada 文件的外观示例:
Local mark with timestamp 2019-07-27T21:29:30:
% Key Description Value
+ f file name "/home/damage/tmp/foo"
+ n name '"'
+ l line number 10
+ c column 0
Local mark with timestamp 2019-07-27T21:29:30:
% Key Description Value
+ f file name "/home/damage/tmp/bar"
+ n name '"'
+ l line number 1
+ c column 0
Local mark with timestamp 2019-07-27T21:29:30:
% Key Description Value
+ f file name "/home/damage/tmp/foobar"
+ n name '"'
+ l line number 20
+ c column 0
当前缓冲区的标记" 始终为1。当我使用命令m" 强制vim 将光标位置显式保存到" 标记时,此信息会在退出时丢失。不知道从哪里开始。
shada=!,'10,/100,:100,<0,@1,f1,h,s1,%10
【问题讨论】:
-
读者注意:shada 是一个 nvim-ism 替代 viminfo 文件。它们相似但不同。
shada控制保存的内容,f1表示保存所有标记。 -
OP:你考虑过在 neovim 的 github 上提交 issue 吗?
-
我想我可以。我以为我的文档有问题,因为
shada选项中有很多设置。你的 vim 配置是否保存了光标位置? -
是的:在 github 上查看我的 Dotfiles。我是我的 vimrc,我
set viminfo+=f1。然后我使用自动命令恢复光标位置(在 plugin/lastpos.vim 中)。 -
感谢您的配置。我的设置也因 vim 失败,所以我会先尝试使用您的配置对其进行测试。