>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Rust

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?

  1. Refaktoryzacja kodu — masowa zmiana nazw zmiennych/funkcji
  2. Migracje — zmiany API, aktualizacje zależności
  3. Praca na serwerach zdalnych — gdy nie ma GUI, ale potrzebujesz wygodnego wyszukiwania
  4. 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