"***************************************************************************************** " ___ __ _ ____ __ __ _ " / _ \ / / __ __ ___ _ (_) ___ / __/ ___ / /_ / /_ (_) ___ ___ _ ___ " / ___/ / / / // / / _ `/ / / / _ \ _\ \ / -_)/ __// __/ / / / _ \ / _ `/ (_-< "/_/ /_/ \_,_/ \_, / /_/ /_//_/ /___/ \__/ \__/ \__/ /_/ /_//_/ \_, / /___/ " /___/ /___/ " "***************************************************************************************** """"""""""""""" " 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 :Goyo """"""""""" " Vista " """"""""""" nmap :Vista!! let g:vista_executive_for = { \ 'c': 'coc', \ } nnoremap vf :Vista finder coc 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 :NERDTreeToggle 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 :call comfortable_motion#flick(40) noremap :call comfortable_motion#flick(-40) 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="" "let g:UltiSnipsJumpForwardTrigger="" "let g:UltiSnipsJumpBackwardTrigger="" "let g:UltiSnipsListSnippets="" """""""""""" "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 = '' let g:coc_snippet_prev = '' " 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-ccls', \'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-template', \'coc-tabnine', \'coc-utils' \] " Remap keys for gotos nmap gd (coc-definition) nmap gy (coc-type-definition) nmap gi (coc-implementation) nmap gr (coc-references) inoremap pumvisible() ? "\" : "\u\" " Remap for rename current word nmap rn (coc-rename) " Remap for format selected region xmap f (coc-format-selected) nmap f (coc-format-selected) " Fix autofix problem of current line nmap qf (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 to trigger completion and navigate to the next item inoremap \ pumvisible() ? "\" : \ check_back_space() ? "\" : \ coc#refresh() inoremap pumvisible() ? "\" : "\" 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 set laststatus=2 endif """"""""""""""""" " Autosaving " """"""""""""""""" let g:auto_save = 1 let g:auto_save_silent = 1 let g:auto_save_events = ["InsertLeave", "TextChanged", "FocusLost"]