Update neovim config
This commit is contained in:
		| @@ -1,67 +1,36 @@ | ||||
| " vim-plug: Vim plugin manager | ||||
| " ============================ | ||||
| " | ||||
| " Download plug.vim and put it in ~/.vim/autoload | ||||
| " 1. Download plug.vim and put it in 'autoload' directory | ||||
| " | ||||
| "   # Vim | ||||
| "   curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ | ||||
| "     https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | ||||
| " | ||||
| " Edit your .vimrc | ||||
| "   # Neovim | ||||
| "   sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \ | ||||
| "     https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim' | ||||
| " | ||||
| "   call plug#begin('~/.vim/plugged') | ||||
| " 2. Add a vim-plug section to your ~/.vimrc (or ~/.config/nvim/init.vim for Neovim) | ||||
| " | ||||
| "   " Make sure you use single quotes | ||||
| "   call plug#begin() | ||||
| " | ||||
| "   " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align | ||||
| "   Plug 'junegunn/vim-easy-align' | ||||
| "   " List your plugins here | ||||
| "   Plug 'tpope/vim-sensible' | ||||
| " | ||||
| "   " Any valid git URL is allowed | ||||
| "   Plug 'https://github.com/junegunn/vim-github-dashboard.git' | ||||
| " | ||||
| "   " Multiple Plug commands can be written in a single line using | separators | ||||
| "   Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' | ||||
| " | ||||
| "   " On-demand loading | ||||
| "   Plug 'preservim/nerdtree', { 'on': 'NERDTreeToggle' } | ||||
| "   Plug 'tpope/vim-fireplace', { 'for': 'clojure' } | ||||
| " | ||||
| "   " Using a non-default branch | ||||
| "   Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } | ||||
| " | ||||
| "   " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) | ||||
| "   Plug 'fatih/vim-go', { 'tag': '*' } | ||||
| " | ||||
| "   " Plugin options | ||||
| "   Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } | ||||
| " | ||||
| "   " Plugin outside ~/.vim/plugged with post-update hook | ||||
| "   Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | ||||
| " | ||||
| "   " Unmanaged plugin (manually installed and updated) | ||||
| "   Plug '~/my-prototype-plugin' | ||||
| " | ||||
| "   " Initialize plugin system | ||||
| "   call plug#end() | ||||
| " | ||||
| " Then reload .vimrc and :PlugInstall to install plugins. | ||||
| " 3. Reload the file or restart Vim, then you can, | ||||
| " | ||||
| " Plug options: | ||||
| "     :PlugInstall to install plugins | ||||
| "     :PlugUpdate  to update plugins | ||||
| "     :PlugDiff    to review the changes from the last update | ||||
| "     :PlugClean   to remove plugins no longer in the list | ||||
| " | ||||
| "| Option                  | Description                                      | | ||||
| "| ----------------------- | ------------------------------------------------ | | ||||
| "| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use       | | ||||
| "| `rtp`                   | Subdirectory that contains Vim plugin            | | ||||
| "| `dir`                   | Custom directory for the plugin                  | | ||||
| "| `as`                    | Use different name for the plugin                | | ||||
| "| `do`                    | Post-update hook (string or funcref)             | | ||||
| "| `on`                    | On-demand loading: Commands or `<Plug>`-mappings | | ||||
| "| `for`                   | On-demand loading: File types                    | | ||||
| "| `frozen`                | Do not update unless explicitly specified        | | ||||
| " | ||||
| " More information: https://github.com/junegunn/vim-plug | ||||
| " For more information, see https://github.com/junegunn/vim-plug | ||||
| " | ||||
| " | ||||
| " Copyright (c) 2017 Junegunn Choi | ||||
| " Copyright (c) 2024 Junegunn Choi | ||||
| " | ||||
| " MIT License | ||||
| " | ||||
| @@ -238,7 +207,6 @@ endfunction | ||||
|  | ||||
| function! plug#begin(...) | ||||
|   if a:0 > 0 | ||||
|     let s:plug_home_org = a:1 | ||||
|     let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) | ||||
|   elseif exists('g:plug_home') | ||||
|     let home = s:path(g:plug_home) | ||||
| @@ -391,6 +359,9 @@ function! plug#end() | ||||
|       if !empty(types) | ||||
|         augroup filetypedetect | ||||
|         call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim') | ||||
|         if has('nvim-0.5.0') | ||||
|           call s:source(s:rtp(plug), 'ftdetect/**/*.lua', 'after/ftdetect/**/*.lua') | ||||
|         endif | ||||
|         augroup END | ||||
|       endif | ||||
|       for type in types | ||||
| @@ -438,6 +409,9 @@ endfunction | ||||
|  | ||||
| function! s:load_plugin(spec) | ||||
|   call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim') | ||||
|   if has('nvim-0.5.0') | ||||
|     call s:source(s:rtp(a:spec), 'plugin/**/*.lua', 'after/plugin/**/*.lua') | ||||
|   endif | ||||
| endfunction | ||||
|  | ||||
| function! s:reload_plugins() | ||||
| @@ -655,6 +629,9 @@ function! s:lod(names, types, ...) | ||||
|     let rtp = s:rtp(g:plugs[name]) | ||||
|     for dir in a:types | ||||
|       call s:source(rtp, dir.'/**/*.vim') | ||||
|       if has('nvim-0.5.0')  " see neovim#14686 | ||||
|         call s:source(rtp, dir.'/**/*.lua') | ||||
|       endif | ||||
|     endfor | ||||
|     if a:0 | ||||
|       if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2)) | ||||
| @@ -869,7 +846,7 @@ function! s:lastline(msg) | ||||
| endfunction | ||||
|  | ||||
| function! s:new_window() | ||||
|   execute get(g:, 'plug_window', 'vertical topleft new') | ||||
|   execute get(g:, 'plug_window', '-tabnew') | ||||
| endfunction | ||||
|  | ||||
| function! s:plug_window_exists() | ||||
| @@ -1031,6 +1008,11 @@ function! s:is_updated(dir) | ||||
| endfunction | ||||
|  | ||||
| function! s:do(pull, force, todo) | ||||
|   if has('nvim') | ||||
|     " Reset &rtp to invalidate Neovim cache of loaded Lua modules | ||||
|     " See https://github.com/junegunn/vim-plug/pull/1157#issuecomment-1809226110 | ||||
|     let &rtp = &rtp | ||||
|   endif | ||||
|   for [name, spec] in items(a:todo) | ||||
|     if !isdirectory(spec.dir) | ||||
|       continue | ||||
| @@ -1092,12 +1074,14 @@ endfunction | ||||
| function! s:checkout(spec) | ||||
|   let sha = a:spec.commit | ||||
|   let output = s:git_revision(a:spec.dir) | ||||
|   let error = 0 | ||||
|   if !empty(output) && !s:hash_match(sha, s:lines(output)[0]) | ||||
|     let credential_helper = s:git_version_requirement(2) ? '-c credential.helper= ' : '' | ||||
|     let output = s:system( | ||||
|           \ 'git '.credential_helper.'fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) | ||||
|     let error = v:shell_error | ||||
|   endif | ||||
|   return output | ||||
|   return [output, error] | ||||
| endfunction | ||||
|  | ||||
| function! s:finish(pull) | ||||
| @@ -1158,7 +1142,7 @@ function! s:update_impl(pull, force, args) abort | ||||
|   let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ? | ||||
|                   \ remove(args, -1) : get(g:, 'plug_threads', 16) | ||||
|  | ||||
|   let managed = filter(copy(g:plugs), 's:is_managed(v:key)') | ||||
|   let managed = filter(deepcopy(g:plugs), 's:is_managed(v:key)') | ||||
|   let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') : | ||||
|                          \ filter(managed, 'index(args, v:key) >= 0') | ||||
|  | ||||
| @@ -1292,9 +1276,11 @@ function! s:update_finish() | ||||
|       if !pos | ||||
|         continue | ||||
|       endif | ||||
|       let out = '' | ||||
|       let error = 0 | ||||
|       if has_key(spec, 'commit') | ||||
|         call s:log4(name, 'Checking out '.spec.commit) | ||||
|         let out = s:checkout(spec) | ||||
|         let [out, error] = s:checkout(spec) | ||||
|       elseif has_key(spec, 'tag') | ||||
|         let tag = spec.tag | ||||
|         if tag =~ '\*' | ||||
| @@ -1307,19 +1293,16 @@ function! s:update_finish() | ||||
|         endif | ||||
|         call s:log4(name, 'Checking out '.tag) | ||||
|         let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) | ||||
|       else | ||||
|         let branch = s:git_origin_branch(spec) | ||||
|         call s:log4(name, 'Merging origin/'.s:esc(branch)) | ||||
|         let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1' | ||||
|               \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir) | ||||
|         let error = v:shell_error | ||||
|       endif | ||||
|       if !v:shell_error && filereadable(spec.dir.'/.gitmodules') && | ||||
|       if !error && filereadable(spec.dir.'/.gitmodules') && | ||||
|             \ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir)) | ||||
|         call s:log4(name, 'Updating submodules. This may take a while.') | ||||
|         let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir) | ||||
|         let error = v:shell_error | ||||
|       endif | ||||
|       let msg = s:format_message(v:shell_error ? 'x': '-', name, out) | ||||
|       if v:shell_error | ||||
|       if error | ||||
|         call add(s:update.errors, name) | ||||
|         call s:regress_bar() | ||||
|         silent execute pos 'd _' | ||||
| @@ -1382,7 +1365,9 @@ function! s:job_out_cb(self, data) abort | ||||
|   if !self.running || self.tick % len(s:jobs) == 0 | ||||
|     let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-') | ||||
|     let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines) | ||||
|     call s:log(bullet, self.name, result) | ||||
|     if len(result) | ||||
|       call s:log(bullet, self.name, result) | ||||
|     endif | ||||
|   endif | ||||
| endfunction | ||||
|  | ||||
| @@ -1406,16 +1391,17 @@ function! s:nvim_cb(job_id, data, event) dict abort | ||||
|     \ s:job_cb('s:job_exit_cb', self, 0, a:data) | ||||
| endfunction | ||||
|  | ||||
| function! s:spawn(name, cmd, opts) | ||||
|   let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''], | ||||
|             \ 'new': get(a:opts, 'new', 0) } | ||||
| function! s:spawn(name, spec, queue, opts) | ||||
|   let job = { 'name': a:name, 'spec': a:spec, 'running': 1, 'error': 0, 'lines': [''], | ||||
|             \ 'new': get(a:opts, 'new', 0), 'queue': copy(a:queue) } | ||||
|   let Item = remove(job.queue, 0) | ||||
|   let argv = type(Item) == s:TYPE.funcref ? call(Item, [a:spec]) : Item | ||||
|   let s:jobs[a:name] = job | ||||
|  | ||||
|   if s:nvim | ||||
|     if has_key(a:opts, 'dir') | ||||
|       let job.cwd = a:opts.dir | ||||
|     endif | ||||
|     let argv = a:cmd | ||||
|     call extend(job, { | ||||
|     \ 'on_stdout': function('s:nvim_cb'), | ||||
|     \ 'on_stderr': function('s:nvim_cb'), | ||||
| @@ -1431,7 +1417,7 @@ function! s:spawn(name, cmd, opts) | ||||
|             \ 'Invalid arguments (or job table is full)'] | ||||
|     endif | ||||
|   elseif s:vim8 | ||||
|     let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"script": 0})')) | ||||
|     let cmd = join(map(copy(argv), 'plug#shellescape(v:val, {"script": 0})')) | ||||
|     if has_key(a:opts, 'dir') | ||||
|       let cmd = s:with_cd(cmd, a:opts.dir, 0) | ||||
|     endif | ||||
| @@ -1451,27 +1437,34 @@ function! s:spawn(name, cmd, opts) | ||||
|       let job.lines   = ['Failed to start job'] | ||||
|     endif | ||||
|   else | ||||
|     let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [a:cmd, a:opts.dir] : [a:cmd])) | ||||
|     let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [argv, a:opts.dir] : [argv])) | ||||
|     let job.error = v:shell_error != 0 | ||||
|     let job.running = 0 | ||||
|   endif | ||||
| endfunction | ||||
|  | ||||
| function! s:reap(name) | ||||
|   let job = s:jobs[a:name] | ||||
|   let job = remove(s:jobs, a:name) | ||||
|   if job.error | ||||
|     call add(s:update.errors, a:name) | ||||
|   elseif get(job, 'new', 0) | ||||
|     let s:update.new[a:name] = 1 | ||||
|   endif | ||||
|   let s:update.bar .= job.error ? 'x' : '=' | ||||
|  | ||||
|   let bullet = job.error ? 'x' : '-' | ||||
|   let more = len(get(job, 'queue', [])) | ||||
|   let bullet = job.error ? 'x' : more ? (job.new ? '+' : '*') : '-' | ||||
|   let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines) | ||||
|   call s:log(bullet, a:name, empty(result) ? 'OK' : result) | ||||
|   call s:bar() | ||||
|   if len(result) | ||||
|     call s:log(bullet, a:name, result) | ||||
|   endif | ||||
|  | ||||
|   call remove(s:jobs, a:name) | ||||
|   if !job.error && more | ||||
|     let job.spec.queue = job.queue | ||||
|     let s:update.todo[a:name] = job.spec | ||||
|   else | ||||
|     let s:update.bar .= job.error ? 'x' : '=' | ||||
|     call s:bar() | ||||
|   endif | ||||
| endfunction | ||||
|  | ||||
| function! s:bar() | ||||
| @@ -1524,6 +1517,16 @@ function! s:update_vim() | ||||
|   call s:tick() | ||||
| endfunction | ||||
|  | ||||
| function! s:checkout_command(spec) | ||||
|   let a:spec.branch = s:git_origin_branch(a:spec) | ||||
|   return ['git', 'checkout', '-q', a:spec.branch, '--'] | ||||
| endfunction | ||||
|  | ||||
| function! s:merge_command(spec) | ||||
|   let a:spec.branch = s:git_origin_branch(a:spec) | ||||
|   return ['git', 'merge', '--ff-only', 'origin/'.a:spec.branch] | ||||
| endfunction | ||||
|  | ||||
| function! s:tick() | ||||
|   let pull = s:update.pull | ||||
|   let prog = s:progress_opt(s:nvim || s:vim8) | ||||
| @@ -1538,13 +1541,18 @@ while 1 " Without TCO, Vim stack is bound to explode | ||||
|  | ||||
|   let name = keys(s:update.todo)[0] | ||||
|   let spec = remove(s:update.todo, name) | ||||
|   let new  = empty(globpath(spec.dir, '.git', 1)) | ||||
|   let queue = get(spec, 'queue', []) | ||||
|   let new = empty(globpath(spec.dir, '.git', 1)) | ||||
|  | ||||
|   call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') | ||||
|   redraw | ||||
|   if empty(queue) | ||||
|     call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') | ||||
|     redraw | ||||
|   endif | ||||
|  | ||||
|   let has_tag = has_key(spec, 'tag') | ||||
|   if !new | ||||
|   if len(queue) | ||||
|     call s:spawn(name, spec, queue, { 'dir': spec.dir }) | ||||
|   elseif !new | ||||
|     let [error, _] = s:git_validate(spec, 0) | ||||
|     if empty(error) | ||||
|       if pull | ||||
| @@ -1555,7 +1563,11 @@ while 1 " Without TCO, Vim stack is bound to explode | ||||
|         if !empty(prog) | ||||
|           call add(cmd, prog) | ||||
|         endif | ||||
|         call s:spawn(name, cmd, { 'dir': spec.dir }) | ||||
|         let queue = [cmd, split('git remote set-head origin -a')] | ||||
|         if !has_tag && !has_key(spec, 'commit') | ||||
|           call extend(queue, [function('s:checkout_command'), function('s:merge_command')]) | ||||
|         endif | ||||
|         call s:spawn(name, spec, queue, { 'dir': spec.dir }) | ||||
|       else | ||||
|         let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 } | ||||
|       endif | ||||
| @@ -1570,7 +1582,7 @@ while 1 " Without TCO, Vim stack is bound to explode | ||||
|     if !empty(prog) | ||||
|       call add(cmd, prog) | ||||
|     endif | ||||
|     call s:spawn(name, extend(cmd, [spec.uri, s:trim(spec.dir)]), { 'new': 1 }) | ||||
|     call s:spawn(name, spec, [extend(cmd, [spec.uri, s:trim(spec.dir)]), function('s:checkout_command'), function('s:merge_command')], { 'new': 1 }) | ||||
|   endif | ||||
|  | ||||
|   if !s:jobs[name].running | ||||
| @@ -2346,18 +2358,21 @@ function! s:git_validate(spec, check_branch) | ||||
|               \ current_branch, origin_branch) | ||||
|       endif | ||||
|       if empty(err) | ||||
|         let [ahead, behind] = split(s:lastline(s:system([ | ||||
|         \ 'git', 'rev-list', '--count', '--left-right', | ||||
|         \ printf('HEAD...origin/%s', origin_branch) | ||||
|         \ ], a:spec.dir)), '\t') | ||||
|         if !v:shell_error && ahead | ||||
|           if behind | ||||
|         let ahead_behind = split(s:lastline(s:system([ | ||||
|           \ 'git', 'rev-list', '--count', '--left-right', | ||||
|           \ printf('HEAD...origin/%s', origin_branch) | ||||
|           \ ], a:spec.dir)), '\t') | ||||
|         if v:shell_error || len(ahead_behind) != 2 | ||||
|           let err = "Failed to compare with the origin. The default branch might have changed.\nPlugClean required." | ||||
|         else | ||||
|           let [ahead, behind] = ahead_behind | ||||
|           if ahead && behind | ||||
|             " Only mention PlugClean if diverged, otherwise it's likely to be | ||||
|             " pushable (and probably not that messed up). | ||||
|             let err = printf( | ||||
|                   \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" | ||||
|                   \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', origin_branch, ahead, behind) | ||||
|           else | ||||
|           elseif ahead | ||||
|             let err = printf("Ahead of origin/%s by %d commit(s).\n" | ||||
|                   \ .'Cannot update until local changes are pushed.', | ||||
|                   \ origin_branch, ahead) | ||||
| @@ -2389,7 +2404,7 @@ function! s:clean(force) | ||||
|   let errs = {} | ||||
|   let [cnt, total] = [0, len(g:plugs)] | ||||
|   for [name, spec] in items(g:plugs) | ||||
|     if !s:is_managed(name) | ||||
|     if !s:is_managed(name) || get(spec, 'frozen', 0) | ||||
|       call add(dirs, spec.dir) | ||||
|     else | ||||
|       let [err, clean] = s:git_validate(spec, 1) | ||||
| @@ -2637,8 +2652,8 @@ function! s:preview_commit() | ||||
|     return | ||||
|   endif | ||||
|  | ||||
|   if exists('g:plug_pwindow') && !s:is_preview_window_open() | ||||
|     execute g:plug_pwindow | ||||
|   if !s:is_preview_window_open() | ||||
|     execute get(g:, 'plug_pwindow', 'vertical rightbelow new') | ||||
|     execute 'e' title | ||||
|   else | ||||
|     execute 'pedit' title | ||||
|   | ||||
| @@ -2,7 +2,7 @@ syntax on | ||||
| set nocompatible | ||||
| set encoding=utf8 | ||||
|   | ||||
| set mouse=a | ||||
| "set mouse=a | ||||
| set hidden | ||||
|  | ||||
| set updatetime=300 | ||||
| @@ -12,15 +12,11 @@ call plug#begin('~/.config/nvim/plugged') | ||||
|     Plug 'loctvl842/monokai-pro.nvim' | ||||
|     Plug 'junegunn/fzf.vim' | ||||
|     Plug 'junegunn/fzf' | ||||
|     Plug 'famiu/feline.nvim' | ||||
|     Plug 'jiangmiao/auto-pairs' " Ferme automatiquement les parenthèses, crochets… | ||||
|     Plug 'lukas-reineke/indent-blankline.nvim' " Affiche les indentations. | ||||
|     Plug 'terrortylor/nvim-comment' " Permet de basculer les commentaires sur une ligne | ||||
|     Plug 'kyazdani42/nvim-web-devicons' " requis pas bufferline | ||||
|     Plug 'akinsho/bufferline.nvim',  | ||||
|     Plug 'akinsho/bufferline.nvim' | ||||
|     Plug 'ms-jpq/chadtree', {'branch': 'chad', 'do': 'python3 -m chadtree deps'} | ||||
| call plug#end() | ||||
|  | ||||
| silent! colorscheme "monokai-pro" | ||||
| set background=dark | ||||
|  | ||||
| set ruler			" Affiche la position du curseur | ||||
| @@ -48,11 +44,12 @@ nnoremap <silent> <C-p> :Files<CR> | ||||
| nnoremap <silent> <C-g> :GFiles<CR> | ||||
|  | ||||
| nnoremap <silent> <C-o> :Buffers<CR> | ||||
| nnoremap <C-f> :Rg! | ||||
|  | ||||
| nnoremap <C-n> :bn<CR> | ||||
| nnoremap <C-b> :bp<CR> | ||||
| "nnoremap <C-f> :Rg! | ||||
| "nnoremap <C-n> :bn<CR> | ||||
| "nnoremap <C-b> :bp<CR> | ||||
|  | ||||
| nnoremap <C-e> <cmd>CHADopen<cr> | ||||
| " -- Les modifications de .vimrc sont prises en compte immédiatement | ||||
| "if has("autocmd") | ||||
| "    autocmd! bufwritepost .vimrc source ~/.vimrc | ||||
| @@ -77,8 +74,12 @@ autocmd Filetype css setlocal ts=2 sw=2 expandtab | ||||
| autocmd Filetype scss setlocal ts=2 sw=2 expandtab | ||||
| autocmd Filetype python setlocal ts=2 sw=2 expandtab | ||||
|  | ||||
|  | ||||
| set termguicolors | ||||
| lua << EOF | ||||
| require("bufferline").setup{} | ||||
| require('feline').setup() | ||||
| require("monokai-pro").setup({ | ||||
|   -- ... your config | ||||
|   filter = "spectrum" | ||||
| }) | ||||
| vim.cmd([[colorscheme monokai-pro]]) | ||||
| EOF | ||||
|   | ||||
		Reference in New Issue
	
	Block a user