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

Vim能否显示上次保存后的修改次数?能否在状态栏展示该信息?

Vim查看文件自上次保存后的修改次数及状态栏显示方案

一、查看修改次数的实现方法

Vim没有原生的直接统计修改次数的选项,但可以通过自定义变量和函数实现:

  1. 添加自动命令,记录保存时的修改标记值
    在Vim的配置文件(如~/.vimrc)中加入:
autocmd BufWritePost * let b:last_saved_tick = b:changedtick

这个命令会在每次保存缓冲区后,把当前的b:changedtick(Vim内置的缓冲区修改计数器,每次内容变更都会递增)存到缓冲区本地变量里。

  1. 定义计算修改次数的函数
    同样在配置文件中添加:
function! GetModificationCount()
    if !exists('b:last_saved_tick')
        return 0
    endif
    return b:changedtick - b:last_saved_tick
endfunction

如果文件从未保存过,返回0;否则返回当前修改标记与保存时标记的差值,也就是自上次保存后的修改次数。

  1. 查看次数
    在普通模式下执行:echo GetModificationCount(),就能直接看到结果。

二、将修改次数显示在状态栏

只需把上述函数的结果整合到statusline设置中即可:

在配置文件中添加:

set statusline+=%{GetModificationCount()} changes

这样状态栏会自动追加类似2 changes的内容,实时显示自上次保存后的修改次数。

如果需要更复杂的状态栏格式,可以结合其他statusline占位符调整,比如:

set statusline=%f\ %{GetModificationCount()} changes\ %=%l:%c

这个设置会显示文件名、修改次数,以及右下角的行列号。

内容的提问来源于stack exchange,提问作者David Shaw

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:42:07