commit 991bdda0450bd46f607ae1ff90681d9dd6a1391a
parent 0dd8d7527bf810690b49bfc32b9cfad3b7d150af
Author: Szymon Mikulicz <szymon.mikulicz@posteo.net>
Date: Fri, 10 Apr 2020 18:21:32 +0200
nvim: hello minpac goodbye vim-plug
Diffstat:
1 file changed, 128 insertions(+), 55 deletions(-)
diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim
@@ -2,50 +2,57 @@ if &shell =~# 'fish$'
set shell=bash
endif
-" Install vim-plug if not isntalled
-if empty(glob('~/.local/share/nvim/site/autoload/plug.vim'))
- silent !curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs
- \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
- autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
+if &compatible
+ set nocompatible
endif
-call plug#begin('~/.local/share/nvim/plugged')
+function! PackInit() abort
+ packadd minpac
-Plug 'joshdick/onedark.vim'
-Plug 'itchyny/lightline.vim'
+ call minpac#init()
-Plug 'scrooloose/nerdtree'
+ call minpac#add('k-takata/minpac', {'type': 'opt', 'branch': 'devel'})
-Plug 'vim-scripts/indentpython.vim'
-Plug 'Vimjas/vim-python-pep8-indent'
+ call minpac#add('vim-scripts/indentpython.vim', {'type': 'opt'})
+ call minpac#add('Vimjas/vim-python-pep8-indent', {'type': 'opt'})
-Plug 'JuliaEditorSupport/julia-vim'
+ call minpac#add('JuliaEditorSupport/julia-vim', {'type': 'opt'})
-Plug 'lervag/vimtex'
-Plug 'PietroPate/vim-tex-conceal'
+ call minpac#add('lervag/vimtex', {'type': 'opt'})
+ call minpac#add('PietroPate/vim-tex-conceal', {'type': 'opt'})
-Plug 'rust-lang/rust.vim'
+ call minpac#add('rust-lang/rust.vim', {'type': 'opt'})
-Plug 'dag/vim-fish'
+ call minpac#add('dag/vim-fish', {'type': 'opt'})
-Plug 'jalvesaq/Nvim-R'
+ call minpac#add('jalvesaq/Nvim-R', {'type': 'opt'})
-Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
+ call minpac#add('mboughaba/i3config.vim', {'type': 'opt'})
-Plug 'Shougo/neosnippet.vim'
-Plug 'Shougo/neosnippet-snippets'
+ call minpac#add('paretje/deoplete-notmuch', {'type': 'opt'})
-Plug 'paretje/deoplete-notmuch', {'for': 'mail'}
+ call minpac#add('sonph/onehalf', {'subdir': 'vim'})
-Plug 'tpope/vim-fugitive'
+ call minpac#add('itchyny/lightline.vim')
+ call minpac#add('scrooloose/nerdtree')
-Plug 'chaoren/vim-wordmotion'
+ call minpac#add('Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' })
+ call minpac#add('Shougo/neosnippet.vim')
+ call minpac#add('Shougo/neosnippet-snippets')
-Plug 'neovim/nvim-lsp'
+ call minpac#add('tpope/vim-fugitive')
-Plug 'Shougo/deoplete-lsp'
+ call minpac#add('chaoren/vim-wordmotion')
-call plug#end()
+ call minpac#add('neovim/nvim-lsp')
+ call minpac#add('Shougo/deoplete-lsp')
+endfunction
+
+command! PackUpdate call PackInit() | call minpac#update()
+command! PackClean call PackInit() | call minpac#clean()
+command! PackStatus call PackInit() | call minpac#status()
+
+packloadall
" Neosnipet
" Note: It must be "imap" and "smap". It uses <Plug> mappings.
@@ -53,31 +60,30 @@ imap <C-j> <Plug>(neosnippet_expand_or_jump)
smap <C-j> <Plug>(neosnippet_expand_or_jump)
xmap <C-j> <Plug>(neosnippet_expand_target)
+" lightline
+let g:lightline = {
+ \ 'colorscheme': 'onehalfdark',
+ \ }
+
" For conceal markers.
if has('conceal')
set conceallevel=2
let g:tex_conceal="abdgms"
endif
-" lightline
-let g:lightline = {
- \ 'colorscheme': 'onedark',
- \ }
-
" vimtex
let g:vimtex_view_method = 'zathura'
let g:vimtex_compiler_progname = 'nvr'
let g:vimtex_quickfix_enabled = 0
+"NERDTree
+map <C-k> :NERDTreeToggle<CR>
+
" nvim-lsp
lua require'nvim_lsp'.rust_analyzer.setup{}
+lua require'nvim_lsp'.pyls_ms.setup{cmd={"mspyls"}}
lua require'nvim_lsp'.texlab.setup{}
-autocmd Filetype rust setlocal omnifunc=v:lua.vim.lsp.omnifunc
-
-"NERDTree
-map <C-k> :NERDTreeToggle<CR>
-
" Deoplete
inoremap <expr><C-h> deoplete#smart_close_popup()."\<C-h>"
inoremap <expr><BS> deoplete#smart_close_popup()."\<C-h>"
@@ -94,7 +100,6 @@ imap <silent><expr> <TAB>
\ deoplete#manual_complete()
call deoplete#custom#option('omni_patterns', {
- \ 'tex': g:vimtex#re#deoplete,
\ 'r': ['[^. *\t]\.\w*', '\h\w*::\w*', '\h\w*\$\w*'],
\})
@@ -102,12 +107,93 @@ call deoplete#custom#option('sources', {
\ 'notmuch': ['notmuch', 'address', '--format=json', '--deduplicate=address', '*'],
\})
-let g:deoplete#enable_at_startup = 1
+call deoplete#enable()
+
+" Autocmds
+
+autocmd Filetype python call SetPythonOptions()
+function SetPythonOptions()
+ packadd indentpython.vim
+ packadd vim-python-pep8-indent
+ setlocal textwidth=79
+ setlocal fileformat=unix
+endfunction
+
+autocmd Filetype tex call SetTeXOptions()
+function SetTeXOptions()
+ packadd vim-tex-conceal
+ packadd vimtex
+ let g:vimteplete = '\\(?:'
+ \ . '\w*cite\w*(?:\s*\[[^]]*\]){0,2}\s*{[^}]*'
+ \ . '|(text|block)cquote\*?(?:\s*\[[^]]*\]){0,2}\s*{[^}]*'
+ \ . '|(for|hy)\w*cquote\*?{[^}]*}(?:\s*\[[^]]*\]){0,2}\s*{[^}]*'
+ \ . '|\w*ref(?:\s*{[^}]*|range\s*{[^,}]*(?:}{)?)'
+ \ . '|hyperref\s*\[[^]]*'
+ \ . '|includegraphics\*?(?:\s*\[[^]]*\]){0,2}\s*{[^}]*'
+ \ . '|(?:include(?:only)?|input|subfile)\s*{[^}]*'
+ \ . '|([cpdr]?(gls|Gls|GLS)|acr|Acr|ACR)[a-zA-Z]*\s*{[^}]*'
+ \ . '|(ac|Ac|AC)\s*{[^}]*'
+ \ . '|includepdf(\s*\[[^]]*\])?\s*{[^}]*'
+ \ . '|includestandalone(\s*\[[^]]*\])?\s*{[^}]*'
+ \ . '|(usepackage|RequirePackage|PassOptionsToPackage)(\s*\[[^]]*\])?\s*{[^}]*'
+ \ . '|documentclass(\s*\[[^]]*\])?\s*{[^}]*'
+ \ . '|begin(\s*\[[^]]*\])?\s*{[^}]*'
+ \ . '|end(\s*\[[^]]*\])?\s*{[^}]*'
+ \ . '|\w*'
+ \ .')'
+ " \ 'tex': g:vimtex#re#deoplete,
+ call deoplete#custom#option('omni_patterns', {
+ \ 'tex': g:vimteplete,
+ \})
+ setlocal sw=2
+ setlocal textwidth=79
+ setlocal iskeyword+=:
+ setlocal spell! spelllang=en
+endfunction
+
+autocmd Filetype rust call SetRustOptions()
+function SetRustOptions()
+ packadd rust.vim
+ setlocal omnifunc=v:lua.vim.lsp.omnifunc
+endfunction
+
+autocmd BufNewFile,BufRead *.jl set filetype=julia
+autocmd Filetype julia call SetJuliaOptions()
+function SetJuliaOptions()
+ packadd julia-vim
+endfunction
+
+autocmd Filetype R call SetROptions()
+autocmd Filetype noweb call SetROptions()
+function SetROptions()
+ packadd Nvim-R
+endfunction
+
+autocmd BufNewFile,BufRead *.none set filetype=mail
+autocmd Filetype mail call SetMailOptions()
+function SetMailOptions()
+ packadd deoplete-notmuch
+endfunction
+
+autocmd BufNewFile,BufRead *.fish set filetype=fish
+autocmd Filetype fish call SetFishOptions()
+function SetFishOptions()
+ packadd vim-fish
+endfunction
+
+autocmd Filetype i3config call SetI3Options()
+function SetI3Options()
+ packadd i3config.vim
+endfunction
+
+autocmd CompleteDone * silent! pclose
" vim settings
set hidden
set lazyredraw
+let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
+let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
set termguicolors
set noshowmode
set wildmenu
@@ -118,30 +204,17 @@ set softtabstop=4
set shiftwidth=4
set expandtab
set autoindent
+set noea
filetype plugin indent on
syntax on
-colorscheme onedark
+colorscheme onehalfdark
+hi Normal guibg=none
+hi LineNr guibg=none
tnoremap <Esc> <C-\><C-n>
au TermOpen * setlocal nonumber norelativenumber
au BufReadPost APKBUILD set syntax=sh noexpandtab
-
-autocmd Filetype python call SetPythonOptions()
-function SetPythonOptions()
- setlocal textwidth=79
- setlocal fileformat=unix
-endfunction
-
-autocmd Filetype tex call SetTeXOptions()
-function SetTeXOptions()
- setlocal sw=2
- setlocal textwidth=79
- setlocal iskeyword+=:
- setlocal spell! spelllang=en
-endfunction
-
-autocmd BufNewFile,BufRead *.none set filetype=mail