From 003b429a8671dbb00d9c7e7e9f40d7aedfa87b8d Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 2 Nov 2025 18:07:33 +0800 Subject: vim-patch:9.1.1892: Not possible to know once Vim is done with sourcing vimrc (#36429) Problem: A plugin does not know when startup scripts were already triggered. This is useful to determine if a function is called inside vimrc or after (like when sourcing 'plugin/' files). Solution: Add the v:vim_did_init variable (Evgeni Chasnovski) closes: vim/vim#18668 https://github.com/vim/vim/commit/294bce21ee837aab209a1008d0efc3e305cf188f Nvim has two more steps between sourcing startup scripts and loading plugins. Set this variable after these two steps. Co-authored-by: Evgeni Chasnovski --- runtime/lua/vim/_meta/vvars.lua | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'runtime/lua/vim') diff --git a/runtime/lua/vim/_meta/vvars.lua b/runtime/lua/vim/_meta/vvars.lua index fc629edc30..2b18d21f78 100644 --- a/runtime/lua/vim/_meta/vvars.lua +++ b/runtime/lua/vim/_meta/vvars.lua @@ -793,6 +793,12 @@ vim.v.versionlong = ... --- @type integer vim.v.vim_did_enter = ... +--- 0 during initialization, 1 after sourcing `vimrc` and just +--- before `load-plugins`. +--- Read-only. +--- @type integer +vim.v.vim_did_init = ... + --- Virtual line number for the 'statuscolumn' expression. --- Negative when drawing the status column for virtual lines, zero --- when drawing an actual buffer line, and positive when drawing -- cgit