diff options
Diffstat (limited to 'vim/.vimrc')
| -rw-r--r-- | vim/.vimrc | 48 |
1 files changed, 6 insertions, 42 deletions
@@ -1,8 +1,11 @@ " ~/.vimrc — Vim 9 configuration -" Requires: vim-plug, rust-analyzer in PATH, fzf binary +" Requires: vim-plug, rust-analyzer, rg in PATH let mapleader = ' ' +" Use bash for subprocesses — fish has non-interactive startup overhead +let $SHELL = '/bin/bash' + " ── Bootstrap vim-plug ──────────────────────────────────────────────────────── let s:plug_path = expand('~/.vim/autoload/plug.vim') if !filereadable(s:plug_path) @@ -15,8 +18,7 @@ endif call plug#begin() Plug 'yegappan/lsp' -Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } -Plug 'junegunn/fzf.vim' +Plug 'vim-fuzzbox/fuzzbox.vim' Plug 'ghifarit53/tokyonight-vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' @@ -31,6 +33,7 @@ set number " show line numbers set signcolumn=yes " always show sign column; prevents layout shift from LSP diagnostics set updatetime=300 " ms before swap write / CursorHold fires; speeds up LSP diagnostics set hidden " allow switching away from a modified buffer without saving +set cursorline " highlight the current line the cursor is on set tabstop=4 " <Tab> displays as 4 spaces set shiftwidth=4 " >> / << indent by 4 spaces @@ -110,42 +113,3 @@ nnoremap <C-l> <C-w>l " ── Airline ─────────────────────────────────────────────────────────────────── 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 <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> -nnoremap <leader>fh <Cmd>History<CR> -nnoremap <leader>fc <Cmd>Commands<CR> -nnoremap <leader>fm <Cmd>Maps<CR> - -" Word search under cursor -nnoremap <leader>fw <Cmd>execute 'Rg ' .. expand('<cword>')<CR> |
