>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Rust

Serpl — Ricerca e Sostituzione come in VS Code Direttamente nel Terminale

Immagina questa situazione: stai lavorando a un progetto grande e devi rinominare una variabile in decine di file. Aprire ogni file in un editor? Usare script sed complicati? Ora c'è una soluzione elegante — serpl.

Cos'è Serpl?

Serpl è un'applicazione terminale scritta in Rust che porta la praticità della ricerca e sostituzione di VS Code direttamente nel tuo terminale. Non è solo un'utilità grep/sed, ma un'interfaccia TUI (Text User Interface) completa con anteprima interattiva e configurazione flessibile.

Perché provarlo?

  • Interfaccia completa — non solo output console, ma navigazione comoda basata su pannelli
  • Gestisce progetti grandi — integrato con ripgrep per ricerche veloci
  • Ricerca AST — supporto ast-grep per query precise su alberi sintattici
  • Configurazione flessibile — supporta JSON/TOML/YAML
  • Integrazione — funziona con Neovim e Helix

Installazione in un minuto

Per utenti Rust:

cargo install serpl

Oppure tramite gestori di pacchetti:

  • Homebrew: brew install serpl
  • Arch Linux: pacman -S serpl
  • NixOS: nix profile install nixpkgs#serpl

Funzionalità principali

1. Ricerca interattiva con anteprima

Serpl mostra i risultati della ricerca in tempo reale con l'evidenziazione delle corrispondenze. Puoi navigare tra i file e visualizzare il contesto senza uscire dal terminale.

2. Sostituzione intelligente

Supporta diverse modalità di sostituzione:

  • Sostituzione semplice
  • Mantieni maiuscole/minuscole
  • Basata su AST (tramite ast-grep)

3. Modalità di ricerca flessibili

  • Testo normale
  • Maiuscole/minuscole
  • Parola intera
  • Espressioni regolari
  • Ricerca AST (per linguaggi di programmazione)

4. Integrazione completa con editor terminale

Neovim ha una configurazione pronta all'uso:

return {
  "akinsho/toggleterm.nvim",
  cmd = { "ToggleTerm", "TermExec" },
  -- ... конфигурация ...
}

E per Helix, basta aggiungere:

[keys.normal.ret]
t = [":write-all", ":insert-output serpl >/dev/tty", ":redraw", ":reload-all"]

Quando è particolarmente utile?

  1. Refactoring del codice — rinomina in blocco variabili/funzioni
  2. Migrazioni — modifiche API, aggiornamenti dipendenze
  3. Lavoro su server remoti — quando non c'è GUI ma serve una ricerca comoda
  4. Esplorazione rapida del codice — trovare tutti gli utilizzi di una funzione

Sotto il cofano

  • Costruito con Rust per massime prestazioni
  • Utilizza ratatui.rs per l'interfaccia utente
  • Si integra con ripgrep e ast-grep
  • Supporta configurazione in 5 formati (JSON, JSON5, YAML, TOML, INI)

Serpl è più di un semplice sostituto di grep/sed, ma uno strumento serio per gli sviluppatori che lavorano molto nel terminale. Se tu:

  • Ami gli strumenti CLI
  • Lavori spesso su server remoti
  • Valorizzi velocità e praticità

allora serpl merita sicuramente un posto nel tuo toolkit. Il progetto è sviluppato attivamente (700+ stelle su GitHub) e accoglie contributori.

Come bonus — prova la combinazione Ctrl+o per la sostituzione in blocco su tutti i file. Risparmio di tempo garantito!

Progetti correlati