" vim-startify let g:startify_custom_header = [ \ '. . . .__ ', \ '\ / _ * _| | \._. _. _ _ ._ ', \ ' \/ (_)|(_] |__/[ (_](_](_)[ )', \ ' ._| ', \ '', \ ' ? for help', \ '', \ ] let g:startify_change_to_dir = 0 " save project home dir on load let DirProjectHome = getcwd() " generic settings set nomodeline set encoding=utf8 " Stop word wrapping set nowrap " Adjust system undo levels set undofile set undodir=~/.local/share/nvim/undo set undolevels=100 " Use system clipboard set clipboard=unnamed " Set tab width and convert tabs to spaces set tabstop=2 set softtabstop=2 set shiftwidth=2 set expandtab " Don't let Vim hide characters or make loud dings set conceallevel=1 set noerrorbells " Number gutter with relative line numbers " Relative lines encourage smarter movements in vim set number set relativenumber " Use search highlighting set hlsearch " Space above/beside cursor from screen edges set scrolloff=1 set sidescrolloff=5 " Disable mouse support set mouse=r let $NVIM_TUI_ENABLE_CURSOR_SHAPE=1 call plug#begin('~/.local/share/nvim/plugged') " Menus Plug 'Shougo/denite.nvim' Plug 'junegunn/vim-emoji' Plug 'pocari/vim-denite-emoji' " Visuals Plug 'mhinz/vim-startify' Plug 'dracula/vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'Yggdroot/indentLine' Plug 'airblade/vim-gitgutter' Plug 'ryanoasis/vim-devicons' " Navigating Project Files Plug 'ctrlpvim/ctrlp.vim', { 'on': 'CtrlP' } Plug 'dyng/ctrlsf.vim' Plug 'vim-scripts/SearchComplete' Plug 'tpope/vim-fugitive' " Code Editing Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'w0rp/ale' Plug 'tpope/vim-commentary' Plug 'tpope/vim-surround' Plug 'AndrewRadev/switch.vim' " Languages Plug 'joukevandermaas/vim-ember-hbs' Plug 'othree/html5.vim' Plug 'leafgarland/typescript-vim' Plug 'Quramy/tsuquyomi' Plug 'posva/vim-vue' Plug 'elzr/vim-json' " Movement Plug 'justinmk/vim-sneak' " Tmux Plug 'christoomey/vim-tmux-navigator' " Visuals Plug 'mhinz/vim-startify' Plug 'dracula/vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'Yggdroot/indentLine' Plug 'airblade/vim-gitgutter' Plug 'ryanoasis/vim-devicons' call plug#end() " Configuration " Theme: Dracula color dracula " denite setup call denite#custom#map('insert', "", '', 'noremap') call denite#custom#map('insert', "", '', 'noremap') call denite#custom#map('insert', '', '' , 'noremap') call denite#custom#map('insert', '', '' , 'noremap') call denite#custom#option('_', { \ 'prompt': '⟩', \ 'winheight': 10, \ 'auto_resize': 1, \}) let s:menus = {} let s:menus.neovim = { \ 'description': 'Tools & Keybindings' \ } let s:menus.neovim.command_candidates = [] let s:menus.tmux = { \ 'description': 'Keybindings' \ } let s:menus.tmux.command_candidates = [] let s:menus.git = { \ 'description': 'Git power menu g' \ } let s:menus.git.command_candidates = [] " Leader let mapleader="\" let s:menus.neovim.command_candidates += [['Leader: ', '']] " vim-commentary let s:menus.neovim.command_candidates += [['Comment toggle line: gcc', '']] " vim-airline let g:airline#extensions#tabline#enabled=1 let g:airline_powerline_fonts=1 set laststatus=2 " indentLine let g:indentLine_enabled = 1 let g:indentLine_char = "⟩" " Return to last opened file nmap let s:menus.neovim.command_candidates += [['Reopen last buffer: ', 'c-^']] " register list nnoremap "" :registers "0123456789abcdefghijklmnopqrstuvwxyz*+. let s:menus.neovim.command_candidates += [['List registers: ""', ':registers']] " adding empty lines nnoremap k :put! =repeat(nr2char(10), v:count1)'[ nnoremap j :put =repeat(nr2char(10), v:count1) let s:menus.neovim.command_candidates += [['Add empty line above: k', '']] let s:menus.neovim.command_candidates += [['Add empty line below: j', '']] " moving current line nnoremap mk :execute 'move -1-'. v:count1 nnoremap mj :execute 'move +'. v:count1 let s:menus.neovim.command_candidates += [['Move line up: mk', '']] let s:menus.neovim.command_candidates += [['Move line down: mj', '']] " arrow keys resize pane nnoremap :vertical resize -1 nnoremap :vertical resize +1 nnoremap :resize -1 nnoremap :resize +1 let s:menus.neovim.command_candidates += [['Resize pane: Arrow Keys', '']] " disable arrow keys in insert mode imap imap imap imap " File Buffer nnoremap :bnext! nnoremap :bprev! let s:menus.neovim.command_candidates += [['Next buffer: ', 'bnext!']] let s:menus.neovim.command_candidates += [['Previous buffer: ', 'bprev!']] " switch let g:switch_mapping = "s" let g:switch_custom_definitions = [['var', 'let', 'const', 'let']] let s:menus.neovim.command_candidates += [['Switch under cursor [ex: true -> false]: s', 'Switch']] " ctrlp Fuzzy Finder nnoremap p :CtrlP nnoremap t :CtrlP let g:ctrlp_match_window = 'top,order:ttb,min:1,max:10,results:10' let g:ctrlp_line_prefix = '' let g:ctrlp_user_command = 'ag %s -l --nocolor -g ""' let s:menus.neovim.command_candidates += [['Fuzzy Find Files: t (or p)', 'CtrlP']] " netrw File Explorer function! ExploreToggle(bang) if &ft ==# "netrw" :exe "lcd " . g:DirProjectHome :bd else if a:bang :lcd %:p:h :enew :Explore else :exe "lcd " . g:DirProjectHome :enew :Explore endif endif endfunction command! -bang ET call ExploreToggle(0) map ` :ET map ~ :ET! autocmd FileType netrw set nolist let g:netrw_preview = 1 let g:netrw_banner = 0 let s:menus.neovim.command_candidates += [['File Explorer: `', 'Explore']] let s:menus.neovim.command_candidates += [['File Explorer from current open file: ~', 'Explore']] " deoplete let g:deoplete#enable_at_startup = 1 inoremap pumvisible() ? "\" : "\" " sneak let g:sneak#s_next = 1 nmap f Sneak_f nmap F Sneak_F xmap f Sneak_f xmap F Sneak_F omap f Sneak_f omap F Sneak_F let s:menus.neovim.command_candidates += [['Sneak to next character: f (F back)', '']] let s:menus.neovim.command_candidates += [['Sneak to next 2 character sequence: S (S back)', '']] " ctrlsf nnoremap fp :CtrlSF nnoremap ft :CtrlSFToggle let g:ctrlsf_default_view_mode = 'compact' let s:menus.neovim.command_candidates += [['Find in Project: fp', 'CtrlSF ']] let s:menus.neovim.command_candidates += [['Find in Project Toggle: ft', 'CtrlSFToggle']] " vim-fugitive let s:menus.neovim.command_candidates += [['Git menu: g', 'Denite menu:git']] let s:menus.git.command_candidates += [['Status `g status`', 'Git status']] let s:menus.git.command_candidates += [['Add Patch `g add -p`', 'Git add -p']] let s:menus.git.command_candidates += [['Commit `g commit`', 'Git commit']] " vim-denite-emoji let s:menus.neovim.command_candidates += [['Emoji menu: e', 'Denite emoji']] " writing autocmd Filetype markdown call SetMarkdownOptions() function SetMarkdownOptions() " Enable spellcheck. set spell spelllang=en_us set wrap set nolist endfunction " denite tmux let s:menus.tmux.command_candidates += [['Leader: b', '']] let s:menus.tmux.command_candidates += [['Time: t', '']] let s:menus.tmux.command_candidates += [['New vertical split: \', '']] let s:menus.tmux.command_candidates += [['New horizontal split: -', '']] let s:menus.tmux.command_candidates += [['New tab: t', '']] let s:menus.tmux.command_candidates += [['Close tab: w', '']] let s:menus.tmux.command_candidates += [['Next tab: ', '']] let s:menus.tmux.command_candidates += [['Previous tab: ', '']] " denite finalize call denite#custom#var('menu', 'menus', s:menus) nnoremap / :Denite menu nnoremap ? :Denite menu nnoremap g :Denite menu:git nnoremap e :Denite emoji