""" Optixal's Neovim Init.vim """ Vim-Plug call plug#begin() " Aesthetics - Main Plug 'dracula/vim', { 'commit': '147f389f4275cec4ef43ebc25e2011c57b45cc00' } Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'ryanoasis/vim-devicons' Plug 'junegunn/goyo.vim' Plug 'junegunn/limelight.vim' Plug 'junegunn/seoul256.vim' Plug 'junegunn/vim-journal' Plug 'junegunn/rainbow_parentheses.vim' Plug 'nightsense/forgotten' Plug 'zaki/zazen' " Aethetics - Additional Plug 'nightsense/nemo' Plug 'yuttie/hydrangea-vim' Plug 'chriskempson/tomorrow-theme', { 'rtp': 'vim' } Plug 'rhysd/vim-color-spring-night' " Functionalities Plug 'tpope/vim-fugitive' Plug 'tpope/vim-sensible' Plug 'tpope/vim-surround' Plug 'majutsushi/tagbar' Plug 'scrooloose/nerdtree' Plug 'scrooloose/nerdcommenter' Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'deoplete-plugins/deoplete-jedi' Plug 'ervandew/supertab' Plug 'jiangmiao/auto-pairs' Plug 'junegunn/vim-easy-align' Plug 'alvan/vim-closetag' Plug 'tpope/vim-abolish' Plug 'Yggdroot/indentLine' Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } Plug 'junegunn/fzf.vim' Plug 'sheerun/vim-polyglot' Plug 'chrisbra/Colorizer' Plug 'KabbAmine/vCoolor.vim' Plug 'heavenshell/vim-pydocstring', { 'do': 'make install' } Plug 'vim-scripts/loremipsum' Plug 'SirVer/ultisnips' Plug 'honza/vim-snippets' Plug 'metakirby5/codi.vim' Plug 'dkarter/bullets.vim' " Entertainment "Plug 'ryanss/vim-hackernews' call plug#end() """ Python3 VirtualEnv let g:python3_host_prog = '/usr/bin/python3' """ Coloring syntax on color dracula highlight Pmenu guibg=white guifg=black gui=bold highlight Comment gui=bold highlight Normal gui=none highlight NonText guibg=none " Opaque Background (Comment out to use terminal's profile) set termguicolors " Transparent Background (For i3 and compton) highlight Normal guibg=NONE ctermbg=NONE highlight LineNr guibg=NONE ctermbg=NONE """ Other Configurations filetype plugin indent on set tabstop=4 softtabstop=4 shiftwidth=4 expandtab smarttab autoindent set incsearch ignorecase smartcase hlsearch set ruler laststatus=2 showcmd showmode set list listchars=trail:»,tab:»- set fillchars+=vert:\ set wrap breakindent set encoding=utf-8 set number set title """ Plugin Configurations " NERDTree let NERDTreeShowHidden=1 let g:NERDTreeDirArrowExpandable = '↠' let g:NERDTreeDirArrowCollapsible = '↡' " Airline let g:airline_powerline_fonts = 1 let g:airline_section_z = ' %{strftime("%-I:%M %p")}' let g:airline_section_warning = '' "let g:airline#extensions#tabline#enabled = 1 " Neovim :Terminal tmap tmap "tmap :q autocmd BufWinEnter,WinEnter term://* startinsert autocmd BufLeave term://* stopinsert " Deoplete let g:deoplete#enable_at_startup = 1 " Disable documentation window set completeopt-=preview " vim-pydocstring let g:pydocstring_doq_path = '~/.config/nvim/env/bin/doq' " Supertab let g:SuperTabDefaultCompletionType = "" " Ultisnips let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" " EasyAlign xmap ga (EasyAlign) nmap ga (EasyAlign) " indentLine let g:indentLine_char = '▏' let g:indentLine_color_gui = '#363949' " TagBar let g:tagbar_width = 30 let g:tagbar_iconchars = ['↠', '↡'] " fzf-vim let g:fzf_action = { \ 'ctrl-t': 'tab split', \ 'ctrl-s': 'split', \ 'ctrl-v': 'vsplit' } 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', 'Type'], \ 'border': ['fg', 'Ignore'], \ 'prompt': ['fg', 'Character'], \ 'pointer': ['fg', 'Exception'], \ 'marker': ['fg', 'Keyword'], \ 'spinner': ['fg', 'Label'], \ 'header': ['fg', 'Comment'] } """ Filetype-Specific Configurations " HTML, XML, Jinja autocmd FileType html setlocal shiftwidth=2 tabstop=2 softtabstop=2 autocmd FileType css setlocal shiftwidth=2 tabstop=2 softtabstop=2 autocmd FileType xml setlocal shiftwidth=2 tabstop=2 softtabstop=2 autocmd FileType htmldjango setlocal shiftwidth=2 tabstop=2 softtabstop=2 autocmd FileType htmldjango inoremap {{ {{ }} autocmd FileType htmldjango inoremap {% {% %} autocmd FileType htmldjango inoremap {# {# #} " Markdown and Journal autocmd FileType markdown setlocal shiftwidth=2 tabstop=2 softtabstop=2 autocmd FileType journal setlocal shiftwidth=2 tabstop=2 softtabstop=2 """ Custom Functions " Trim Whitespaces function! TrimWhitespace() let l:save = winsaveview() %s/\\\@q :NERDTreeToggle nmap \ q nmap w :TagbarToggle nmap ee :Colors nmap ea :AirlineTheme nmap e1 :call ColorDracula() nmap e2 :call ColorSeoul256() nmap e3 :call ColorForgotten() nmap e4 :call ColorZazen() nmap r :so ~/.config/nvim/init.vim nmap t :call TrimWhitespace() xmap a gaip* nmap a gaip* nmap s sj:terminal nmap vs vl:terminal nmap d (pydocstring) nmap f :Files nmap g :Goyo nmap h :RainbowParentheses!! nmap j :set filetype=journal nmap k :ColorToggle nmap l :Limelight!! xmap l :Limelight!! autocmd FileType python nmap x :0,$!~/.config/nvim/env/bin/python -m yapf "nmap n :HackerNews bestJ nmap :noh nmap :bnext nmap :bprevious