81 lines
3.2 KiB
VimL
81 lines
3.2 KiB
VimL
|
" Base Plugins - shared by vim & nvim
|
||
|
|
||
|
" add seamless movement between vim and tmux, switch windows with C-hjkl
|
||
|
Plug 'christoomey/vim-tmux-navigator'
|
||
|
" automatically save the current buffer when navigating away from vim
|
||
|
let g:tmux_navigator_save_on_switch = 1
|
||
|
|
||
|
" automatically switch between relative and absolute numbers as buffers move
|
||
|
" into / out of focus (requires number & relativenumber to be set)
|
||
|
Plug 'jeffkreeftmeijer/vim-numbertoggle'
|
||
|
|
||
|
" sneak around your files using
|
||
|
Plug 'justinmk/vim-sneak'
|
||
|
" repeatedly pressing fFtTsS will advance the search instead of starting a new
|
||
|
" one. To start a new one, press any other key, then fFtTsS
|
||
|
let g:sneak#s_next = 1
|
||
|
" use ignorecase/smartcase, depending on vim setting
|
||
|
let g:sneak#use_ic_scs = 1
|
||
|
|
||
|
" highlight all occurences of the current word under the cursor (after 250ms
|
||
|
" delay)
|
||
|
Plug 'RRethy/vim-illuminate'
|
||
|
|
||
|
" editing Workflow
|
||
|
Plug 'tpope/vim-commentary' " easily toggle comments for lines, paragraphs etc with gc
|
||
|
Plug 'tpope/vim-surround' " lets you change surrounding things with cs (or ds to del, ys to add)
|
||
|
Plug 'tommcdo/vim-exchange' " adds exchange operator with cx. common use: cxiw . on 2 words to switch
|
||
|
Plug 'jiangmiao/auto-pairs' " Auto close brackets and ''
|
||
|
|
||
|
" " Ecosystem
|
||
|
" " Plug 'tpope/vim-fugitive' - Will have to take a closer look some other time
|
||
|
Plug 'scrooloose/nerdtree', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] } " show a directory listing within vim
|
||
|
Plug 'Xuyuanp/nerdtree-git-plugin', { 'on': ['NERDTreeToggle', 'NERDTreeFind'] } " show git status in nerdtree for files and dirs
|
||
|
" highlight the line the cursor is on
|
||
|
let NERDTreeHighlightCursorline = 1
|
||
|
" remove Press ? for help
|
||
|
let NERDTreeMinimalUI=1
|
||
|
" loads nerdtree plugin when starting vim with a directory
|
||
|
" this is necessary when we lazyload nerdtree with vimplug above
|
||
|
" since it would only get loaded with nttoggle otherwise, and run netrw
|
||
|
augroup nerd_loader
|
||
|
autocmd!
|
||
|
autocmd VimEnter * silent! autocmd! FileExplorer
|
||
|
autocmd BufEnter,BufNew *
|
||
|
\ if isdirectory(expand('<amatch>'))
|
||
|
\| call plug#load('nerdtree')
|
||
|
\| execute 'autocmd! nerd_loader'
|
||
|
\| endif
|
||
|
augroup END
|
||
|
|
||
|
" Fuzzy matching
|
||
|
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --bin' }
|
||
|
Plug 'junegunn/fzf.vim'
|
||
|
" set some fzf defaults
|
||
|
" windows drops down from above, 40% of the screen
|
||
|
let g:fzf_layout = { 'up': '~40%' }
|
||
|
" any Fzf command is prefixed with Fzf
|
||
|
" this groups them nicely together, and avoids confusion when suddenly :Buffer
|
||
|
" or :Files would appear as a command otherwise
|
||
|
let g:fzf_command_prefix = 'Fzf'
|
||
|
" let the colors come from our colorscheme
|
||
|
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'] }
|
||
|
" add some additional actions TODO perhaps unify with NerdTree mappings
|
||
|
let g:fzf_action = {
|
||
|
\ 'ctrl-t': 'tab split',
|
||
|
\ 'ctrl-x': 'split',
|
||
|
\ 'ctrl-v': 'vsplit' }
|