feat(neovim): update config
This commit is contained in:
parent
5e0b72ca74
commit
0a772c90b0
10 changed files with 251 additions and 215 deletions
102
home/editors/neovim/init.vim
Normal file
102
home/editors/neovim/init.vim
Normal file
|
@ -0,0 +1,102 @@
|
|||
" set shell=/bin/sh
|
||||
|
||||
set termguicolors
|
||||
|
||||
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 = '<leader>'
|
||||
|
||||
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<CR>
|
||||
nmap <C-p> :NERDTreeToggle<CR>
|
||||
" nmap <silent> <C-p> :Lexplore<CR>
|
||||
map <Leader> <Plug>(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 <A-t> :call TermToggle(12)<CR>
|
||||
inoremap <A-t> <Esc>:call TermToggle(12)<CR>
|
||||
tnoremap <A-t> <C-\><C-n>:call TermToggle(12)<CR>
|
||||
|
||||
" Terminal go back to normal mode
|
||||
tnoremap :q! <C-\><C-n>:q!<CR>
|
Loading…
Add table
Add a link
Reference in a new issue