Serpl
serpl is a terminal user interface (TUI) application that allows users to search and replace keywords in an entire folder, similar to the functionality available in VS Code.
https://github.com/yassinebridi/serpl/assets/18403595/c63627da-7984-4e5f-b1e2-ff14a5d44453
Table of Contents
Features
- Search for keywords across an entire project folder.
- Replace keywords with options for preserving case.
- Interactive preview of search results.
- Keyboard navigation for efficient workflow.
- Configurable key bindings and search modes.
Installation and Update
Prerequisites
Steps
- Install the application using Cargo:
- Update the application using Cargo:
- Run the application:
Binaries
Check the releases page for the latest binaries.
OS Specific Installation
(WIP)
Usage
Basic Commands
- Start the application in the current directory:
- Start the application and provide the project root path:
Key Bindings
Default key bindings can be customized through the config.json file.
Default Key Bindings
| Key Combination | Action |
|---|---|
Ctrl + c |
Quit |
Tab |
Switch between input fields |
Backtab |
Switch to previous input field |
Ctrl + o |
Process replace |
Ctrl + n |
Toggle search mode |
Ctrl + p |
Toggle replace mode |
Enter |
Execute search |
g |
Go to top of the list |
G |
Go to bottom of the list |
j / Down |
Move to the next item |
k / Up |
Move to the previous item |
d |
Delete selected file or line |
Esc |
Exit the current screen or dialog |
Enter (in dialogs) |
Confirm action |
h, l, Tab (in dialogs) |
Navigate dialog options |
Configuration
serpl uses a config.json file to manage key bindings and other settings. By default, this file is located in the project's config directory.
Example config.json:
You can customize the key bindings by modifying the config.json file.
Screens
Search Screen
- Input field for entering search keywords.
- Toggle search modes (Simple, Match Case, Whole Word, Regex).
Replace Screen
- Input field for entering replacement text.
- Toggle replace modes (Simple, Preserve Case).
Search Results Screen
- List of files with search results.
- Navigation to select and view files.
- Option to delete files from the search results.
Preview Screen
- Display of the selected file with highlighted search results.
- Navigation to view different matches within the file.
- Option to delete individual lines containing matches.
Neovim Integration using toggleterm
Check out the toggleterm.nvim plugin for Neovim, which provides a terminal that can be toggled with a key binding. Or you can use the following configuration, if you are using AstroNvim:
return
License
This project is licensed under the MIT License. See the LICENSE file for details.
Contributing
(WIP)