You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下VIM 8.2.1847的功能异常问题求助

Ubuntu 22.04下VIM 8.2.1847的功能异常问题求助

嘿,这俩问题我太熟了!之前帮好几个升级到22.04的朋友解决过,都是VIM默认配置改了导致的,给你俩小配置就能找回18.04时的舒服用法:

问题1:退格键没法跨换行删除上一行内容

这个是因为VIM的backspace选项默认值在22.04里缩紧了限制,之前18.04是允许退格删换行、缩进这些的。你只需要打开你的~/.vimrc文件(如果没有就新建一个),加上这一行:

set backspace=indent,eol,start

简单说下这三个参数的作用:

  • indent:允许删除自动缩进的空格
  • eol:允许删掉换行符,这样退格就能从下一行跳回上一行继续删
  • start:允许删除光标在插入模式起始位置之前的内容

加完保存~/.vimrc,重新开VIM就生效啦。

问题2:保存退出后再打开文件,g;提示变更列表为空

这是因为VIM默认不会把变更列表(changelist)存到磁盘上,退出就清空了。要让它记住上次的修改位置,我们得让VIM把变更记录存起来,下次打开再读回来。

步骤很简单:

  1. 先建个存变更记录的目录:
mkdir -p ~/.vim/changes
  1. 还是在~/.vimrc里加这两段自动命令:
" 保存文件时,把当前文件的变更列表写入对应记录文件
autocmd BufWritePost * call writefile(execute('changes'), expand('~/.vim/changes/' . expand('%:p')))

" 打开文件时,如果有对应的变更记录,就加载回来
autocmd BufReadPost * if filereadable(expand('~/.vim/changes/' . expand('%:p'))) | execute 'silent source ' . expand('~/.vim/changes/' . expand('%:p')) | endif

这样设置后,每次你存文件,VIM都会把修改记录偷偷存在~/.vim/changes目录里,下次打开同一个文件时,变更列表就回来了,g;就能正常跳转到上次修改的位置啦。

备注:内容来源于stack exchange,提问作者Ian Macky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:18:04