Cell brings the power of spreadsheets to the terminal with a user-friendly interface and familiar Vim keybindings. Designed for efficiency, this tool allows users to manage data effortlessly through pre-built commands or a headless mode, making it perfect for both casual users and automation tasks.
cell: A Terminal Spreadsheet Editor with Vim Keybindings
cell is a terminal-based spreadsheet editor designed for efficiency and ease of use for those familiar with Vim keybindings, built using Rust. This tool enables users to perform spreadsheet functionalities directly from the terminal, maintaining a modern and memory-safe architecture.
Key Features
- Vim Keybindings: Users can navigate and edit cells with intuitive Vim commands, ensuring a smooth user experience for anyone familiar with Vim's modal editing.
- Headless Mode: Ideal for integration with shell pipelines or CI processes, cell allows reading from and writing to files without the need to launch the graphical user interface.
Basic Usage
Launch cell with a blank spreadsheet or open a file using various formats:
cell # An empty spreadsheet
cell data.csv # Open a CSV file
cell data.tsv # Open a TSV file
cell sheet.cell # Open the native format
To explore a demo sheet that includes formulas and logic, use:
cell examples/demo.cell
Formula Support
cell supports a variety of Excel-compatible formulas:
=A1+B1
=SUM(A1:A10)
=AVERAGE(B1:B5)
=IF(A1>100, "high", "low")
Currently, it has built-in functions such as SUM, AVERAGE, COUNT, MIN, MAX, and IF, with a commitment to further expand functionality.
User Interface
cell offers a unique modal interface, similar to Vim, with the following modes:
- Normal Mode: Navigate and execute commands.
- Insert Mode: Edit cell contents directly.
- Visual Mode: Select blocks of cells for operations like copying or deleting.
File Formats Supported
cell can handle multiple file formats:
- CSV/TSV: Standard file formats for opening and saving spreadsheets; formulas are computed and flattened upon CSV export.
- .cell: A native format preserving full functionality, reminiscent of traditional spreadsheet editors.
Comparison to Other Tools
For users deciding between cell and other tools like sc-im, a comparison clearly indicates its unique offerings:
| Feature | cell | sc-im |
|---|---|---|
| Language / TUI | Rust + ratatui | C + ncurses |
| Editing Model | True Vim modal editing | Vim-inspired navigation |
| Supported File Formats | CSV, TSV, .cell | CSV, TSV, XLSX/XLS/ODS |
| Formula Syntax | Excel-style | @-prefix style |
Contribution Guidelines
Contribution is encouraged, and a comprehensive guide is available in CONTRIBUTING.md, covering development setup and project conventions.
cell strives to provide a robust solution for terminal-based spreadsheet editing, combining familiarity from Vim with powerful functionality appropriate for modern development environments.
No comments yet.
Sign in to be the first to comment.