summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorChris <[email protected]>2020-04-01 19:37:34 -0400
committerChris <[email protected]>2020-04-01 19:37:34 -0400
commitd0796e1cb3fc72f0e53bf4ad77e45e3bfe1e6156 (patch)
tree71887e0e4dfd46e0ccfdc9726146c443a1941b60 /modules
parenta02c31afca1936312a63412c07350baf9f88b1cd (diff)
auto push
Diffstat (limited to 'modules')
-rw-r--r--modules/denite.vim125
-rw-r--r--modules/general.vim1
2 files changed, 126 insertions, 0 deletions
diff --git a/modules/denite.vim b/modules/denite.vim
new file mode 100644
index 00000000..6b547f86
--- /dev/null
+++ b/modules/denite.vim
@@ -0,0 +1,125 @@
+" === Denite setup ==="
+" Use ripgrep for searching current directory for files
+" By default, ripgrep will respect rules in .gitignore
+" --files: Print each file that would be searched (but don't search)
+" --glob: Include or exclues files for searching that match the given glob
+" (aka ignore .git files)
+"
+call denite#custom#var('file/rec', 'command', ['rg', '--files', '--glob', '!.git'])
+
+" Use ripgrep in place of "grep"
+call denite#custom#var('grep', 'command', ['rg'])
+
+" Custom options for ripgrep
+" --vimgrep: Show results with every match on it's own line
+" --hidden: Search hidden directories and files
+" --heading: Show the file name above clusters of matches from each file
+" --S: Search case insensitively if the pattern is all lowercase
+call denite#custom#var('grep', 'default_opts', ['--hidden', '--vimgrep', '--heading', '-S'])
+
+" Recommended defaults for ripgrep via Denite docs
+call denite#custom#var('grep', 'recursive_opts', [])
+call denite#custom#var('grep', 'pattern_opt', ['--regexp'])
+call denite#custom#var('grep', 'separator', ['--'])
+call denite#custom#var('grep', 'final_opts', [])
+
+" Remove date from buffer list
+call denite#custom#var('buffer', 'date_format', '')
+
+" Custom options for Denite
+" auto_resize - Auto resize the Denite window height automatically.
+" prompt - Customize denite prompt
+" direction - Specify Denite window direction as directly below current pane
+" winminheight - Specify min height for Denite window
+" highlight_mode_insert - Specify h1-CursorLine in insert mode
+" prompt_highlight - Specify color of prompt
+" highlight_matched_char - Matched characters highlight
+" highlight_matched_range - matched range highlight
+let s:denite_options = {'default' : {
+\ 'split': 'floating',
+\ 'start_filter': 1,
+\ 'auto_resize': 1,
+\ 'source_names': 'short',
+\ 'prompt': 'λ ',
+\ 'highlight_matched_char': 'QuickFixLine',
+\ 'highlight_matched_range': 'Visual',
+\ 'highlight_window_background': 'Visual',
+\ 'highlight_filter_background': 'DiffAdd',
+\ 'winrow': 1,
+\ 'vertical_preview': 1
+\ }}
+
+" Loop through denite options and enable them
+function! s:profile(opts) abort
+ for l:fname in keys(a:opts)
+ for l:dopt in keys(a:opts[l:fname])
+ call denite#custom#option(l:fname, l:dopt, a:opts[l:fname][l:dopt])
+ endfor
+ endfor
+endfunction
+
+call s:profile(s:denite_options)
+ echo 'Denite not installed. It should work after running :PlugInstall'
+
+nmap ; :Denite buffer<CR>
+nmap <leader>t :DeniteProjectDir file/rec<CR>
+nnoremap <leader>g :<C-u>Denite grep:. -no-empty<CR>
+nnoremap <leader>j :<C-u>DeniteCursorWord grep:.<CR>
+
+" Define mappings while in 'filter' mode
+" <C-o> - Switch to normal mode inside of search results
+" <Esc> - Exit denite window in any mode
+" <CR> - Open currently selected file in any mode
+" <C-t> - Open currently selected file in a new tab
+" <C-v> - Open currently selected file a vertical split
+" <C-h> - Open currently selected file in a horizontal split
+autocmd FileType denite-filter call s:denite_filter_my_settings()
+function! s:denite_filter_my_settings() abort
+ imap <silent><buffer> <C-o>
+ \ <Plug>(denite_filter_quit)
+ inoremap <silent><buffer><expr> <Esc>
+ \ denite#do_map('quit')
+ nnoremap <silent><buffer><expr> <Esc>
+ \ denite#do_map('quit')
+ inoremap <silent><buffer><expr> <CR>
+ \ denite#do_map('do_action')
+ inoremap <silent><buffer><expr> <C-t>
+ \ denite#do_map('do_action', 'tabopen')
+ inoremap <silent><buffer><expr> <C-v>
+ \ denite#do_map('do_action', 'vsplit')
+ inoremap <silent><buffer><expr> <C-h>
+ \ denite#do_map('do_action', 'split')
+endfunction
+
+" Define mappings while in denite window
+" <CR> - Opens currently selected file
+" q or <Esc> - Quit Denite window
+" d - Delete currenly selected file
+" p - Preview currently selected file
+" <C-o> or i - Switch to insert mode inside of filter prompt
+" <C-t> - Open currently selected file in a new tab
+" <C-v> - Open currently selected file a vertical split
+" <C-h> - Open currently selected file in a horizontal split
+autocmd FileType denite call s:denite_my_settings()
+function! s:denite_my_settings() abort
+ nnoremap <silent><buffer><expr> <CR>
+ \ denite#do_map('do_action')
+ nnoremap <silent><buffer><expr> q
+ \ denite#do_map('quit')
+ nnoremap <silent><buffer><expr> <Esc>
+ \ denite#do_map('quit')
+ nnoremap <silent><buffer><expr> d
+ \ denite#do_map('do_action', 'delete')
+ nnoremap <silent><buffer><expr> p
+ \ denite#do_map('do_action', 'preview')
+ nnoremap <silent><buffer><expr> i
+ \ denite#do_map('open_filter_buffer')
+ nnoremap <silent><buffer><expr> <C-o>
+ \ denite#do_map('open_filter_buffer')
+ nnoremap <silent><buffer><expr> <C-t>
+ \ denite#do_map('do_action', 'tabopen')
+ nnoremap <silent><buffer><expr> <C-v>
+ \ denite#do_map('do_action', 'vsplit')
+ nnoremap <silent><buffer><expr> <C-h>
+ \ denite#do_map('do_action', 'split')
+endfunction
diff --git a/modules/general.vim b/modules/general.vim
index ae2ed36e..c77460fa 100644
--- a/modules/general.vim
+++ b/modules/general.vim
@@ -96,3 +96,4 @@ vnoremap < <gv
vnoremap > >gv
set conceallevel=0
+cmap w!! w !sudo tee %