Serpl — Wyszukiwanie i zamiana jak w VS Code bezpośrednio w terminalu
Wyobraź sobie taką sytuację: pracujesz nad dużym projektem i musisz zmienić nazwę zmiennej w dziesiątkach plików. Otwierać każdy plik w edytorze? Używać niewygodnych skryptów sed? Teraz jest eleganckie rozwiązanie — serpl.
Czym jest Serpl?
Serpl to aplikacja terminalowa napisana w Rust, która przenosi wygodę wyszukiwania i zamiany z VS Code prosto do twojego terminala. To nie tylko narzędzie typu grep/sed, ale pełnoprawny interfejs TUI (Text User Interface) z interaktywnym podglądem i elastyczną konfiguracją.
Dlaczego warto wypróbować?
- Pełnoprawny interfejs — nie tylko output w konsoli, ale wygodna nawigacja oparta na panelach
- Obsługuje duże projekty — integracja z ripgrep zapewnia szybkie wyszukiwanie
- Wyszukiwanie AST — wsparcie dla ast-grep umożliwia precyzyjne zapytania na drzewie składniowym
- Elastyczna konfiguracja — obsługuje formaty JSON/TOML/YAML
- Integracja — współpracuje z Neovim i Helix
Instalacja w minutę
Dla użytkowników Rust:
cargo install serpl
Lub poprzez menedżery pakietów:
- Homebrew:
brew install serpl - Arch Linux:
pacman -S serpl - NixOS:
nix profile install nixpkgs#serpl
Kluczowe funkcje
1. Interaktywne wyszukiwanie z podglądem
Serpl wyświetla wyniki wyszukiwania w czasie rzeczywistym z podświetlaniem dopasowań. Możesz nawigować między plikami i przeglądać kontekst bez opuszczania terminala.
2. Inteligentna zamiana
Obsługuje wiele trybów zamiany:
- Prosta zamiana
- Zachowanie wielkości liter
- Oparta na AST (przez ast-grep)
3. Elastyczne tryby wyszukiwania
- Zwykły tekst
- Uwzględnianie wielkości liter
- Całe słowa
- Wyrażenia regularne
- Wyszukiwanie AST (dla języków programowania)
4. Pełna integracja z edytorami terminalowymi
Dla Neovim dostępna jest gotowa konfiguracja:
return {
"akinsho/toggleterm.nvim",
cmd = { "ToggleTerm", "TermExec" },
-- ... конфигурация ...
}
A dla Helix wystarczy dodać:
[keys.normal.ret]
t = [":write-all", ":insert-output serpl >/dev/tty", ":redraw", ":reload-all"]
Kiedy jest szczególnie przydatny?
- Refaktoryzacja kodu — masowa zmiana nazw zmiennych/funkcji
- Migracje — zmiany API, aktualizacje zależności
- Praca na serwerach zdalnych — gdy nie ma GUI, ale potrzebujesz wygodnego wyszukiwania
- Szybkie eksplorowanie kodu — znajdowanie wszystkich użyć funkcji
Pod maską
- Zbudowany w Rust dla maksymalnej wydajności
- Wykorzystuje ratatui.rs do interfejsu użytkownika
- Integruje się z ripgrep i ast-grep
- Obsługuje konfigurację w 5 formatach (JSON, JSON5, YAML, TOML, INI)
Serpl to coś więcej niż zamiennik dla grep/sed, ale poważne narzędzie dla developerów, którzy intensywnie pracują w terminalu. Jeśli:
- Kochasz narzędzia CLI
- Często pracujesz na serwerach zdalnych
- Cenisz szybkość i wygodę
to serpl zdecydowanie zasługuje na miejsce w twoim zestawie narzędzi. Projekt jest aktywnie rozwijany (700+ gwiazdek na GitHub) i wita contributorów.
Jako bonus — wypróbuj kombinację Ctrl+o do masowej zamiany we wszystkich plikach. Oszczędność czasu gwarantowana!
Powiązane projekty