set hidden set wildmenu set exrc set secure set number set relativenumber set linebreak set nojoinspaces set hidden set hlsearch set cursorline set mouse=a set splitbelow set splitright set tabstop=4 set shiftwidth=4 set smarttab set expandtab set autoindent syntax on nnoremap - ddkP nnoremap _ ddp nnoremap gn :tabnew nnoremap gN :tabclose nnoremap H ^ nnoremap L $ nnoremap $ nnoremap r :%s/\<\>/ tnoremap tnoremap :call chansend(b:terminal_job_id, "\Esc>")i nnoremap q :lclose :pclose :cclose :noh function! GetSubTerminalName() let current_tabpage = tabpagenr() return current_tabpage . '_terminal' endfunction function! SubTerminal() let subterminal_name = GetSubTerminalName() let terminal_num = bufnr(subterminal_name) if terminal_num == -1 execute ':new ' . subterminal_name execute ':resize 10' execute ':terminal ++curwin' " normal i else execute ':bwipeout! ' . terminal_num execute ':bwipeout! ' . (terminal_num + 1) endif endfunction function! WipeSubTerminalBuffer() let subterminal_name = GetSubTerminalName() let terminal_num = bufnr(subterminal_name) if terminal_num != -1 execute ':bwipeout! ' . terminal_num endif endfunction autocmd BufWipeout term://* call WipeSubTerminalBuffer() nnoremap ` :call SubTerminal() " Terminal in tab {{{ function! OpenTerminalInTab() execute ':tabnew' execute ':terminal ++curwin' normal i endfunction nnoremap ~ :call OpenTerminalInTab() function! s:DiffWithSaved() let filetype=&ft diffthis vnew | r # | normal! 1Gdd diffthis exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype endfunction com! DiffSaved call s:DiffWithSaved() function! Home() let l:before = getpos('.') normal ^ let l:after = getpos('.') if l:before[2] == l:after[2] call cursor(l:after[0], 1) endif endfunction nnoremap :call Home() 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 = 25 nnoremap :Lexplore set background=dark set laststatus=2 colorscheme slate