dotfiles/.config/nvim/config/plugin-settings.vim

403 lines
14 KiB
VimL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"*****************************************************************************************
" ___ __ _ ____ __ __ _
" / _ \ / / __ __ ___ _ (_) ___ / __/ ___ / /_ / /_ (_) ___ ___ _ ___
" / ___/ / / / // / / _ `/ / / / _ \ _\ \ / -_)/ __// __/ / / / _ \ / _ `/ (_-<
"/_/ /_/ \_,_/ \_, / /_/ /_//_/ /___/ \__/ \__/ \__/ /_/ /_//_/ \_, / /___/
" /___/ /___/
"
"*****************************************************************************************
"""""""""""""""
" Tmuxline "
" """""""""""""
let g:tmuxline_preset = {
\'a' : '#S',
\'b' : '#W',
\'c' : ['#(~/.config/Scripts/showip)'],
\'win' : ['#I', '#W'],
\'cwin' : ['#I', '#W', '#F'],
\'y' : ['%R', '%a', '%Y'],
\'z' : '#H'}
""""""""""""""""
" Git Gutter "
"""""""""""""""
let g:gitgutter_enabled = 1
let g:gitgutter_grep=''
"""""""""""
" VimTex "
"""""""""""
let g:latex_view_general_viewer = "zathura"
let g:vimtex_view_method = "zathura"
let g:tex_flavor = "latex"
let g:vimtex_quickfix_open_on_warning = 0
let g:vimtex_quickfix_mode = 2
let g:vimtex_compiler_method = "latexmk"
let g:vimtex_compiler_progname = 'nvr'
let g:vimtex_compiler_latexmk = {
\ 'background' : 1,
\ 'build_dir' : '',
\ 'callback' : 1,
\ 'continuous' : 1,
\ 'executable' : 'latexmk',
\ 'options' : [
\ '-verbose',
\ '-file-line-error',
\ '-synctex=1',
\ '-interaction=nonstopmode',
\ ],
\}
"""""""""""
" Goyo "
"""""""""""
nmap <F6> :Goyo<CR>
"""""""""""
" Vista "
"""""""""""
nmap <F8> :Vista!!<CR>
let g:vista_executive_for = {
\ 'c': 'coc',
\ }
nnoremap <silent><leader>vf :Vista finder coc<CR>
let g:vista_icon_indent = ["╰─▸ ", "├─▸ "]
let g:vista#renderer#enable_icon = 1
let g:vista_sidebar_width = 50
""""""""""""
"NerdTree "
""""""""""""
" if nerdtree is only window, kill nerdtree so buffer can die
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | :bdelete | endif
map <F7> :NERDTreeToggle<CR>
let nerdtreequitonopen = 0
let NERDTreeShowHidden=1
let nerdchristmastree=1
let g:NERDTreeMinimalUI = 1
let g:nerdtreewinsize = 25
let g:NERDTreeDirArrowExpandable = '▷'
let g:NERDTreeDirArrowCollapsible = '▼'
let NERDTreeAutoCenter=1
let g:NERDTreeIndicatorMapCustom = {
\ "modified" : "✹",
\ "staged" : "✚",
\ "untracked" : "✭",
\ "renamed" : "➜",
\ "unmerged" : "═",
\ "deleted" : "✖",
\ "dirty" : "✗",
\ "clean" : "✔︎",
\ 'ignored' : '☒',
\ "unknown" : "?"
\ }
""""""""""""
"Airline "
""""""""""""
"main settings
let g:airline_theme='nord'
let g:airline_powerline_fonts = 1
let g:airline_symbols = {}
let g:airline_skip_empty_sections = 1
let g:airline_left_sep = ''
let g:airline_left_alt_sep = ''
let g:airline_right_sep = ''
let g:airline_right_alt_sep = ''
let g:airline_symbols_branch = ''
let g:airline_powerline_fonts = 1
let g:airline_symbols.crypt = ''
let g:airline_symbols.linenr = '☰'
let g:airline_symbols.linenr = '␊'
let g:airline_symbols.linenr = '␤'
let g:airline_symbols.linenr = '¶'
let g:airline_symbols.maxlinenr = ''
let g:airline_symbols.paste = 'ρ'
let g:airline_symbols.paste = 'Þ'
let g:airline_symbols.paste = '∥'
let g:airline_symbols.spell = 'Ꞩ'
let g:airline_symbols.notexists = 'Ɇ'
let g:airline_symbols.whitespace = 'Ξ'
let g:airline_symbols.modified = '  '
let g:airline_section_error = '%{airline#util#wrap(airline#extensions#coc#get_error(),0)}'
let g:airline_section_warning = '%{airline#util#wrap(airline#extensions#coc#get_warning(),0)}'
"extensions
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#ale#enabled = 1
let g:airline#extensions#coc#enabled = 1
let g:airline#extensions#unicode#enabled = 1
let g:airline#extensions#branch#enabled = 1
let g:airline#extensions#vista#enabled = 1
let g:airline#extensions#hunks#enabled = 1
"extension settings
let airline#extensions#coc#stl_format_err = '%E{[%e(#%fe)]}'
let airline#extensions#coc#stl_format_warn = '%W{[%w(#%fw)]}'
let airline#extensions#coc#warning_symbol = ' :'
let airline#extensions#coc#error_symbol = ':'
let g:airline#extensions#hunks#hunk_symbols = [' :', ' :', ' :']
let g:airline#extensions#branch#format = 2
"""""""""""""
"Devicons "
"""""""""""""
let g:webdevicons_enable = 1
let g:webdevicons_enable_unite = 1
let g:webdevicons_enable_denite = 1
let g:webdevicons_enable_nerdtree = 1
let g:webdevicons_enable_airline_tabline = 1
let g:webdevicons_enable_vimfiler = 1
let g:WebDevIconsUnicodeDecorateFileNodes = 1
let g:WebDevIconsUnicodeDecorateFolderNodes = 1
let g:WebDevIconsUnicodeGlyphDoubleWidth = 1
let g:webdevicons_enable_airline_statusline = 1
let g:WebDevIconsNerdTreeGitPluginForceVAlign = 1
let g:WebDevIconsUnicodeGlyphDoubleWidth = 1
let g:WebDevIconsUnicodeDecorateFolderNodesDefaultSymbol = ''
let g:DevIconsDefaultFolderOpenSymbol = ''
"""""""""""""""""
"Comfy-Scroll "
"""""""""""""""""
noremap <silent> <ScrollWheelDown> :call comfortable_motion#flick(40)<CR>
noremap <silent> <ScrollWheelUp> :call comfortable_motion#flick(-40)<CR>
let g:comfortable_motion_friction = 50.0
let g:comfortable_motion_air_drag = 1.0
""""""""""
" Emoji "
""""""""""
set completefunc=emoji#complete
"""""""""""""""""
"Indent Guides "
"""""""""""""""""
"let g:indentLine_char = '▏'
let g:indentLine_char_list = ['|', '¦', '┆', '┊']
let g:indent_guides_auto_colors = 1
let g:indentLine_fileTypeExclude = [
\'defx',
\'markdown',
\'denite',
\'startify',
\'tagbar',
\'vista_kind',
\'vista'
\]
"""""""""""""
"Autopairs "
"""""""""""""
let g:AutoPairsFlyMode = 1
"""""""""""""
"Ultinsips "
"""""""""""""
" These were interfering with coc.nvims completion keybinds
"let g:UltiSnipsExpandTrigger="<tab>"
"let g:UltiSnipsJumpForwardTrigger="<c-b>"
"let g:UltiSnipsJumpBackwardTrigger="<c-z>"
"let g:UltiSnipsListSnippets="<c-tab>"
""""""""""""
"Startify "
""""""""""""
function! s:center(lines) abort
let longest_line = max(map(copy(a:lines), 'strwidth(v:val)'))
let centered_lines = map(copy(a:lines),
\ 'repeat(" ", (&columns / 2) - (longest_line / 2)) . v:val')
return centered_lines
endfunction
let s:header= [
\"▄▀▀▄ ▄▀▀▄ ▄▀▀█▀▄ ▄▀▀▄ ▄▀▄ ▄▀▀▄▀▀▀▄ ▄▀▀█▄▄▄▄ ▄▀▀█▄ ▄▀▀▄▀▀▀▄ ▄▀▀█▄▄▄▄ ▄▀▀▄▀▀▀▄ ",
\"█ █ █ █ █ █ █ █ ▀ █ █ █ █ ▐ ▄▀ ▐ ▐ ▄▀ ▀▄ █ █ █ ▐ ▄▀ ▐ █ █ █ ",
\"▐ █ █ ▐ █ ▐ ▐ █ █ ▐ █▀▀█▀ █▄▄▄▄▄ █▄▄▄█ ▐ █▀▀▀▀ █▄▄▄▄▄ ▐ █▀▀█▀ ",
\" █ ▄▀ █ █ █ ▄▀ █ █ ▌ ▄▀ █ █ █ ▌ ▄▀ █ ",
\" ▀▄▀ ▄▀▀▀▀▀▄ ▄▀ ▄▀ █ █ ▄▀▄▄▄▄ █ ▄▀ ▄▀ ▄▀▄▄▄▄ █ █ ",
\" █ █ █ █ ▐ ▐ █ ▐ ▐ ▐ █ █ ▐ ▐ ▐ ",
\" ▐ ▐ ▐ ▐ ▐ ▐ ▐ ",
\"",
\"",
\" ;::::;",
\" ;::::; :;",
\" ;:::::' :;",
\" ;:::::; ;.",
\" ,:::::' ; OOO\ ",
\" ::::::; ; OOOOO\ ",
\" ;:::::; ; OOOOOOOO",
\" ,;::::::; ;' / OOOOOOO",
\" ;:::::::::`. ,,,;. / / DOOOOOO",
\" .';:::::::::::::::::;, / / DOOOO",
\" ,::::::;::::::;;;;::::;, / / DOOO",
\" ;`::::::`'::::::;;;::::: ,#/ / DOOO",
\" :`:::::::`;::::::;;::: ;::# / DOOO",
\" ::`:::::::`;:::::::: ;::::# / DOO",
\" `:`:::::::`;:::::: ;::::::#/ DOO",
\" :::`:::::::`;; ;:::::::::## OO",
\" ::::`:::::::`;::::::::;:::# OO",
\" `:::::`::::::::::::;'`:;::# O",
\" `:::::`::::::::;' / / `:#",
\" ::::::`:::::;' / / `#",
\]
let g:startify_change_to_dir = 1
let g:startify_custom_header = s:center(s:header)
" Optionally create and use footer
"let s:header= []
"let g:startify_custom_footer = s:center(s:footer)
"""""""
"COC "
"""""""
" Define Error Symbols and colors
let g:coc_status_warning_sign = ''
let g:coc_status_error_sign = ''
hi CocWarningSign ctermfg=blue
hi CocErrorSign ctermfg=red
hi CocInfoSign ctermfg=yellow
hi CocHintSign ctermfg=green
" Transparent popup window
hi! Pmenu ctermbg=black
hi! PmenuSel ctermfg=2
hi! PmenuSel ctermbg=0
" Brighter line numbers
hi! LineNr ctermfg=NONE guibg=NONE
" KEY REMAPS ""
set updatetime=300
let g:ycm_server_python_interpreter = '/usr/bin/python3'
let g:coc_snippet_next = '<TAB>'
let g:coc_snippet_prev = '<S-TAB>'
" Extensions. Some need configuration.
" coc-java needs a valid JVM filepath defined in coc-settings
" coc-ccls needs ccls (available on aur)
" coc-eslint needs eslint npm package installed globally
let g:coc_global_extensions = [
\'coc-html',
\'coc-xml',
\'coc-java',
\'coc-powershell',
\'coc-r-lsp',
\'coc-vimlsp',
\'coc-lua',
\'coc-sql',
\'coc-go',
\'coc-css',
\'coc-sh',
\'coc-snippets',
\'coc-prettier',
\'coc-eslint',
\'coc-emmet',
\'coc-tsserver',
\'coc-translator',
\'coc-fish',
\'coc-docker',
\'coc-pairs',
\'coc-json',
\'coc-python',
\'coc-imselect',
\'coc-highlight',
\'coc-git',
\'coc-github',
\'coc-gitignore',
\'coc-emoji',
\'coc-lists',
\'coc-post',
\'coc-stylelint',
\'coc-yaml',
\'coc-tabnine',
\'coc-utils'
\]
" Remap keys for gotos
nmap <silent> gd <Plug>(coc-definition)
nmap <silent> gy <Plug>(coc-type-definition)
nmap <silent> gi <Plug>(coc-implementation)
nmap <silent> gr <Plug>(coc-references)
inoremap <expr> <cr> pumvisible() ? "\<C-y>" : "\<C-g>u\<CR>"
" Remap for rename current word
nmap <leader>rn <Plug>(coc-rename)
" Remap for format selected region
xmap <leader>f <Plug>(coc-format-selected)
nmap <leader>f <Plug>(coc-format-selected)
" Fix autofix problem of current line
nmap <leader>qf <Plug>(coc-fix-current)
augroup MyAutoCmd
autocmd!
" Setup formatexpr specified filetype(s).
autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected')
" Update signature help on jump placeholder
autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp')
augroup end
" Highlight symbol under cursor on CursorHold
"autocmd CursorHold * silent call CocActionAsync('highlight')
" map <tab> to trigger completion and navigate to the next item
inoremap <silent><expr> <TAB>
\ pumvisible() ? "\<C-n>" :
\ <SID>check_back_space() ? "\<TAB>" :
\ coc#refresh()
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>"
function! s:check_back_space() abort
let col = col('.') - 1
return !col || getline('.')[col - 1] =~# '\s'
endfunction
"""""""""""""""""
"Nerd Commenter "
"""""""""""""""""
" Add spaces after comment delimiters by default
let g:NERDSpaceDelims = 1
" Use compact syntax for prettified multi-line comments
let g:NERDCompactSexyComs = 1
" Allow commenting and inverting empty lines (useful when commenting a region)
"
"""""""""""""""""
" Fuzzy Finding "
"""""""""""""""""
let g:fzf_colors =
\ { 'fg': ['bg', 'Normal'],
\ 'bg': ['bg', 'Normal'],
\ 'hl': ['fg', 'Comment'],
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
\ 'bg+': ['fg', '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'] }
" Hide status bar while using fzf commands
if has('nvim') || has('gui_running')
autocmd! FileType fzf
autocmd FileType fzf set laststatus=0 | autocmd WinLeave <buffer> set laststatus=2
endif
"""""""""""""""""
" Autosaving "
"""""""""""""""""
let g:auto_save = 1
let g:auto_save_silent = 1
let g:auto_save_events = ["InsertLeave", "TextChanged", "FocusLost"]