Serpl — Recherche et remplacement façon VS Code directement dans le terminal
Imaginez cette situation : vous travaillez sur un gros projet et devez renommer une variable dans des dizaines de fichiers. Ouvrir chaque fichier dans un éditeur ? Utiliser des scripts sed complexes ? Il existe maintenant une solution élégante — serpl.
Qu'est-ce que Serpl ?
Serpl est une application terminal écrite en Rust qui apporte la commodité de la recherche et du remplacement de VS Code directement dans votre terminal. Ce n'est pas qu'un simple utilitaire grep/sed, mais une interface TUI (Text User Interface) complète avec un aperçu interactif et une configuration flexible.
Pourquoi l'essayer ?
- Interface complète — pas juste une sortie console, mais une navigation pratique par panneaux
- Gestion des gros projets — intégré avec ripgrep pour des recherches rapides
- Recherche AST — support ast-grep pour des requêtes précises sur l'arbre syntaxique
- Configuration flexible — supporte JSON/TOML/YAML
- Intégration — fonctionne avec Neovim et Helix
Installer en une minute
Pour les utilisateurs Rust :
cargo install serpl
Ou via les gestionnaires de paquets :
- Homebrew :
brew install serpl - Arch Linux :
pacman -S serpl - NixOS :
nix profile install nixpkgs#serpl
Fonctionnalités clés
1. Recherche interactive avec aperçu
Serpl affiche les résultats de recherche en temps réel avec une mise en surbrillance des correspondances. Vous pouvez naviguer entre les fichiers et voir le contexte sans quitter le terminal.
2. Remplacement intelligent
Prend en charge plusieurs modes de remplacement :
- Remplacement simple
- Préserver la casse
- Basé sur l'AST (via ast-grep)
3. Modes de recherche flexibles
- Texte brut
- Respect de la casse
- Mot entier
- Expressions régulières
- Recherche AST (pour les langages de programmation)
4. Intégration complète avec les éditeurs de terminal
Neovim dispose d'une configuration prête à l'emploi :
return {
"akinsho/toggleterm.nvim",
cmd = { "ToggleTerm", "TermExec" },
-- ... конфигурация ...
}
Et pour Helix, ajoutez simplement :
[keys.normal.ret]
t = [":write-all", ":insert-output serpl >/dev/tty", ":redraw", ":reload-all"]
Quand est-il particulièrement utile ?
- Refactoring de code — renommage en masse de variables/fonctions
- Migrations — changements d'API, mises à jour de dépendances
- Travail sur des serveurs distants — quand il n'y a pas d'interface graphique mais que vous avez besoin d'une recherche pratique
- Exploration rapide du code — trouver toutes les utilisations d'une fonction
Sous le capot
- Construit avec Rust pour des performances maximales
- Utilise ratatui.rs pour l'interface utilisateur
- S'intègre avec ripgrep et ast-grep
- Prend en charge la configuration dans 5 formats (JSON, JSON5, YAML, TOML, INI)
Serpl est bien plus qu'un simple remplacement pour grep/sed, mais un outil sérieux pour les développeurs qui travaillent beaucoup dans le terminal. Si vous :
- Aimez les outils en ligne de commande
- Travaillez fréquemment sur des serveurs distants
- Valorisez la vitesse et la commodité
alors serpl mérite définitivement une place dans votre boîte à outils. Le projet est activement développé (700+ étoiles sur GitHub) et accueille les contributeurs.
En bonus — essayez la combinaison Ctrl+o pour le remplacement en masse dans tous les fichiers. Économies de temps garanties !
Projets similaires