From f62a535335940d4b139a6beec76f29100a5540a4 Mon Sep 17 00:00:00 2001 From: Fabio Scotto di Santolo Date: Wed, 22 Jul 2026 20:35:23 +0200 Subject: [PATCH] Fix Vim FZF shortcuts --- dotfiles/common/.vimrc | 6 +- dotfiles/common/.vimrc.shortcuts.md | 102 ++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 dotfiles/common/.vimrc.shortcuts.md diff --git a/dotfiles/common/.vimrc b/dotfiles/common/.vimrc index b3d3c48..606ec73 100644 --- a/dotfiles/common/.vimrc +++ b/dotfiles/common/.vimrc @@ -89,7 +89,7 @@ nnoremap h :set hlsearch! " ---------------------------------------------------------- set updatetime=250 -set timeoutlen=400 +set timeoutlen=800 set ttimeoutlen=10 set shortmess+=c @@ -217,12 +217,12 @@ function! s:FzfVersionOk() abort return 0 endif - let l:version = matchstr(get(systemlist(l:fzf . " --version"), 0, ""), "^\d\+\.\d\+\.\d\+") + let l:version = matchstr(get(systemlist(l:fzf . " --version"), 0, ""), '^\d\+\.\d\+\.\d\+') if empty(l:version) return 0 endif - let l:parts = map(split(l:version, "\."), "str2nr(v:val)") + let l:parts = map(split(l:version, '\.'), 'str2nr(v:val)') return l:parts[0] > s:fzf_min_version[0] \ || (l:parts[0] == s:fzf_min_version[0] && l:parts[1] > s:fzf_min_version[1]) \ || (l:parts[0] == s:fzf_min_version[0] && l:parts[1] == s:fzf_min_version[1] diff --git a/dotfiles/common/.vimrc.shortcuts.md b/dotfiles/common/.vimrc.shortcuts.md new file mode 100644 index 0000000..2c9616f --- /dev/null +++ b/dotfiles/common/.vimrc.shortcuts.md @@ -0,0 +1,102 @@ +# Vim shortcuts + +Configurazione sorgente: `.vimrc`. + +- Leader: `Space` +- Local leader: `\\` +- Le shortcut sotto sono pensate per normal mode, salvo dove indicato. +- `timeoutlen` è impostato a `800 ms`: premi le sequenze con leader senza aspettare troppo. + +## Base + +| Shortcut | Azione | +|---|---| +| `Space l` | Toggle caratteri invisibili / whitespace | +| `Space h` | Toggle evidenziazione ricerca | +| `Space w` | Salva file corrente | +| `Space q` | Chiudi finestra corrente | +| `Space x` | Salva e chiudi | +| `Space z` | Toggle fold sotto il cursore | + +## Ricerca + +| Shortcut | Azione | +|---|---| +| `Space g` | Cerca la parola sotto il cursore nel progetto e apre quickfix | +| `Space /` | Avvia `:grep!` manuale | + +## FZF / file / Git + +Queste shortcut usano `fzf.vim` quando disponibile; altrimenti cadono su fallback portabili. + +| Shortcut | Azione | +|---|---| +| `Space ff` | `:Files`, fallback `:edit .` | +| `Space fg` | `:GFiles`, fallback `:edit .` | +| `Space fb` | `:Buffers`, fallback `:ls` | +| `Space fr` | `:Rg`, fallback `:grep! .` + quickfix | +| `Space gs` | `:Git` con vim-fugitive, fallback buffer con `git status` | + +## Quickfix e location list + +| Shortcut | Azione | +|---|---| +| `]q` | Prossimo elemento quickfix | +| `[q` | Precedente elemento quickfix | +| `Space qo` | Apri quickfix | +| `Space qc` | Chiudi quickfix | +| `]l` | Prossimo elemento location list | +| `[l` | Precedente elemento location list | +| `Space lo` | Apri location list | +| `Space lc` | Chiudi location list | + +## Finestre + +| Shortcut | Azione | +|---|---| +| `Ctrl h` | Vai alla finestra a sinistra | +| `Ctrl j` | Vai alla finestra sotto | +| `Ctrl k` | Vai alla finestra sopra | +| `Ctrl l` | Vai alla finestra a destra | + +## Diff + +| Shortcut | Azione | +|---|---| +| `Space df` | Attiva diff su tutte le finestre | +| `Space do` | Disattiva diff su tutte le finestre | + +## Tags e preview + +| Shortcut | Azione | +|---|---| +| `Space t` | Vai al tag della parola sotto il cursore | +| `Space pt` | Apri il tag in preview window | +| `Space po` | Apri preview window | +| `Space pc` | Chiudi preview window | +| `K` | Apri la man page della parola sotto il cursore | + +## Cscope + +Disponibili solo se Vim ha supporto `cscope`. + +| Shortcut | Azione | +|---|---| +| `Space cs` | Cerca simbolo | +| `Space cg` | Cerca definizione | +| `Space cd` | Cerca funzioni chiamate dal simbolo | +| `Space cc` | Cerca chiamanti | +| `Space ct` | Cerca testo | +| `Space ce` | Cerca egrep | +| `Space ci` | Cerca include | + +Nota: `Space cf` è riservato a ClangFormat, quindi non usarlo per cscope file search. + +## Format, build e run + +| Shortcut | Modo | Azione | +|---|---|---| +| `Space cf` | normal | Esegue `clang-format` sul file | +| `Space cf` | visual | Esegue `clang-format` sulla selezione | +| `Space m` | normal | Build smart: `ninja`, `cmake --build build`, `make -C ` o `make` | +| `Space r` | normal | Salva ed esegue il file corrente; supporta C, Python e shell |