vim 是一个非常好的文本编辑工具,一般我用来写 Python 代码的配置如下:

set nu
set smartindent
set tabstop=4
set shiftwidth=4
set expandtab
set softtabstop=4
set autoindentau BufReadPost * if line("'\"") > 0|if line("'\"") <= line("$")|exe("norm '\"")|else|exe "norm $"|endif|endif

最后一行的作用就是当你编辑之前打开过的文件的时候,光标会默认回到上一次编辑的地方。
如上配置都写在 /home/hunter/ 目录下的 .vimrc,其中,hunter 为你的登录用户名。

但是,后来我新安装了个 Ubuntu系统,按照如上配置之后,再次使用 vim 编辑文件的时候,光标却总是移到第一行。

为什么上述代码不起作用了呢?

首先我们来搞清楚一下当 vim 工作的时候它的流程是什么?
当我们使用 vim 打开一个文件,它会 读取 /home/user/.viminfo 这个文件,获取我们上次打开的文件退出的相关信息,比如停留的行数。

然后,我们再去看一下 /home/user/.viminfo 这个文件, 使用命令:

ls -l

查看,发现权限都是 root 用户的,也就是说,当我们直接使用 vim test.py 这个操作的时候,使用的是 hunter 这个用户,然后导致上一次关闭文件的信息读取失败,所以也就造成了光标不能回到上次编辑的地方。

知道问题在哪了,解决就很简单了,把 .viminfo 这个文件更改一下权限就可以了。

sudo chmod 777 .viminfo

再次打开文件,就能回到上次文本编辑的地方了。

vim 打开文件默认回到上次编辑的地方相关推荐

  1. vim打开文件跳转到上次编辑的位置

    au BufReadPost * if line("'\"") > 0|if line("'\"") <= line(" ...

  2. 使用vim打开文件的16进制形式,编辑和全文替换

    1.先用vim打开文件的二进制形式,如果不以二进制可能会产生转换错误. vim -b file-to-open.dat 2.用xxd把文件转换成十六进制格式 :%!xxd 现在就可以对待普通文本一样查 ...

  3. vim 打开文件乱码

    乱码产生原因 MAC 系统locale是utf-8 ,但编辑的文件是GB2313或GBK 形式(例如 windows 记事本的默认保存形式),终端类型为utf-8(客户端是 putty 类的 Unic ...

  4. linux下vim 打开文件方式

    vim 打开文件方式 linux下使用vim打开文件可以使用两种方法: 一,  直接使用vim     XXX.txt   打开文件为xxx.txt的文件 二,在已经进入vim之后,要打开新的文件: ...

  5. linux vim m,关于linux中使用vim打开文件出现^M的解决方法

    在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件.我们会发现文件的每行结尾都会有一个^M符号,这是因为 DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致, 各 ...

  6. vim 打开文件 gb2312 (Linux下为cp936)

    vim 打开文件 gb2312 (Linux下为cp936) 方法一(临时) Windows下的中文编码gb2312在Linux下为cp936 vim打开文件123.txt后,进入底线命令模式(在命令 ...

  7. Ubuntu下vim打开文件时,提示请按ENTER或其它命令继续

    最近配置了一下vim,重启后,配置生效.但在用vim打开文件的时候,出现了一个问题:每次用vim打开文件的时候,都会提示请按ENTER或其它命令继续.这个真的很烦人.那么怎么把它消除掉呢? 首先要搞清 ...

  8. win7html默认打开方式,Win7系统如何设置打开文件默认程序

    Win7系统打开文件默认程序设置,双击打开文件是最使用电脑最基本的操作,但就是这么简单的一个动作,操作系统也会经常搞错.例如想要打开一张图片时,如果Win7中安装了两款可以打开图 片的软件,系统就有可 ...

  9. linux vim打开文件显示 :filetype unknown

    vim 打开文件显示: filetype unknown Press ENTER or type command to continue 将~/.vimrc里的 set syntax=on 改成 sy ...

最新文章

  1. Spring Autowire自动装配
  2. 关于判断checkbox选中问题
  3. Lucene从入门到进阶(6.6.0版本)
  4. java报表的导出excel_java导出excel报表
  5. Python机器学习房价预测 (斯坦福大学机器学习课程)
  6. Android View框架总结(九)KeyEvent事件分发机制
  7. linux下jdk1.8搭建笔记
  8. fireworks CS6安装教程
  9. Random随机数和for循环,实现猜数游戏和双色球
  10. android webview同步,android httpclient与webview cookie同步
  11. 【yum】yum 源的配置与使用
  12. 软件测试预演环境,什么是软件测试用例预演 有何优点?-软件水平考试-考试吧...
  13. 数组中的最长山脉 JAVA
  14. 在数据可视化这条路上,除了天天做图表,还有更重要的3件事
  15. python读HDF数据
  16. 怎样用sc命令运行服务器,windows中的sc控制服务命令
  17. 牛客网利用C语言解兔子序列
  18. 手动编译kernel和supplicant使树莓派支持wpa3
  19. 果蔬净化器哪个牌子好,果蔬净化器科普
  20. 中国漆画名品东京展出 促中日文化交流

热门文章

  1. ABCD过桥题的规律
  2. 用matlab读csv数据_matlab 读文件csvread textread用法实例
  3. 重构业务系统,我是这样做的
  4. 【UE4】通过动画序列自动生成蒙太奇(In Code)
  5. 【20210727】图说全球网站数量及服务器市场份额
  6. 用js做购物界面的常用效果
  7. WSL下的NeoVim安装与配置
  8. 蓝桥杯 逗志芃的危机
  9. 永远不要去依赖别人_经典语录:不要轻易去依赖一个人,它会成为你的习惯
  10. thinksns java_php-java登录thinksns时的加密解密操作