diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim new file mode 100644 index 0000000..0e926ea --- /dev/null +++ b/.config/nvim/init.vim @@ -0,0 +1,230 @@ +" ____ _____ +" | _ \_ _| Derek Taylor (DistroTube) +" | | | || | http://www.youtube.com/c/DistroTube +" | |_| || | http://www.gitlab.com/dwt1/ +" |____/ |_| +" +" A customized init.vim for neovim (https://neovim.io/) + +set nocompatible " be iMproved, required +filetype off " required + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Vundle For Managing Plugins +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +call plug#begin('~/.vim/plugged') + +"{{ The Basics }} + Plug 'gmarik/Vundle.vim' " Vundle + Plug 'itchyny/lightline.vim' " Lightline statusbar + Plug 'suan/vim-instant-markdown', {'rtp': 'after'} " Markdown Preview + Plug 'frazrepo/vim-rainbow' +"{{ File management }} + Plug 'vifm/vifm.vim' " Vifm + Plug 'scrooloose/nerdtree' " Nerdtree + Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " Highlighting Nerdtree + Plug 'ryanoasis/vim-devicons' " Icons for Nerdtree +"{{ Productivity }} + Plug 'vimwiki/vimwiki' " VimWiki + Plug 'jreybert/vimagit' " Magit-like plugin for vim +"{{ Tim Pope Plugins }} + Plug 'tpope/vim-surround' " Change surrounding marks +"{{ Syntax Highlighting and Colors }} + Plug 'PotatoesMaster/i3-vim-syntax' " i3 config highlighting + Plug 'kovetskiy/sxhkd-vim' " sxhkd highlighting + Plug 'vim-python/python-syntax' " Python highlighting + Plug 'ap/vim-css-color' " Color previews for CSS +"{{ Junegunn Choi Plugins }} + Plug 'junegunn/goyo.vim' " Distraction-free viewing + Plug 'junegunn/limelight.vim' " Hyperfocus on a range + Plug 'junegunn/vim-emoji' " Vim needs emojis! + +call plug#end() + +filetype plugin indent on " required +" To ignore plugin indent changes, instead use: +" filetype plugin on + +" Brief help +" :PluginList - lists configured plugins +" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate +" :PluginSearch foo - searches for foo; append `!` to refresh local cache +" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal + +" see :h vundle for more details or wiki for FAQ +" Put your non-Plugin stuff after this line + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => General Settings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +set path+=** " Searches current directory recursively. +set wildmenu " Display all matches when tab complete. +set incsearch " Incremental search +set hidden " Needed to keep multiple buffers open +set nobackup " No auto backups +set noswapfile " No swap +set t_Co=256 " Set if term supports 256 colors. +set number relativenumber " Display line numbers +set clipboard=unnamedplus " Copy/paste between vim and other programs. +syntax enable +let g:rehash256 = 1 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Remap Keys +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Remap ESC to ii +:imap ii + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Status Line +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" The lightline.vim theme +let g:lightline = { + \ 'colorscheme': 'darcula', + \ } + +" Always show statusline +set laststatus=2 + +" Uncomment to prevent non-normal modes showing in powerline and below powerline. +set noshowmode + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Text, tab and indent related +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +set expandtab " Use spaces instead of tabs. +set smarttab " Be smart using tabs ;) +set shiftwidth=4 " One tab == four spaces. +set tabstop=4 " One tab == four spaces. + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => NERDTree +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Uncomment to autostart the NERDTree +" autocmd vimenter * NERDTree +map :NERDTreeToggle +let g:NERDTreeDirArrowExpandable = '►' +let g:NERDTreeDirArrowCollapsible = '▼' +let NERDTreeShowLineNumbers=1 +let NERDTreeShowHidden=1 +let NERDTreeMinimalUI = 1 +let g:NERDTreeWinSize=38 + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Colors and Theming +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +highlight LineNr ctermfg=8 ctermbg=none cterm=none +highlight CursorLineNr ctermfg=7 ctermbg=8 cterm=none +highlight VertSplit ctermfg=0 ctermbg=8 cterm=none +highlight Statement ctermfg=2 ctermbg=none cterm=none +highlight Directory ctermfg=4 ctermbg=none cterm=none +highlight StatusLine ctermfg=7 ctermbg=8 cterm=none +highlight StatusLineNC ctermfg=7 ctermbg=8 cterm=none +highlight NERDTreeClosable ctermfg=2 +highlight NERDTreeOpenable ctermfg=8 +highlight Comment ctermfg=4 ctermbg=none cterm=italic +highlight Constant ctermfg=12 ctermbg=none cterm=none +highlight Special ctermfg=4 ctermbg=none cterm=none +highlight Identifier ctermfg=6 ctermbg=none cterm=none +highlight PreProc ctermfg=5 ctermbg=none cterm=none +highlight String ctermfg=12 ctermbg=none cterm=none +highlight Number ctermfg=1 ctermbg=none cterm=none +highlight Function ctermfg=1 ctermbg=none cterm=none +" highlight WildMenu ctermfg=0 ctermbg=80 cterm=none +" highlight Folded ctermfg=103 ctermbg=234 cterm=none +" highlight FoldColumn ctermfg=103 ctermbg=234 cterm=none +" highlight DiffAdd ctermfg=none ctermbg=23 cterm=none +" highlight DiffChange ctermfg=none ctermbg=56 cterm=none +" highlight DiffDelete ctermfg=168 ctermbg=96 cterm=none +" highlight DiffText ctermfg=0 ctermbg=80 cterm=none +" highlight SignColumn ctermfg=244 ctermbg=235 cterm=none +" highlight Conceal ctermfg=251 ctermbg=none cterm=none +" highlight SpellBad ctermfg=168 ctermbg=none cterm=underline +" highlight SpellCap ctermfg=80 ctermbg=none cterm=underline +" highlight SpellRare ctermfg=121 ctermbg=none cterm=underline +" highlight SpellLocal ctermfg=186 ctermbg=none cterm=underline +" highlight Pmenu ctermfg=251 ctermbg=234 cterm=none +" highlight PmenuSel ctermfg=0 ctermbg=111 cterm=none +" highlight PmenuSbar ctermfg=206 ctermbg=235 cterm=none +" highlight PmenuThumb ctermfg=235 ctermbg=206 cterm=none +" highlight TabLine ctermfg=244 ctermbg=234 cterm=none +" highlight TablineSel ctermfg=0 ctermbg=247 cterm=none +" highlight TablineFill ctermfg=244 ctermbg=234 cterm=none +" highlight CursorColumn ctermfg=none ctermbg=236 cterm=none +" highlight CursorLine ctermfg=none ctermbg=236 cterm=none +" highlight ColorColumn ctermfg=none ctermbg=236 cterm=none +" highlight Cursor ctermfg=0 ctermbg=5 cterm=none +" highlight htmlEndTag ctermfg=114 ctermbg=none cterm=none +" highlight xmlEndTag ctermfg=114 ctermbg=none cterm=none + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Vifm +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +map vv :Vifm +map vs :VsplitVifm +map sp :SplitVifm +map dv :DiffVifm +map tv :TabVifm + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => VimWiki +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +let g:vimwiki_list = [{'path': '~/vimwiki/', + \ 'syntax': 'markdown', 'ext': '.md'}] + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Vim-Instant-Markdown +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +let g:instant_markdown_autostart = 0 " Turns off auto preview +let g:instant_markdown_browser = "surf" " Uses surf for preview +map md :InstantMarkdownPreview " Previews .md file +map ms :InstantMarkdownStop " Kills the preview + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Open terminal inside Vim +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +map tt :vnew term://fish + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Mouse Scrolling +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +set mouse=nicr + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Splits and Tabbed Files +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +set splitbelow splitright + +" Remap splits navigation to just CTRL + hjkl +nnoremap h +nnoremap j +nnoremap k +nnoremap l + +" Make adjusing split sizes a bit more friendly +noremap :vertical resize +3 +noremap :vertical resize -3 +noremap :resize +3 +noremap :resize -3 + +" Change 2 split windows from vert to horiz or horiz to vert +map th tH +map tk tK + +" Removes pipes | that act as seperators on splits +set fillchars+=vert:\ + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" => Other Stuff +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +let g:python_highlight_all = 1 + +au! BufRead,BufWrite,BufWritePost,BufNewFile *.org +au BufEnter *.org call org#SetOrgFileType() + +set guioptions-=m "remove menu bar +set guioptions-=T "remove toolbar +set guioptions-=r "remove right-hand scroll bar +set guioptions-=L "remove left-hand scroll bar +