hook_add = ''' " Vimが起動するとき、 $COLOR_SCHEMEでカラースキームが指定されていればそれを設定する。 " $COLOR_SCHEMEが指定されていなかったとき、`g:themeSetupModules`に登録されているカラースキームから無作為に設定する " 直下で定義しているautocmdも実行させたいのでnestedを指定する autocmd VimRc VimEnter * ++once ++nested \ execute 'colorscheme' $COLOR_SCHEME \ ?? { items -> items[rand(srand()) % items->len()] }(g:themeSetupModules->keys()) " カラースキームが設定されたとき、`g:themeSetupModules`に名前が登録されていれば実行する。 " OptionSet background のautocmdを実行したいのでnestedを指定する autocmd VimRc ColorSchemePre * ++nested \ :if !get(g:themeSetupModules, expand(''), '')->empty() \ | call luaeval( \ g:themeSetupModules[expand('')] \ ->printf('require("rc.colorscheme-setups.%s")') \ ) \ |endif ''' [[plugins]] repo = 'rose-pine/neovim' name = 'rose-pine' hook_add = ''' " NOTE: " よくわからないけどファイル先頭のhook_addより先にこっちが実行されるっぽいので " ここで`g:themeSetupModules`を宣言しないとエラーになる let g:themeSetupModules = get(g:, 'themeSetups', {}) let g:themeSetupModules['rose-pine'] = 'rose-pine' ''' [[plugins]] repo = 'rebelot/kanagawa.nvim' hook_add = ''' let g:themeSetupModules['kanagawa'] = 'kanagawa' ''' [[plugins]] repo = 'cocopon/iceberg.vim' hook_add = ''' let g:themeSetupModules['iceberg'] = 'iceberg' ''' [[plugins]] repo = 'sainnhe/gruvbox-material' hook_add = ''' let g:themeSetupModules['gruvbox-material'] = 'gruvbox-material' ''' [[plugins]] repo = 'sainnhe/edge' hook_add = ''' let g:themeSetupModules['edge'] = 'edge' ''' [[plugins]] repo = 'sainnhe/everforest' hook_add = ''' let g:themeSetupModules['everforest'] = 'everforest' ''' [[plugins]] repo = 'sainnhe/sonokai' hook_add = ''' let g:themeSetupModules['sonokai'] = 'sonokai' ''' [[plugins]] repo = 'EdenEast/nightfox.nvim' hook_add = ''' let g:themeSetupModules.nightfox = '' let g:themeSetupModules.duskfox = '' let g:themeSetupModules.dawnfox = '' let g:themeSetupModules.nordfox = '' let g:themeSetupModules.dayfox = '' let g:themeSetupModules.terafox = '' let g:themeSetupModules.carbonfox = '' ''' [[plugins]] repo = 'folke/tokyonight.nvim' hook_add = ''' let g:themeSetupModules['tokyonight-night'] = 'tokyonight' ''' [[plugins]] repo = 'YorickPeterse/vim-paper' hook_add = ''' let g:themeSetupModules.paper = '' ''' [[plugins]] repo = 'shaunsingh/nord.nvim' hook_add = ''' let g:themeSetupModules['nord'] = 'nord' ''' [[plugins]] repo = 'Julpikar/night-owl.nvim' hook_add = ''' let g:themeSetupModules['night-owl'] = '' ''' [[plugins]] repo = 'catppuccin/nvim' name = 'catppuccin' hook_add = ''' let g:themeSetupModules['catppuccin-latte'] = 'catppuccin' let g:themeSetupModules['catppuccin-frappe'] = 'catppuccin' let g:themeSetupModules['catppuccin-macchiato'] = 'catppuccin' let g:themeSetupModules['catppuccin-mocha'] = 'catppuccin' ''' [[plugins]] repo = 'machakann/vim-colorscheme-snowtrek' hook_add = ''' let g:themeSetupModules.snowtrek = '' ''' [[plugins]] repo = 'eihigh/vim-aomi-grayscale' hook_add = ''' let g:themeSetupModules['aomi-grayscale'] = 'aomi-grayscale' ''' [[plugins]] repo = 'marko-cerovac/material.nvim' hook_add = ''' let g:themeSetupModules.material = '' '''