Skip to main content

Get the Reddit app

Scan this QR code to download the app now
Or check it out in the app stores
r/neovim icon
r/neovim icon
Go to neovim
r/neovim

Neovim is a hyperextensible Vim-based text editor. Learn more at neovim.io.


Members Online

sourcing /etc/xdg/nvim/sysinit.vim slow?

Hi Guys,

im trying too reduce my nvim startup time and found out that sourcing /etc/xdg/nvim/sysinit.vim takes pretty "long".

Is it normal or is there a way to reduce the speed?

000.008  000.008: --- NVIM STARTING ---
000.233  000.225: locale set
000.453  000.220: inits 1
000.463  000.010: window checked
004.414  003.951: parsing arguments
004.536  000.121: expanding arguments
004.555  000.019: inits 2
005.034  000.480: init highlight
005.035  000.001: waiting for UI
006.058  001.023: done waiting for UI
006.076  000.018: init screen for UI
006.089  000.014: init default mappings
006.161  000.071: init default autocommands
006.229  000.011  000.011: sourcing /usr/share/nvim/archlinux.vim
006.232  000.038  000.027: sourcing /etc/xdg/nvim/sysinit.vim
055.182  048.933  048.933: sourcing /home/kuripa/.config/nvim/init.lua
055.199  000.067: sourcing vimrc file(s)
059.835  000.015  000.015: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/LuaSnip/ftdetect/snippets.vim
060.273  000.032  000.032: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/elixir.vim
060.309  000.013  000.013: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/fennel.vim
060.351  000.020  000.020: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/fish.vim
060.389  000.018  000.018: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/fusion.vim
060.434  000.023  000.023: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdresource.vim
060.470  000.015  000.015: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gdscript.vim
060.516  000.015  000.015: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glimmer.vim
060.575  000.036  000.036: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/glsl.vim
060.614  000.016  000.016: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gomod.vim
060.653  000.017  000.017: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/gowork.vim
060.696  000.023  000.023: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/graphql.vim
060.743  000.024  000.024: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hcl.vim
060.820  000.013  000.013: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/heex.vim
060.850  000.013  000.013: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/hjson.vim
060.891  000.009  000.009: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/json5.vim
060.920  000.012  000.012: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/julia.vim
060.982  000.040  000.040: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ledger.vim
061.013  000.011  000.011: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/nix.vim
061.036  000.008  000.008: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/prisma.vim
061.058  000.008  000.008: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/pug.vim
061.082  000.011  000.011: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/ql.vim
061.114  000.019  000.019: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/query.vim
061.148  000.017  000.017: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/surface.vim
061.177  000.012  000.012: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/teal.vim
061.207  000.014  000.014: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/tlaplus.vim
061.232  000.011  000.011: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/yang.vim
061.308  000.013  000.013: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/ftdetect/zig.vim
061.434  000.011  000.011: sourcing /usr/share/vim/vimfiles/ftdetect/PKGBUILD.vim
061.703  006.414  005.928: sourcing /usr/share/nvim/runtime/filetype.vim
061.923  000.033  000.033: sourcing /usr/share/nvim/runtime/ftplugin.vim
062.113  000.026  000.026: sourcing /usr/share/nvim/runtime/indent.vim
062.347  000.067  000.067: sourcing /usr/share/nvim/runtime/syntax/synload.vim
062.423  000.267  000.199: sourcing /usr/share/nvim/runtime/syntax/syntax.vim
063.575  000.344  000.344: sourcing /usr/share/nvim/runtime/plugin/gzip.vim
063.615  000.022  000.022: sourcing /usr/share/nvim/runtime/plugin/health.vim
063.722  000.092  000.092: sourcing /usr/share/nvim/runtime/plugin/man.vim
064.287  000.198  000.198: sourcing /usr/share/nvim/runtime/pack/dist/opt/matchit/plugin/matchit.vim
064.387  000.652  000.454: sourcing /usr/share/nvim/runtime/plugin/matchit.vim
064.552  000.148  000.148: sourcing /usr/share/nvim/runtime/plugin/matchparen.vim
064.942  000.373  000.373: sourcing /usr/share/nvim/runtime/plugin/netrwPlugin.vim
065.142  000.010  000.010: sourcing /home/kuripa/.local/share/nvim/rplugin.vim
065.149  000.146  000.136: sourcing /usr/share/nvim/runtime/plugin/rplugin.vim
065.313  000.145  000.145: sourcing /usr/share/nvim/runtime/plugin/shada.vim
065.394  000.056  000.056: sourcing /usr/share/nvim/runtime/plugin/spellfile.vim
065.546  000.128  000.128: sourcing /usr/share/nvim/runtime/plugin/tarPlugin.vim
065.660  000.089  000.089: sourcing /usr/share/nvim/runtime/plugin/tohtml.vim
065.777  000.058  000.058: sourcing /usr/share/nvim/runtime/plugin/tutor.vim
065.999  000.180  000.180: sourcing /usr/share/nvim/runtime/plugin/zipPlugin.vim
073.351  007.193  007.193: sourcing /home/kuripa/.config/nvim/plugin/packer_compiled.lua
073.611  002.046: loading rtp plugins
074.188  000.254  000.254: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/LuaSnip/plugin/luasnip.vim
075.200  000.568  000.568: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-cmp/plugin/cmp.lua
075.403  000.113  000.113: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-lsp-installer/plugin/nvim-lsp-installer.vim
075.592  000.081  000.081: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-lspconfig/plugin/lspconfig.vim
076.463  000.757  000.757: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-treesitter/plugin/nvim-treesitter.vim
076.765  000.063  000.063: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/nvim-web-devicons/plugin/nvim-web-devicons.vim
077.090  000.048  000.048: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/plenary.nvim/plugin/plenary.vim
077.518  000.264  000.264: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/trouble.nvim/plugin/trouble.vim
077.805  000.020  000.020: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/which-key.nvim/plugin/which-key.vim
078.018  002.238: loading packages
078.910  000.586  000.586: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/cmp-buffer/after/plugin/cmp_buffer.lua
079.160  000.153  000.153: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/cmp-cmdline/after/plugin/cmp_cmdline.lua
079.410  000.184  000.184: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/cmp-nvim-lsp/after/plugin/cmp_nvim_lsp.lua
079.612  000.135  000.135: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/cmp-nvim-lua/after/plugin/cmp_nvim_lua.lua
079.947  000.271  000.271: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/cmp-path/after/plugin/cmp_path.lua
080.339  000.303  000.303: sourcing /home/kuripa/.local/share/nvim/site/pack/packer/start/cmp_luasnip/after/plugin/cmp_luasnip.lua
080.358  000.709: loading after plugins
080.383  000.026: inits 3
082.813  002.430: reading ShaDa
083.549  000.736: opening buffers
083.614  000.066: BufEnter autocommands
083.617  000.003: editing files in windows
091.603  007.986: VimEnter autocommands
091.633  000.030: UIEnter autocommands
091.990  000.223  000.223: sourcing /usr/share/nvim/runtime/autoload/provider/clipboard.vim
091.998  000.142: before starting main loop
099.144  007.147: first screen update
099.148  000.003: --- NVIM STARTED ---
Archived post. New comments cannot be posted and votes cannot be cast.
Share
u/andersevenrud avatar

I think you might be reading this wrong. The second column is the elapsed time for the given entry, so the sysinit script is loaded in <0.1ms.

Edit: Also, 100ms is just fine. It's literally the blink of an eye :)

Yep my mistake... I was reading this wrong :)

When my laptop is on battery saving mode, the startup time goes up to 250ms. It is still fast but I can definitely feel the difference. Thats why I try to reduce my startup time.

Thank you!

u/cdb_11 avatar

Your init.lua takes the longest. Try to profile different sections with:

local t = vim.fn.reltime()
-- measured code
print(vim.fn.reltimestr(vim.fn.reltime(t)))
More replies
More replies