Help us shape the future of Go! Take the 2026 Go Developer Survey

sc

command module
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2026 License: ISC Imports: 10 Imported by: 0

README

Spreadsheet Calculator

ISC License GoDoc GitHub downloads GitHub go.mod Go version GitHub release (latest by date)

This is a text-based spreadsheet program compatible with sc files. sc is a public domain curses-based speadsheet calculator program that has similar key bindings to vi and works on Unix-like OSs.

This version of sc is cross-platform, allowing it to view/edit sc files on a Windows machine.

csv2sc is a companion command-line utility that converts CSV files into the sc spreadsheet format and back. It handles headers with configurable alignment, detects numbers, strings, and formulas (fields starting with =), and can also export an sc file to CSV with formulas preserved or with computed values using --calc. It is written in pure Go and ships alongside sc in every release archive.

Supported Features

  • Vi-like key movements
  • Expressions (B23+E23*5)
  • Export to file, as in sc.

This release adds support for cell ranges (A1:A7).

Normal Mode Commands

  • Movement: h, j, k, l
  • Enter insert mode for numbers and expressions: =, i
  • Enter insert mode for strings with alignment: < (Left-Aligned), > (Right-Aligned), \ (Centered)
  • Delete (clear) cell: x
  • Delete row: d, r
  • Delete column: d, c
  • Commands: (y)ank, (p)ut
  • Set output format for current column: f
  • Export in txt: W
  • Goto: g
  • Undo: u
  • Quit: q

Bug Fixes and Improvements

Added
  • Cell ranges: support for ranges such as A1:A7 in formulas (e.g., A1:A7*2, B1:B3+C1:C3).
  • Functions: @sum, @avg, @max and @min now work with cell ranges (e.g., @avg(B1:D1), @max(A1:A7)).
  • Cross-spreadsheet evaluation: @evaler("file", "expr") in a cell evaluates an expression against an external .sc, .csv, or .tsv file.
  • Headless formula evaluator: csv2sc --eval "expr" file evaluates an expression or cell against a file and prints the result to stdout.
  • Delete row/column: press d followed by r (row) or c (column) to delete the current row or column. Formulas are adjusted automatically: references to the deleted row/column become @ERR, references to rows/columns to the right are decremented, and ranges are shrunk accordingly.
  • Undo: press u to revert the most recent cell change (single-level undo).
  • GoTo: press g, type an address (e.g., C5), and press Enter to jump directly to that cell.
Fixed
Before After
Freezing on cycles circle instead of freezing
Slow GoTo (cell by cell) Instant GoTo
Slow opening (48 redraws) Fast opening (1 redraw)
@avg, @max, @min returning the range sum @avg, @max, @min returning the correct aggregate value
Formulas not adjusted when deleting rows/columns Formulas are rewritten: references to the deleted row/column become @ERR, and other references are shifted

Contribute

Use issues for everything

  • You can help and get help by:
    • Reporting doubts and questions
  • You can contribute by:
    • Reporting issues
    • Suggesting new features or enhancements
    • Improve/fix documentation

License

This project is licensed under the ISC License.

Todos os direitos de propriedade intelectual sobre este software pertencem aos autores, Chris Howey, Leonard von Hagen, e Pedro F. Albanese. Vide Lei 9.610/98, Art. 7º, inciso XII.

Documentation

Overview

termbox-events

Directories

Path Synopsis
internal
sheet
Implements functions required commands on a sheet.
Implements functions required commands on a sheet.
sheet/align
align
align

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL