Split out plugin loading into individual modules
This commit is contained in:
parent
faf4739711
commit
763130d6b2
12 changed files with 343 additions and 418 deletions
80
.config/nvim/pluglist/base.vim
Normal file
80
.config/nvim/pluglist/base.vim
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
" Base Plugins - shared by vim & nvim
|
||||
|
||||
" add seamless movement between vim and tmux, switch windows with C-hjkl
|
||||
Plug 'christoomey/vim-tmux-navigator'
|
||||
" automatically save the current buffer when navigating away from vim
|
||||
let g:tmux_navigator_save_on_switch = 1
|
||||
|
||||
" automatically switch between relative and absolute numbers as buffers move
|
||||
" into / out of focus (requires number & relativenumber to be set)
|
||||
Plug 'jeffkreeftmeijer/vim-numbertoggle'
|
||||
|
||||
" sneak around your files using
|
||||
Plug 'justinmk/vim-sneak'
|
||||
" repeatedly pressing fFtTsS will advance the search instead of starting a new
|
||||
" one. To start a new one, press any other key, then fFtTsS
|
||||
let g:sneak#s_next = 1
|
||||
" use ignorecase/smartcase, depending on vim setting
|
||||
let g:sneak#use_ic_scs = 1
|
||||
|
||||
" highlight all occurences of the current word under the cursor (after 250ms
|
||||
" delay)
|
||||
Plug 'RRethy/vim-illuminate'
|
||||
|
||||
" editing Workflow
|
||||
Plug 'tpope/vim-commentary' " easily toggle comments for lines, paragraphs etc with gc
|
||||
Plug 'tpope/vim-surround' " lets you change surrounding things with cs (or ds to del, ys to add)
|
||||
Plug 'tommcdo/vim-exchange' " adds exchange operator with cx. common use: cxiw . on 2 words to switch
|
||||
Plug 'jiangmiao/auto-pairs' " Auto close brackets and ''
|
||||
|
||||
" " Ecosystem
|
||||
" " Plug 'tpope/vim-fugitive' - Will have to take a closer look some other time
|
||||
Plug 'scrooloose/nerdtree', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] } " show a directory listing within vim
|
||||
Plug 'Xuyuanp/nerdtree-git-plugin', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] } " show git status in nerdtree for files and dirs
|
||||
" highlight the line the cursor is on
|
||||
let NERDTreeHighlightCursorline = 1
|
||||
" remove Press ? for help
|
||||
let NERDTreeMinimalUI=1
|
||||
" loads nerdtree plugin when starting vim with a directory
|
||||
" this is necessary when we lazyload nerdtree with vimplug above
|
||||
" since it would only get loaded with nttoggle otherwise, and run netrw
|
||||
augroup nerd_loader
|
||||
autocmd!
|
||||
autocmd VimEnter * silent! autocmd! FileExplorer
|
||||
autocmd BufEnter,BufNew *
|
||||
\ if isdirectory(expand('<amatch>'))
|
||||
\| call plug#load('nerdtree')
|
||||
\| execute 'autocmd! nerd_loader'
|
||||
\| endif
|
||||
augroup END
|
||||
|
||||
" Fuzzy matching
|
||||
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' }
|
||||
Plug 'junegunn/fzf.vim'
|
||||
" set some fzf defaults
|
||||
" windows drops down from above, 40% of the screen
|
||||
let g:fzf_layout = { 'up': '~40%' }
|
||||
" any Fzf command is prefixed with Fzf
|
||||
" this groups them nicely together, and avoids confusion when suddenly :Buffer
|
||||
" or :Files would appear as a command otherwise
|
||||
let g:fzf_command_prefix = 'Fzf'
|
||||
" let the colors come from our colorscheme
|
||||
let g:fzf_colors =
|
||||
\ { 'fg': ['fg', 'Normal'],
|
||||
\ 'bg': ['bg', 'Normal'],
|
||||
\ 'hl': ['fg', 'Comment'],
|
||||
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
|
||||
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
|
||||
\ 'hl+': ['fg', 'Statement'],
|
||||
\ 'info': ['fg', 'PreProc'],
|
||||
\ 'border': ['fg', 'Ignore'],
|
||||
\ 'prompt': ['fg', 'Conditional'],
|
||||
\ 'pointer': ['fg', 'Exception'],
|
||||
\ 'marker': ['fg', 'Keyword'],
|
||||
\ 'spinner': ['fg', 'Label'],
|
||||
\ 'header': ['fg', 'Comment'] }
|
||||
" add some additional actions TODO perhaps unify with NerdTree mappings
|
||||
let g:fzf_action = {
|
||||
\ 'ctrl-t': 'tab split',
|
||||
\ 'ctrl-x': 'split',
|
||||
\ 'ctrl-v': 'vsplit' }
|
||||
61
.config/nvim/pluglist/completion.vim
Normal file
61
.config/nvim/pluglist/completion.vim
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
" For async completion
|
||||
Plug 'Shougo/deoplete.nvim', { 'on': [] } " automatic suggestions, can also perhaps be changed for newer plugs
|
||||
" PLUGIN: DEOPLETE
|
||||
" enable deoplete at startup
|
||||
let g:deoplete#enable_at_startup = 0
|
||||
let g:deoplete#enable_ignore_case = 1
|
||||
let g:deoplete#enable_smart_case = 1
|
||||
let g:deoplete#enable_camel_case = 1
|
||||
let g:deoplete#enable_refresh_always = 1
|
||||
let g:deoplete#max_abbr_width = 0
|
||||
let g:deoplete#max_menu_width = 0
|
||||
let g:deoplete#omni#input_patterns = get(g:,'deoplete#omni#input_patterns',{})
|
||||
|
||||
Plug 'deoplete-plugins/deoplete-go', { 'do': 'make'}
|
||||
|
||||
Plug 'Shougo/echodoc.vim', { 'on': [] }
|
||||
" PLUGIN: ECHODOC
|
||||
let g:echodoc#type="virtual"
|
||||
set splitbelow
|
||||
set completeopt+=menuone,noinsert,noselect
|
||||
set completeopt-=preview
|
||||
autocmd CompleteDone * pclose
|
||||
|
||||
Plug 'w0rp/ale', { 'on': [] } " asynchronous linting - might be superseded by lsp or coc.nvim at some point
|
||||
" PLUGIN: ALE
|
||||
" clearer Error and warning signs for the gutter
|
||||
let g:ale_sign_error = '⤫'
|
||||
let g:ale_sign_warning = '⚠'
|
||||
" Enable integration with airline.
|
||||
let g:airline#extensions#ale#enabled = 1
|
||||
let g:ale_fix_on_save = 1
|
||||
let g:ale_fixers = {
|
||||
\'javascipt': ['eslint', 'prettier'],
|
||||
\'html': ['tidy','prettier'],
|
||||
\'typescript': ['prettier','tslint'],
|
||||
\'*': ['remove_trailing_lines', 'trim_whitespace'],
|
||||
\'go': ['gofmt'],
|
||||
\'sh': ['shfmt'],
|
||||
\'zsh': ['shfmt'],
|
||||
\}
|
||||
let g:ale_linters = {
|
||||
\ 'go': ['gopls'],
|
||||
\ 'sh': ['language_server','shellcheck'],
|
||||
\ 'zsh': ['language_server','shellcheck'],
|
||||
\}
|
||||
|
||||
" lazy loading since they require a lot of startup time
|
||||
augroup load_ide_features
|
||||
autocmd!
|
||||
autocmd InsertEnter * call plug#load('ale', 'deoplete.nvim', 'echodoc.vim')
|
||||
\| autocmd! load_ide_features
|
||||
autocmd InsertEnter * call deoplete#enable()
|
||||
autocmd InsertEnter * call echodoc#enable()
|
||||
|
||||
|
||||
augroup PandocCompletion
|
||||
" Add pandoc citations to deoplete automatic completions
|
||||
autocmd InsertEnter * call deoplete#custom#var('omni', 'input_patterns', {
|
||||
\ 'pandoc': '@'
|
||||
\})
|
||||
augroup END
|
||||
36
.config/nvim/pluglist/design.vim
Normal file
36
.config/nvim/pluglist/design.vim
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
" Design
|
||||
Plug 'vim-airline/vim-airline'
|
||||
" PLUGIN: AIRLINE
|
||||
let g:airline_powerline_fonts=1
|
||||
" disable automatically refreshing the mux statusbar since it breaks tmux
|
||||
" prefix highlighting. Instead, when changing vim statusbar just create
|
||||
" snapshot with :TmuxlineSnapshot file and stick it into tmux config manually
|
||||
let g:airline#extensions#tmuxline#enabled = 1
|
||||
" custom preset with left-justified window list
|
||||
Plug 'vim-airline/vim-airline-themes'
|
||||
|
||||
Plug 'edkolev/tmuxline.vim'
|
||||
" PLUGIN: TMUXLINE
|
||||
let g:tmuxline_preset = {
|
||||
\'a' : '#S',
|
||||
\'b' : '#(whoami)',
|
||||
\'c' : '#I:#P',
|
||||
\'win' : '#I #W',
|
||||
\'cwin' : [' ', '#I #W'],
|
||||
\'x' : '#{?client_prefix,#[fg=colour232]#[bg=brightblue],} %H:%M:%S',
|
||||
\'y' : '%d-%b-%y',
|
||||
\'z' : '#H',
|
||||
\'options' : {}}
|
||||
|
||||
" Colorschemes
|
||||
Plug 'rafi/awesome-vim-colorschemes'
|
||||
Plug 'reedes/vim-colors-pencil'
|
||||
Plug 'rakr/vim-togglebg'
|
||||
|
||||
" Enable italics for colorschemes that support them
|
||||
let g:gruvbox_italic=1
|
||||
let g:one_allow_italics=1
|
||||
let g:pencil_terminal_italics=1
|
||||
|
||||
" per this discussion: https://github.com/junegunn/vim-plug/issues/300
|
||||
autocmd VimEnter * colorscheme one
|
||||
29
.config/nvim/pluglist/latex.vim
Normal file
29
.config/nvim/pluglist/latex.vim
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
" RMarkdown & LaTeX workflow
|
||||
Plug 'vim-pandoc/vim-pandoc-syntax'
|
||||
Plug 'vim-pandoc/vim-pandoc'
|
||||
" PLUGIN: vim-pandoc
|
||||
" handle markdown files with pandoc (and pandoc syntax!)
|
||||
let g:pandoc#modules#disabled = ["folding"]
|
||||
let g:pandoc#filetypes#pandoc_markdown = 1
|
||||
" disable all default keymaps
|
||||
let g:pandoc#keyboard#use_default_mappings=0
|
||||
let g:pandoc#hypertext#use_default_mappings=0
|
||||
" if there's a pdf and an html or similar, open the pdf
|
||||
let g:pandoc#command#prefer_pdf=1
|
||||
" look for bibtex files w/ same name as edited one, then .bib in current dir, yaml frontmatter, and finally the globally set bibs file
|
||||
let g:pandoc#biblio#sources="bcyg"
|
||||
" the globally set bibs file
|
||||
let g:pandoc#biblio#bibs=[expand("~/Nextcloud/Library/academia/academia.bib")]
|
||||
let g:pandoc#biblio#use_bibtool=1
|
||||
let g:pandoc#biblio#use_preview=1
|
||||
let g:pandoc#completion#bib#mode='citeproc'
|
||||
let g:pandoc#folding#fold_yaml=1
|
||||
let g:pandoc#folding#fastfolds=1
|
||||
" let g:pandoc#folding#level=2
|
||||
let g:pandoc#spell#default_langs=["en_us", "de_de"]
|
||||
let g:pandoc#hypertext#ausosave_on_edit_open_link=1
|
||||
let g:pandoc#hypertext#create_if_no_alternates_exists=1
|
||||
let g:pandoc#syntax#conceal#use = 1
|
||||
let g:pandoc#syntax#conceal#urls = 1
|
||||
|
||||
" Plug 'vim-pandoc/vim-rmarkdown'
|
||||
20
.config/nvim/pluglist/notes.vim
Normal file
20
.config/nvim/pluglist/notes.vim
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
Plug 'dyng/ctrlsf.vim'
|
||||
|
||||
Plug 'lervag/wiki.vim'
|
||||
" PLUGIN: wiki.vim
|
||||
if $WIKIROOT ==? ""
|
||||
let g:wiki_root = '~/Nextcloud/Notes/'
|
||||
else
|
||||
let g:wiki_root = $WIKIROOT
|
||||
endif
|
||||
" filetypes to automatically enable the plugin for, seems to take file endings
|
||||
" rather than vim ft
|
||||
let g:wiki_filetypes = ['md', 'mkd', 'markdown', 'wiki']
|
||||
let g:wiki_link_extension = '.md'
|
||||
let g:wiki_link_target_type = 'md'
|
||||
let g:wiki_mappings_use_defaults = 1
|
||||
|
||||
Plug 'alok/notational-fzf-vim'
|
||||
" Configure notational-fzf-vim
|
||||
let g:nv_search_paths = [ g:wiki_root ]
|
||||
let g:nv_wrap_preview_text=1
|
||||
33
.config/nvim/pluglist/syntaxes.vim
Normal file
33
.config/nvim/pluglist/syntaxes.vim
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
" Language Integration
|
||||
Plug 'sheerun/vim-polyglot' " syntax plugins for almost every language
|
||||
Plug 'stephpy/vim-yaml'
|
||||
Plug 'mhartington/nvim-typescript', {'for': 'typescript','do': './install.sh'}
|
||||
|
||||
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
|
||||
" PLUGIN: vim-go
|
||||
" change the tabstops for go to use tabs and a width of 4
|
||||
" this conforms with the gofmt expectations
|
||||
au FileType go set noexpandtab
|
||||
au FileType go set shiftwidth=4
|
||||
au FileType go set softtabstop=4
|
||||
au FileType go set tabstop=4
|
||||
" enable all sorts of highlighting options for
|
||||
" variables/functions/arguments...
|
||||
let g:go_highlight_build_constraints = 1
|
||||
let g:go_highlight_extra_types = 1
|
||||
let g:go_highlight_fields = 1
|
||||
let g:go_highlight_functions = 1
|
||||
let g:go_highlight_methods = 1
|
||||
let g:go_highlight_operators = 1
|
||||
let g:go_highlight_structs = 1
|
||||
let g:go_highlight_types = 1
|
||||
" enable highlighting of other uses of the same variable
|
||||
let g:go_auto_sameids = 1
|
||||
" automatically import needed dependencies
|
||||
" TODO do I need this? not doing it automatically does lead to more conscious
|
||||
" decision making on imports
|
||||
let g:go_fmt_command = "goimports"
|
||||
" show type information for variables in the status line
|
||||
let g:go_auto_type_info = 1
|
||||
|
||||
Plug 'aliou/bats.vim'
|
||||
6
.config/nvim/pluglist/vim.vim
Normal file
6
.config/nvim/pluglist/vim.vim
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
if has('nvim')
|
||||
finish
|
||||
endif
|
||||
|
||||
" a minimal definition of variables TODO still necessary for nvim?
|
||||
Plug 'tpope/vim-sensible'
|
||||
Loading…
Add table
Add a link
Reference in a new issue