" set shell=/bin/sh set termguicolors set timeoutlen=500 colorscheme gruvbox let g:gruvbox_number_column = 'bg1' function! s:gitModified() let files = systemlist('git ls-files -m 2>/dev/null') return map(files, "{'line': v:val, 'path': v:val}") endfunction function! s:gitUntracked() let files = systemlist('git ls-files -o --exclude-standard 2>/dev/null') return map(files, "{'line': v:val, 'path': v:val}") endfunction function! s:list_projects() abort return map(['/etc/nixos/'] + finddir('.git', $HOME . '/dev/**4', -1), \ {_, dir -> { \ 'line': fnamemodify(dir, ':h:s?' . $HOME . '??'), \ 'path': fnamemodify(dir, ':h')}}) endfunction let g:startify_commands = [ \ {'h': ['Vim Help', 'help']}, \ {'r': ['Vim Reference', 'help reference']}, \ ] let g:startify_lists = [ \ { 'header': [' Sessions'], 'type': 'sessions' }, \ { 'header': [' git modified'], 'type': function('s:gitModified') }, \ { 'header': [' git untracked'], 'type': function('s:gitUntracked') }, \ { 'header': [' Projects'], 'type': function('s:list_projects') }, \ { 'header': [' Recent files'], 'type': 'files' }, \ { 'header': [' Commands'], 'type': 'commands' }, \ ] let mapleader=" " let maplocalleader="," let g:camelcasemotion_key = '' function! LspStatus() abort let has_client = luaeval('not vim.tbl_isempty(vim.lsp.buf_get_clients(0))') return has_client ? 'LSP' : '' endfunction let g:lightline = { \ 'colorscheme': 'powerline', \ 'active': { \ 'left': [ [ 'mode', 'paste' ], \ [ 'lspstatus', 'readonly', 'filename', 'modified' ] ] \ }, \ 'component_function': { \ 'lspstatus': 'LspStatus' \ }, \ } set relativenumber set splitbelow map ; :Files nmap :NERDTreeToggle " nmap :Lexplore map (easymotion-prefix) let g:netrw_banner = 0 let g:netrw_liststyle = 3 let g:netrw_browse_split = 4 let g:netrw_altv = 1 let g:netrw_winsize = 20 " Terminal Function let g:term_buf = 0 let g:term_win = 0 function! TermToggle(height) if win_gotoid(g:term_win) hide else botright new exec "resize " . a:height try exec "buffer " . g:term_buf catch call termopen($SHELL, {"detach": 0}) let g:term_buf = bufnr("") set nonumber set norelativenumber set signcolumn=no endtry startinsert! let g:term_win = win_getid() endif endfunction " Toggle terminal on/off (neovim) nnoremap :call TermToggle(12) inoremap :call TermToggle(12) tnoremap :call TermToggle(12) " Terminal go back to normal mode tnoremap :q! :q!