共计 1484 个字符,预计需要花费 4 分钟才能阅读完成。
背景
- 这个说大不大说小不小的问题无论是在 Mac 上还是 Linux 上都已经在最近困扰过我好久了,印象中几年前曾经解决过一次, 最近又故态重发,刚好今天闲来无事 Google 一下,解决解决这个问题。
环境
- OS Linuxmint19.2
- Vim 8.0
参考
- http://eunsetee.com/eMJX
第一步
- 第一步呢,要先找到 vim 系统级的配置文件在哪里,因为要取消里面的几行关于打开文件跳转到上次光标所在处的代码注释,代码如下:
"Uncomment the following to have Vim jump to the last position when" reopening a file
if has("autocmd")
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif
上面的我已经把注释取消了,现在问题来了,这个系统级的 vim 配置在哪里呢,我们可以打开终端执行一下vim --version
,然后会看到输出里面有下面几行字:
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/share/vim"
可是当你 echo $VIM
的时候却没有任何输出,这时候我只能说 find
大法好了,我们执行下面的命令:
$ sudo find / -name vimrc
[sudo] password for sharp:
find:‘/proc/1501/task/1501/net’: Invalid argument
find:‘/proc/1501/net’: Invalid argument
/usr/share/vim/vimrc
/home/sharp/.vim/bundle/Vundle.vim/test/vimrc
find:‘/mnt/hgfs/D/System Volume Information’: Permission denied
find:‘/run/user/1000/doc’: Permission denied
find:‘/run/user/1000/gvfs’: Permission denied
/etc/vim/vimrc
很显然最后一行的路径是我们要找的系统级 VIM 配置文件,赶紧打开后取消上面提到的代码的注释吧。
第二步
- 做到这里,想必读者你以为已经做完了一切的工作,跃跃欲试的找个文件用 vim 打开两次看看第二次打开的时候光标有没有调到第一次退出的地方,很抱歉,对于笔者这里的情况来说,光标并没有跳转到我想要的位置,那问题出在哪里呢?其实是不知道什么原因,家目录下的有一个叫
.viminfo
的文件的属组被改为root:root
了,如下所示:
-rw------- 1 root root 3.2K Oct 27 22:33 .viminfo
这里呢,你只需要把它重新改为你自己的用户名就行了,比如我的是下面这个:
sudo chown sharp:sharp ~/.viminfo
做完这一步恭喜你,你再随便找个文件打开两次,第二次打开的时候光标一定在你第一次退出的地方了。
写在最后
有人知道为什么 .viminfo
的属组会被改成 root:root
了么,以及为什么把属组改正确后一切就正常了呢,还有以后怎么规避这个问题呢?如果有大佬知道欢迎在评论区留言哦~
正文完
发表至: Linux运维
2019-10-28