Compare commits

...

4 commits

Author SHA1 Message Date
211ee2eb40
Use has-patch for wildoptions, instead of silent! 2022-07-02 16:50:57 +10:00
ca41e40e6a
Migrate vimrc to Vim9 script 2022-07-02 16:49:40 +10:00
a17be94d77
Migrate init.vim to Vim9 script as well 2022-07-02 16:38:38 +10:00
fc59f3cf4c
Migrate plugins.vim to Vim9 script
This syntax is only supported in Vim 8.2 or higher, so this means older
Vims won't work properly, but I don't really have much of a reason to
use older Vims than that anyway.

Note that because plugins.vim now requires Vim 8.2+, it doesn't need to
bother providing special support for Vims that don't have the packages
feature, since packages were added before Vim9 script anyway.
2022-07-02 16:19:28 +10:00
3 changed files with 113 additions and 136 deletions

View file

@ -1,43 +1,39 @@
vim9script
set encoding=utf-8
scriptencoding utf-8
function! s:ensure_dir(dir)
if filewritable(a:dir) != 2
call mkdir(a:dir, "p", 0700)
def EnsureDir(dir: string): void
if filewritable(dir) != 2
mkdir(dir, "p", 0700)
endif
endfunction
enddef
if exists('+packpath')
" These are really clever - minpac will actually be loaded on the fly only
" when you need to update or clean your packages, rather than all the time.
command! PackUpdate source $XDG_CONFIG_HOME/vim/plugins.vim | call minpac#update()
command! PackClean source $XDG_CONFIG_HOME/vim/plugins.vim | call minpac#clean()
command! PackStatus source $XDG_CONFIG_HOME/vim/plugins.vim | call minpac#status()
# These are really clever - minpac will actually be loaded on the fly only
# when you need to update or clean your packages, rather than all the time.
command! PackUpdate source $XDG_CONFIG_HOME/vim/plugins.vim | minpac#update()
command! PackClean source $XDG_CONFIG_HOME/vim/plugins.vim | minpac#clean()
command! PackStatus source $XDG_CONFIG_HOME/vim/plugins.vim | minpac#status()
" If the pack directory doesn't exist, we haven't installed any packages yet,
" so let's call PackUpdate.
if !isdirectory($XDG_CACHE_HOME . '/vim/pack')
# If the pack directory doesn't exist, we haven't installed any packages yet,
# so let's call PackUpdate.
if !isdirectory($XDG_CACHE_HOME .. '/vim/pack')
PackUpdate
endif
else
" If we're on a version of Vim that doesn't have packages, we have to load a
" plugin manager (vim-plug) on every boot.
source $XDG_CONFIG_HOME/vim/plugins.vim
endif
augroup transparent_term
autocmd!
autocmd ColorScheme * highlight Normal ctermbg=NONE guibg=NONE
augroup END
set background=dark
let g:gruvbox_italic=1
let g:gruvbox_improved_strings=1
let g:gruvbox_improved_warnings=1
g:gruvbox_italic = 1
g:gruvbox_improved_strings = 1
g:gruvbox_improved_warnings = 1
if has('gui_running') || has('termguicolors')
set termguicolors
silent! packadd gruvbox
let g:airline_theme = 'gruvbox'
g:airline_theme = 'gruvbox'
colorscheme gruvbox
else
colorscheme inkpot
@ -57,6 +53,9 @@ set linebreak showbreak=↩
set modelines=5
set showcmd
set wildmode=longest,full
if has('patch-8.2.4325')
set wildoptions+=pum
endif
set tabstop=2 shiftwidth=2
@ -70,8 +69,8 @@ else
set number
endif
for s:dir in ['backup', 'swap', 'undo']
call s:ensure_dir($XDG_STATE_HOME . '/vim/' . s:dir)
for dir in ['backup', 'swap', 'undo']
EnsureDir($XDG_STATE_HOME .. '/vim/' .. dir)
endfor
set backupdir=.,$XDG_STATE_HOME/vim/backup
@ -81,22 +80,22 @@ if exists('+undofile')
set undodir=$XDG_STATE_HOME/vim/undo
endif
let g:airline_powerline_fonts = 1
let g:airline#extensions#battery#enabled = 1
g:airline_powerline_fonts = 1
g:airline#extensions#battery#enabled = 1
let g:csv_no_conceal = 1
g:csv_no_conceal = 1
let vim_svelte_plugin_use_typescript = 1
g:vim_svelte_plugin_use_typescript = 1
let g:LatexBox_Folding = 1
let g:NERDTreeHijackNetrw = 1
g:LatexBox_Folding = 1
g:NERDTreeHijackNetrw = 1
let g:ale_set_balloons = 1
g:ale_set_balloons = 1
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
let g:mucomplete#can_complete = {
\'default': {
\'omni': {t -> strlen(&l:omnifunc) > 0 && t =~# '\m\k\%(\k\|\.\)$'}
\}
\}
g:mucomplete#can_complete = {
default: {
omni: (t) => strlen(&l:omnifunc) > 0 && t =~# '\m\k\%(\k\|\.\)$'
}
}

View file

@ -1,116 +1,87 @@
if exists('+packpath')
vim9script
silent! packadd minpac
if !exists('g:loaded_minpac')
silent !git clone https://github.com/k-takata/minpac.git $XDG_CACHE_HOME/vim/pack/minpac/opt/minpac
augroup minpac
augroup minpac {
autocmd!
autocmd VimEnter * call minpac#update()
augroup END
}
endif
function! Plug(...)
call call('minpac#add', a:000)
endfunction
function! PlugEnd()
endfunction
packadd minpac
call minpac#init({'dir': $XDG_CACHE_HOME . '/vim'})
else
if !filereadable($XDG_CACHE_HOME . '/vim/autoload/plug.vim')
silent !curl -fLo $XDG_CACHE_HOME/vim/autoload/plug.vim --create-dirs 'https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
augroup vimplug
autocmd VimEnter * PlugInstall
augroup END
endif
minpac#init({dir: $XDG_CACHE_HOME .. '/vim'})
minpac#add('k-takata/minpac', {type: 'opt'})
minpac#add('tpope/vim-sensible')
minpac#add('prabirshrestha/async.vim')
function! Plug(name, ...)
call plug#(a:name)
endfunction
minpac#add('ciaranm/inkpot', {type: 'opt', do: 'colorscheme inkpot'})
minpac#add('morhetz/gruvbox', {type: 'opt'})
function! PlugEnd()
call plug#end()
endfunction
minpac#add('direnv/direnv.vim')
minpac#add('editorconfig/editorconfig-vim')
minpac#add('godlygeek/tabular')
minpac#add('jamessan/vim-gnupg')
minpac#add('junegunn/vim-easy-align')
minpac#add('lifepillar/vim-mucomplete')
minpac#add('lotabout/skim')
minpac#add('lotabout/skim.vim')
minpac#add('mhinz/vim-signify')
minpac#add('scrooloose/nerdtree')
minpac#add('sjl/vitality.vim')
minpac#add('tpope/vim-apathy')
minpac#add('tpope/vim-commentary')
minpac#add('tpope/vim-dadbod')
minpac#add('tpope/vim-endwise')
minpac#add('tpope/vim-eunuch')
minpac#add('tpope/vim-fugitive')
minpac#add('tpope/vim-repeat')
minpac#add('tpope/vim-rhubarb')
minpac#add('tpope/vim-sleuth')
minpac#add('tpope/vim-surround')
minpac#add('tpope/vim-unimpaired')
call plug#begin($XDG_CACHE_HOME . '/vim/plugged')
endif
minpac#add('wincent/loupe')
minpac#add('wincent/terminus')
minpac#add('w0rp/ale')
call Plug('k-takata/minpac', {'type': 'opt'})
call Plug('tpope/vim-sensible')
call Plug('prabirshrestha/async.vim')
minpac#add('neoclide/coc.nvim', {branch: 'release'})
call Plug('ciaranm/inkpot', {'type': 'opt', 'do': 'colorscheme inkpot'})
call Plug('morhetz/gruvbox', {'type': 'opt'})
minpac#add('vim-airline/vim-airline')
minpac#add('vim-airline/vim-airline-themes')
minpac#add('lambdalisue/battery.vim')
call Plug('direnv/direnv.vim')
call Plug('editorconfig/editorconfig-vim')
call Plug('godlygeek/tabular')
call Plug('jamessan/vim-gnupg')
call Plug('junegunn/vim-easy-align')
call Plug('lifepillar/vim-mucomplete')
call Plug('lotabout/skim')
call Plug('lotabout/skim.vim')
call Plug('mhinz/vim-signify')
call Plug('scrooloose/nerdtree')
call Plug('sjl/vitality.vim')
call Plug('tpope/vim-apathy')
call Plug('tpope/vim-commentary')
call Plug('tpope/vim-dadbod')
call Plug('tpope/vim-endwise')
call Plug('tpope/vim-eunuch')
call Plug('tpope/vim-fugitive')
call Plug('tpope/vim-repeat')
call Plug('tpope/vim-rhubarb')
call Plug('tpope/vim-sleuth')
call Plug('tpope/vim-surround')
call Plug('tpope/vim-unimpaired')
minpac#add('alvan/vim-closetag')
minpac#add('LaTeX-Box-Team/LaTeX-Box')
minpac#add('vhda/verilog_systemverilog.vim')
minpac#add('sheerun/vim-polyglot')
call Plug('wincent/loupe')
call Plug('wincent/terminus')
call Plug('w0rp/ale')
minpac#add('eipipuz/factor.vim')
call Plug('neoclide/coc.nvim', {'branch': 'release'})
minpac#add('ehamberg/vim-cute-python')
minpac#add('Glench/Vim-Jinja2-Syntax')
minpac#add('tweekmonster/braceless.vim')
call Plug('vim-airline/vim-airline')
call Plug('vim-airline/vim-airline-themes')
call Plug('lambdalisue/battery.vim')
minpac#add('ternjs/tern_for_vim', {do: () => async#job#start(['npm', 'install'], {})})
minpac#add('vito-c/jq.vim')
call Plug('alvan/vim-closetag')
call Plug('LaTeX-Box-Team/LaTeX-Box')
call Plug('vhda/verilog_systemverilog.vim')
call Plug('sheerun/vim-polyglot')
minpac#add('fladson/vim-kitty')
call Plug('eipipuz/factor.vim')
minpac#add('fpob/nette.vim')
call Plug('ehamberg/vim-cute-python')
call Plug('Glench/Vim-Jinja2-Syntax')
call Plug('tweekmonster/braceless.vim')
call Plug('ternjs/tern_for_vim', {'do': {-> async#job#start(['npm', 'install'], {})}})
call Plug('vito-c/jq.vim')
call Plug('fladson/vim-kitty')
call Plug('fpob/nette.vim')
call Plug('leafOfTree/vim-svelte-plugin')
minpac#add('leafOfTree/vim-svelte-plugin')
if executable('task')
call Plug('farseer90718/vim-taskwarrior')
minpac#add('farseer90718/vim-taskwarrior')
endif
call Plug('pedrohdz/vim-yaml-folds')
minpac#add('pedrohdz/vim-yaml-folds')
call Plug('alx741/yesod.vim')
call Plug('pbrisbin/vim-syntax-shakespeare')
minpac#add('alx741/yesod.vim')
minpac#add('pbrisbin/vim-syntax-shakespeare')
if has('macunix')
call Plug('rizzatti/dash.vim')
" We rename this plugin to make sure it loads AFTER vim-polyglot,
" since it won't work properly if it's loaded first.
call Plug('itspriddle/vim-marked', {'name': 'zzvim-marked'})
minpac#add('rizzatti/dash.vim')
# We rename this plugin to make sure it loads AFTER vim-polyglot,
# since it won't work properly if it's loaded first.
minpac#add('itspriddle/vim-marked', {name: 'zzvim-marked'})
endif
call PlugEnd()

17
vimrc
View file

@ -1,6 +1,13 @@
for [s:var, s:value] in items({'XDG_CONFIG_HOME': '~/.config', 'XDG_CACHE_HOME': '~/.cache', 'XDG_DATA_HOME': '~/.local/share', 'XDG_STATE_HOME': '~/.local/state'})
if (empty(eval('$' . s:var)))
exec 'let $' . s:var . ' = expand(s:value)'
vim9script
const xdg = {
XDG_CONFIG_HOME: '~/.config',
XDG_CACHE_HOME: '~/.cache',
XDG_DATA_HOME: '~/.local/share',
XDG_STATE_HOME: '~/.local/state',
}
for [key, default] in items(xdg)
if !has_key(environ(), key)
setenv(key, expand(default))
endif
endfor
@ -9,7 +16,7 @@ set viminfo+=n$XDG_STATE_HOME/vim/viminfo
if exists('+packpath')
set packpath^=$XDG_CONFIG_HOME/vim,$XDG_CACHE_HOME/vim
endif
let g:netrw_home = $XDG_CACHE_HOME . '/vim/netrw'
g:netrw_home = $XDG_CACHE_HOME .. '/vim/netrw'
let $MYVIMRC = $XDG_CONFIG_HOME . '/vim/init.vim'
$MYVIMRC = $XDG_CONFIG_HOME .. '/vim/init.vim'
source $MYVIMRC