150 lines
5.3 KiB
VimL
150 lines
5.3 KiB
VimL
" _ _ __ _
|
|
" (_)___ (_) /__ __(_)___ ___
|
|
" / / __ \/ / __/ | / / / __ `__ \
|
|
" / / / / / / /__| |/ / / / / / / /
|
|
" /_/_/ /_/_/\__(_)___/_/_/ /_/ /_/
|
|
"
|
|
" *************************************************************
|
|
" my neovim init.vim config file
|
|
" Russell R. Riker (aka: Dr. WaSaBi)
|
|
" *************************************************************
|
|
set runtimepath^=~/.vim runtimepath+=~/.vim/after
|
|
let &packpath = $runtimepath
|
|
source ~/.vimrc
|
|
|
|
" Some of my settings, need to figure out how to do these things for only some
|
|
" file types. like txt and mkd file, wouldn't really want this.
|
|
set tabstop=4
|
|
set expandtab
|
|
set number
|
|
|
|
" turn spelling on for text based documents
|
|
autocmd FileType tex,latex,markdown setlocal spell spelllang=en_us
|
|
|
|
" copy to the system clipboard
|
|
set clipboard+=unnamedplus
|
|
|
|
" set the vimwiki folder path and file type
|
|
let g:vimwiki_list = [{'path': '~/vimwiki/',
|
|
\ 'syntax': 'markdown', 'ext': '.md'}]
|
|
|
|
" ***********************************************************
|
|
" ********************* install pluggins ********************
|
|
" ***********************************************************
|
|
"
|
|
call plug#begin('~/.vim/plugged')
|
|
Plug 'SirVer/ultisnips'
|
|
Plug 'honza/vim-snippets'
|
|
Plug 'preservim/nerdtree' " file manager
|
|
Plug 'roxma/nvim-yarp'
|
|
Plug 'tpope/vim-fugitive' " git
|
|
Plug 'tpope/vim-rhubarb'
|
|
Plug 'vim-airline/vim-airline' " cool status bar
|
|
Plug 'airblade/vim-gitgutter' " git changes
|
|
Plug 'vim-airline/vim-airline-themes' " themes for status bar
|
|
Plug 'itchyny/lightline.vim'
|
|
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } " golang
|
|
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } " fuzzy finder
|
|
Plug 'junegunn/fzf.vim' " fuzzy finder
|
|
Plug 'airblade/vim-rooter'
|
|
Plug 'vimwiki/vimwiki'
|
|
:Plug 'gertjanreynaert/cobalt2-vim-theme' " added coblt2 theme
|
|
call plug#end()
|
|
|
|
|
|
|
|
" ***********************************************************
|
|
" ****************** basic remap keys ***********************
|
|
" ***********************************************************
|
|
" remap the split window motion keybindings
|
|
" stole these from BrodieRobertson
|
|
map <A-h> <C-w>h
|
|
map <A-j> <C-w>j
|
|
map <A-k> <C-w>k
|
|
map <A-l> <C-w>l
|
|
|
|
" nerdtree file manager
|
|
:nmap <silent> <C-D> :NERDTreeToggle<CR>
|
|
|
|
" buffers
|
|
:nnoremap <F5> :buffers<CR>:buffer<Space>
|
|
|
|
" ***********************************************************
|
|
" **************** fzf & ripgrep config *********************
|
|
" ***********************************************************
|
|
"
|
|
|
|
"This is the default extra key bindings
|
|
let g:fzf_action = {
|
|
\ 'ctrl-t': 'tab split',
|
|
\ 'ctrl-x': 'split',
|
|
\ 'ctrl-v': 'vsplit' }
|
|
|
|
" Enable per-command history.
|
|
" CTRL-N and CTRL-P will be automatically bound to next-history and
|
|
" previous-history instead of down and up. If you don't like the
|
|
" change,
|
|
" explicitly bind the keys to down and up in your $FZF_DEFAULT_OPTS.
|
|
|
|
let g:fzf_history_dir = '~/.local/share/fzf-history'
|
|
|
|
map <C-f> :Files<CR>
|
|
map <leader>b :Buffers<CR>
|
|
nnoremap <leader>g :Rg<CR>
|
|
nnoremap <leader>t :Tags<CR>
|
|
nnoremap <leader>m :Marks<CR>
|
|
|
|
|
|
let g:fzf_tags_command = 'ctags -R'
|
|
|
|
" Border color
|
|
let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height':0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border':'sharp' } }
|
|
|
|
let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline'
|
|
let $FZF_DEFAULT_COMMAND="rg --files --hidden"
|
|
|
|
|
|
" Customize fzf colors to match your color scheme
|
|
let g:fzf_colors =
|
|
\ { 'fg': ['fg', 'Normal'],
|
|
\ 'bg': ['bg', 'Normal'],
|
|
\ 'hl': ['fg', 'Comment'],
|
|
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'],
|
|
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'],
|
|
\ 'hl+': ['fg', 'Statement'],
|
|
\ 'info': ['fg', 'PreProc'],
|
|
\ 'border': ['fg', 'Ignore'],
|
|
\ 'prompt': ['fg', 'Conditional'],
|
|
\ 'pointer': ['fg', 'Exception'],
|
|
\ 'marker': ['fg', 'Keyword'],
|
|
\ 'spinner': ['fg', 'Label'],
|
|
\ 'header': ['fg', 'Comment'] }
|
|
|
|
"Get Files
|
|
command! -bang -nargs=? -complete=dir Files
|
|
\ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options':['--layout=reverse', '--info=inline']}),<bang>0)
|
|
|
|
|
|
" Get text in files with Rg
|
|
command! -bang -nargs=* Rg
|
|
\ call fzf#vim#grep(
|
|
\ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>),1,
|
|
\ fzf#vim#with_preview(), <bang>0)
|
|
|
|
" Ripgrep advanced
|
|
function! RipgrepFzf(query,fullscreen)
|
|
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true'
|
|
let initial_command = printf(command_fmt,shellescape(a:query))
|
|
let reload_command = printf(command_fmt, '{q}')
|
|
let spec = {'options':['--phony', '--query',a:query, '--bind','change:reload:'.reload_command]}
|
|
call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen)
|
|
endfunction
|
|
|
|
command! -nargs=* -bang RG call RipgrepFzf(<q-args>, <bang>0)
|
|
|
|
" Git grep
|
|
command! -bang -nargs=* GGrep
|
|
\ call fzf#vim#grep(
|
|
\ 'git grep --line-number'.shellescape(<q-args>),0,
|
|
\ fzf#vim#with_preview({'dir' : systemlist('git rev-parse --show-toplevel')[0]}),<bang>0)
|