From fa5fa1b74f8cc029c0f579c9da4dedc76ed1ff52 Mon Sep 17 00:00:00 2001 From: Harri Lahtinen Date: Sun, 5 Jan 2020 21:57:34 +0200 Subject: [PATCH] nvim configs... --- .config/nvim/coc-settings.json | 89 ++++++ .config/nvim/config/main.vim | 150 +++++++++ .config/nvim/config/mappings.vim | 119 +++++++ .config/nvim/config/plugin-settings.vim | 404 ++++++++++++++++++++++++ .config/nvim/config/plugins.vim | 92 ++++++ 5 files changed, 854 insertions(+) create mode 100644 .config/nvim/coc-settings.json create mode 100644 .config/nvim/config/main.vim create mode 100644 .config/nvim/config/mappings.vim create mode 100644 .config/nvim/config/plugin-settings.vim create mode 100644 .config/nvim/config/plugins.vim diff --git a/.config/nvim/coc-settings.json b/.config/nvim/coc-settings.json new file mode 100644 index 0000000..91c22e2 --- /dev/null +++ b/.config/nvim/coc-settings.json @@ -0,0 +1,89 @@ +{ + "coc.preferences.colorSupport": true, + "diagnostic.refreshOnInsertMode": true, + "diagnostic.hintSign": "ღ", + "diagnostic.infoSign": "ʘ", + "diagnostic.errorSign": "", + "diagnostic.warningSign": "", + "diagnostic.enable": true, + "diagnostic.signOffset": 9999999, + "diagnostic.highlightOffset": 9999999, + "diagnostic.virtualText": true, + "diagnostic.virtualTextPrefix": " ❯❯❯ ", + + //CocList + "list.source.files.defaultOptions": ["--auto-preview"], + "list.source.outline.defaultOptions": ["--auto-preview"], + //prettier + "coc.preferences.formatOnSaveFiletypes": ["css","markdown"], + "prettier.statusItemText": "★ ", + "prettier.eslintIntegration": true, + "prettier.tslintIntegration": true, + "prettier.stylelintIntegration": true, + //git + "git.enableGutters": true, + "git.branchCharacter":"\uf408", + "git.addGBlameToBufferVar": true, + "git.addGBlameToVirtualText": false, + "git.virtualTextPrefix": " ❯❯❯ ", + "git.addedSign.hlGroup": "GitGutterAdd", + "git.changedSign.hlGroup": "GitGutterChange", + "git.removedSign.hlGroup": "GitGutterDelete", + "git.topRemovedSign.hlGroup": "GitGutterDelete", + "git.changeRemovedSign.hlGroup": "GitGutterChangeDelete", + + "suggest.completionItemKindLabels": { + "function": "\uf794", + "method": "\uf6a6", + "variable": "\uf71b", + "constant": "\uf8ff", + "struct": "\ufb44", + "class": "\uf0e8", + "interface": "\ufa52", + "text": "\ue612", + "enum": "\uf435", + "enumMember": "\uf02b", + "module": "\uf668", + "color": "\ue22b", + "property": "\ufab6", + "field": "\uf93d", + "unit": "\uf475", + "file": "\uf471", + "value": "\uf8a3", + "event": "\ufacd", + "folder": "\uf115", + "keyword": "\uf893", + "snippet": "\uf64d", + "operator": "\uf915", + "reference": "\uf87a", + "typeParameter": "\uf278", + "default": "\uf29c" + }, + + "java.home": "/usr/lib/jvm/java-13-openjdk/", + "eslint.trace.server": "verbose", + "languageserver": { + "ccls": { + "command": "ccls", + "filetypes": [ + "c", + "cpp", + "objc", + "objcpp"], + "rootPatterns": [ + ".ccls", + "compile_commands.json", + ".vim/", + ".git/", + ".hg/"], + "initializationOptions": { + "cache": { + "directory": "/tmp/ccls" + } + } + } + }, + "java.errors.incompleteClasspath.severity": "ignore", + + +} diff --git a/.config/nvim/config/main.vim b/.config/nvim/config/main.vim new file mode 100644 index 0000000..4d56c0a --- /dev/null +++ b/.config/nvim/config/main.vim @@ -0,0 +1,150 @@ +"*********************************************************************************** +" __ ___ _ ____ __ __ _ +" / |/ / ___ _ (_) ___ / __/ ___ / /_ / /_ (_) ___ ___ _ ___ +" / /|_/ / / _ `/ / / / _ \ _\ \ / -_)/ __// __/ / / / _ \ / _ `/ (_-< +"/_/ /_/ \_,_/ /_/ /_//_/ /___/ \__/ \__/ \__/ /_/ /_//_/ \_, / /___/ +" /___/ +" +"*********************************************************************************** + + + +" Colorscheme +colorscheme nord + +augroup specify_filetype + autocmd! + autocmd BufRead,BufNewFile *.md set filetype=markdown + autocmd BufRead,BufNewFile *.txt set filetype=text +augroup END + + +" Longer leader key timeout +set timeout timeoutlen=1500 + +" Enable spell-checking for certain files +autocmd FileType text,markdown setlocal spell + +" Limit line length for text files +autocmd FileType text,markdown,tex setlocal textwidth=180 + +" Don't automatically collapse markdown +set conceallevel=0 + +" Don't display mode in command line (airline already shows it) +set noshowmode + +" Automatically re-read file if a change was detected outside of vim +set autoread + +" no case-sensitive search unless uppercase is present +set ignorecase +set smartcase + +" Enable mouse scroll +set mouse=a + +" Allow a new buffer to be opened without saving current +set hidden + +" Statusline Config +set statusline+=%F +set cmdheight=1 + +" Tab Settings +set expandtab +set tabstop=2 +set softtabstop=2 +set shiftwidth=2 +set smarttab +set autoindent +set smartindent +set shiftround + +" Enable syntax highlighting +syntax on + +" Print syntax highlighting. +set printoptions+=syntax:y + +" Matching braces/tags +set showmatch + +" Keep a backup file. +"set backup + +" Save undo tree. +"set undofile + +" Do not back up temporary files. +set backupskip=/tmp/*,/private/tmp/*" + +" Store backup files in one place. +set backupdir^=$HOME/.config/nvim//storage/backups// + +" Store swap files in one place. +set dir^=$HOME/.config/nvim//storage/swaps// + +" Store undo files in one place. +set undodir^=$HOME/.config/nvim/storage/undos// + +" No line wrapping +set nowrap + +" Turns on detection for fyletypes, indentation files and plugin files +filetype plugin indent on + +" Split window appears right the current one. +set splitright + +" Make sure compatible mode is disabled +set nocompatible + +" Share yank buffer with system clipboard +set clipboard=unnamedplus + +" Show next 3 lines while scrolling. +if !&scrolloff + set scrolloff=3 +endif + +" Show next 5 columns while side-scrolling. +if !&sidescrolloff + set sidescrolloff=5 +endif + +" Jump to the last known position when reopening a file. +if has("autocmd") + au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") + \| exe "normal! g'\"" | endif +endif + +" Relative line numbers +set number +augroup numbertoggle + autocmd! + autocmd BufEnter,FocusGained,InsertLeave * set relativenumber + autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber +augroup END + + +" Subscript digraphs for maths +"alphsubs ---------------------- {{{ + execute "digraphs ks " . 0x2096 + execute "digraphs as " . 0x2090 + execute "digraphs es " . 0x2091 + execute "digraphs hs " . 0x2095 + execute "digraphs is " . 0x1D62 + execute "digraphs ks " . 0x2096 + execute "digraphs ls " . 0x2097 + execute "digraphs ms " . 0x2098 + execute "digraphs ns " . 0x2099 + execute "digraphs os " . 0x2092 + execute "digraphs ps " . 0x209A + execute "digraphs rs " . 0x1D63 + execute "digraphs ss " . 0x209B + execute "digraphs ts " . 0x209C + execute "digraphs us " . 0x1D64 + execute "digraphs vs " . 0x1D65 + execute "digraphs xs " . 0x2093 +"}}} diff --git a/.config/nvim/config/mappings.vim b/.config/nvim/config/mappings.vim new file mode 100644 index 0000000..dddc98c --- /dev/null +++ b/.config/nvim/config/mappings.vim @@ -0,0 +1,119 @@ +"################################################################################### +" __ ___ _ +" / |/ /____ _ ____ ____ (_)____ ____ _ _____ +" / /|_/ // __ `// __ \ / __ \ / // __ \ / __ `// ___/ +" / / / // /_/ // /_/ // /_/ // // / / // /_/ /(__ ) +" /_/ /_/ \__,_// .___// .___//_//_/ /_/ \__, //____/ +" /_/ /_/ /____/ +" +"################################################################################### + +"*********************************************************************************** + +" Main Vim Keybinds + +"*********************************************************************************** + + +" Set leader to space bar +let mapleader = " " +let maplocalleader = " " + +" Window Navigation +" Navigate to left window. +nnoremap h +" Navigate to down window. +nnoremap j +" Navigate to top window. +nnoremap k +" Navigate to right window. +nnoremap l +" Horizontal split then move to bottom window. +nnoremap - s +" Vertical split then move to right window. +nnoremap \| vl +" Cycle tabs with Tab and Shift+Tab +nnoremap :bnext +nnoremap :bprevious +" Kill buffer with Space+bk +nnoremap bk :bdelete + +"Faster ESC. +inoremap jk +inoremap kj + +" Indent controls +" Reselect text ater indent/unindent. +vnoremap < >gv +" Tab to indent in visual mode. +vnoremap >gv +" Shift+Tab to unindent in visual mode. +vnoremap Al :left +nnoremap Ac :center +nnoremap Ar :right +vnoremap Al :left +vnoremap Ac :center +vnoremap Ar :right + +"*********************************************************************************** + +" Plugin specific keybinds + +"*********************************************************************************** + +" Git status +nnoremap gs :Gstatus +" Git diff in split window +nnoremap gd :Gdiffsplit +" Git commit +nnoremap gc :Gcommit +" Git push +nnoremap gP :Gpush +" Git pull +nnoremap gp :Gpull +" Git move +nnoremap gm :Gmove +" Git merge +nnoremap gM :Gmerge +" browse current file on web +nnoremap gb :Gbrowse +" browse current line on web +nnoremap gbl :CocCommand git.browserOpen +" View chunk information in preview window. +nnoremap gh :CocCommand git.chunkInfo +" View commit information in preview window. +nnoremap gsc :CocCommand git.showCommit +" Toggle git gutter sign columns +nnoremap gg :CocCommand git.toggleGutters + + +" NERD Commenter +" Toggle comments in visual or normal mode +nnoremap n :call NERDComment(0,"toggle") +vnoremap n :call NERDComment(1,"toggle") +" Toggle a sexy comment +nnoremap ns :call NERDComment(0,"sexy") +vnoremap ns :call NERDComment(1,"sexy") +" append a comment +nnoremap na :call NERDComment(0,"append") +vnoremap na :call NERDComment(1,"append") +" uncomment section +nnoremap nu :call NERDComment(0,"uncomment") +vnoremap nu :call NERDComment(1,"uncomment") +" invert comments +nnoremap ni :call NERDComment(0,"invert") +vnoremap ni :call NERDComment(1,"invert") +" comment section +nnoremap nc :call NERDComment(0,"comment") +vnoremap nc :call NERDComment(1,"comment") +" + +" Fuzzy Finding +" fuzzy find files +nnoremap ff :Files +" fuzzy find tags +nnoremap ft :Vista finder ctags diff --git a/.config/nvim/config/plugin-settings.vim b/.config/nvim/config/plugin-settings.vim new file mode 100644 index 0000000..4e0feec --- /dev/null +++ b/.config/nvim/config/plugin-settings.vim @@ -0,0 +1,404 @@ +"***************************************************************************************** +" ___ __ _ ____ __ __ _ +" / _ \ / / __ __ ___ _ (_) ___ / __/ ___ / /_ / /_ (_) ___ ___ _ ___ +" / ___/ / / / // / / _ `/ / / / _ \ _\ \ / -_)/ __// __/ / / / _ \ / _ `/ (_-< +"/_/ /_/ \_,_/ \_, / /_/ /_//_/ /___/ \__/ \__/ \__/ /_/ /_//_/ \_, / /___/ +" /___/ /___/ +" +"***************************************************************************************** +""""""""""""""" +" 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"] + + diff --git a/.config/nvim/config/plugins.vim b/.config/nvim/config/plugins.vim new file mode 100644 index 0000000..302c613 --- /dev/null +++ b/.config/nvim/config/plugins.vim @@ -0,0 +1,92 @@ + +"##################################################################################################### +" ____ __ _ +" / __ \ / / __ __ ____ _ (_) ____ _____ +" / /_/ / / / / / / / / __ `/ / / / __ \ / ___/ +" / ____/ / / / /_/ / / /_/ / / / / / / / (__ ) +" /_/ /_/ \__,_/ \__, / /_/ /_/ /_/ /____/ +" /____/ +"###################################################################################################### + +" Install vim-plugged if not already installed +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 +endif +call plug#begin('~/.vim/plugged') + +" Intellisense engine for neovim +Plug 'neoclide/coc.nvim', {'branch': 'release'} + +" Git wrapper +Plug 'tpope/vim-fugitive' +Plug 'airblade/vim-gitgutter' +Plug 'tpope/vim-rhubarb' + +" Nerd Commenter +Plug 'scrooloose/nerdcommenter' + +" Autosaving +Plug '907th/vim-auto-save' + +" Vim Surround +Plug 'tpope/vim-surround' + +" Auto pairs +Plug 'jiangmiao/auto-pairs' + +" Multiple Cursors +Plug 'terryma/vim-multiple-cursors' + +" Fuzzy finding +Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --no-bash' } +Plug 'junegunn/fzf.vim' + +" i3 syntax +Plug 'PotatoesMaster/i3-vim-syntax' + +" Tmuxline +Plug 'edkolev/tmuxline.vim' + +" Custom start page +Plug 'mhinz/vim-startify' + +" Status bar +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' + +" Tabular auto-align +Plug 'godlygeek/tabular' + +" Comfy scroll +Plug 'yuttie/comfortable-motion.vim' + +" Add DevIcons +Plug 'ryanoasis/vim-devicons' + +" Tagbar +Plug 'liuchengxu/vista.vim' + +" NERDTree +Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } +Plug 'Xuyuanp/nerdtree-git-plugin' +Plug 'tiagofumo/vim-nerdtree-syntax-highlight' + +" goyo distraction free mode +Plug 'junegunn/goyo.vim' + +" Wal theme +Plug 'dylanaraps/wal.vim' +Plug 'deviantfero/wpgtk.vim' + +" Colorschemes + Plug 'chase/focuspoint-vim' + Plug 'liuchengxu/space-vim-theme' + Plug 'kadekillary/Turtles' + Plug 'arcticicestudio/nord-vim' + Plug 'whatyouhide/vim-gotham' + Plug 'itchyny/landscape.vim' + Plug 'nanotech/jellybeans.vim' + Plug 'cocopon/iceberg.vim' +call plug#end()