Vim最后位置标记仅适用于Sudo

时间:2017-11-08 03:14:59

标签: vim

在新安装的Ubuntu 16.04.3 LTS上,我遇到了vim跳转到文件重新打开的最后位置的问题。出于某种原因,标记'"仅在我执行sudo vim file时有效,否则无效。因此,我的vimrc文件(/ etc / vim)中的以下内容没有做任何事情

if has("autocmd")
   au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

但是这行适用于sudo vi file?我已经在这里待了几个小时了,这真让我很烦。这适用于其他机器虽然(没有sudo),例如Mac我有。

1 个答案:

答案 0 :(得分:4)

文件中的最后一个位置存储在标记中。标记保存在~/.viminfo中。如果您的主目录中有.viminfo由其他用户拥有,则vim无法写入。

在您的情况下,您拥有root ~/.viminfo。正在运行sudo vim因为vim以root身份运行,但普通用户没有权限更新文件。

删除root拥有的~/.viminfo,清除vim在下次运行时重新创建文件的方式,这次是普通用户。