summaryrefslogtreecommitdiff
path: root/vim
diff options
context:
space:
mode:
authorSerguey Parkhomovsky <xindigo@gmail.com>2026-03-27 23:43:29 -0700
committerSerguey Parkhomovsky <xindigo@gmail.com>2026-03-27 23:43:29 -0700
commit903249a59c3f4b91d45d8008eea7910014513a1c (patch)
tree5c92a172a715ebbd5e12afd87302555d1ef922f3 /vim
parentf53cb87ab061d0ceb577de99d0526813b2f8c13b (diff)
more better:
Diffstat (limited to 'vim')
-rw-r--r--vim/.vimrc19
1 files changed, 17 insertions, 2 deletions
diff --git a/vim/.vimrc b/vim/.vimrc
index db580eb..a243424 100644
--- a/vim/.vimrc
+++ b/vim/.vimrc
@@ -112,19 +112,34 @@ nnoremap <C-l> <C-w>l
let g:airline_theme = 'tokyonight'
" ── FZF ───────────────────────────────────────────────────────────────────────
+" Use bash for fzf subprocesses — fish has non-interactive startup overhead
+let $SHELL = '/bin/bash'
+
" Use ripgrep for :Files if available
if executable('rg')
set grepprg=rg\ --vimgrep\ --smart-case
set grepformat=%f:%l:%c:%m
endif
+" Use fdfind as the default file lister — respects .gitignore, skips binaries
+let $FZF_DEFAULT_COMMAND = 'fdfind --type f --hidden --follow --exclude .git'
+
+" Pass --bind change:top so fzf jumps to best match as you type (reduces lag)
+let $FZF_DEFAULT_OPTS = '--bind=change:top'
+
" Layout
let g:fzf_layout = { 'down': '40%' }
let g:fzf_preview_window = ['right:50%:hidden', 'ctrl-/']
+" Faster Rg: no per-file headings, just stream line:col:content
+command! -bang -nargs=* Rg
+ \ call fzf#vim#grep(
+ \ 'rg --column --line-number --no-heading --color=always --smart-case -- '.shellescape(<q-args>),
+ \ fzf#vim#with_preview(), <bang>0)
+
" FZF keymaps
-nnoremap <leader>ff <Cmd>Files<CR>
-nnoremap <leader>fb <Cmd>Buffers<CR>
+nnoremap <C-p> <Cmd>Files<CR>
+nnoremap <C-b> <Cmd>Buffers<CR>
nnoremap <leader>rg <Cmd>Rg<CR>
nnoremap <leader>fg <Cmd>GFiles<CR>
nnoremap <leader>fl <Cmd>BLines<CR>