Skip to content

SC-IM - Spreadsheet Calculator Improvised -- An ncurses spreadsheet program for terminal

License

Notifications You must be signed in to change notification settings

earthshrink/sc-im

 
 

Repository files navigation

sc-im

NOTE 06/01/2023:

This project needs some help. This is a one person project and lost sponsoring in the last months. There are only just a few left. I want to still maintain and develop sc-im, but I am the only income in my family and its becoming difficult to work as much as I would want. If you can make a donation (see at the bottom), please do. Your help would be really appreciated!! Thanks.

sc-im

Spreadsheet Calculator Improvised, aka sc-im, is an ncurses based, vim-like spreadsheet calculator.

sc-im is based on sc, whose original authors are James Gosling and Mark Weiser, and mods were later added by Chuck Martin.

Some of the features of sc-im

  • Vim movements commands for editing cell content.
  • UNDO / REDO.
  • 65.536 rows and 702 columns supported. (The number of rows can be expanded to 1.048.576 if wished).
  • CSV / TAB delimited / XLSX file import and export. ODS import. Markdown export.
  • Key-mappings.
  • Autobackup.
  • Direct color support - specifing the RGB values, screen colors can be customized by user, even at runtime.
  • Colorize cells or give them format such as bold, italic or underline.
  • Wide character support. The following alphabets are supported: English, Spanish, French, Italian, German, Portuguese, Russian, Ukrainian, Greek, Turkish, Czech, Japanese, Chinese.
  • Sort of rows.
  • Filter of rows.
  • Subtotals.
  • Cell shifting.
  • Clipboard support.
  • GNUPlot interaction.
  • Scripting support with LUA. Also with triggers and c dynamic linked modules.
  • Implement external functions in the language you prefer and use them in SC-IM.
  • Use SC-IM as a non-interactive calculator, reading its input from an external script.

Quick start

Key Purpose
= Insert a numeric value
\ Insert a text value
e Edit a numeric value
E Edit a string value
x Delete current cell content
:q Quit the app
:h See help
:w filename.sc Save current spreadsheet in sc format
j Move down
k Move up
h Move left
l Move right
goab12 go to cell AB12
u undo last change
C-r redo last change undone
yy Copy current cell
v select a range using cursor/hjkl keys
p paste a previously yanked cell or range
ir insert row
ic insert column
dr delete row
dc delete column

Screenshots

demo image demo image demo image demo image demo image demo image

Installation

Dependencies

  • Requirements:

    • ncurses (best if compiled with wide chars support)
    • bison or yacc
    • gcc
    • make
    • pkg-config and which (for make to do its job)
  • Optionals:

    • tmux / xclip / pbpaste (for clipboard copy/paste)
    • gnuplot (for plots)
    • libxlsxreader (for xls support)
    • xlsxwriter (for xlsx export support)
    • libxml-2.0 and libzip (for xlsx/ods import support)
    • lua (for Lua scripting)
    • threads support (in case you want to test this in Minix, just disable autobackup and HAVE_PTHREAD)

Manual

    vim src/Makefile
  • Run make:
    make -C src
  • Optional: You can install the binary sc-im in your system by typing with a privileged user:
    make -C src install

Building on OS X

You can follow the instructions as above, but if you would like Lua scripting support, you will need to install Lua 5.1, which you can do with,

    brew install [email protected]

And then follow the instructions as above.

Homebrew for OSX users

brew install sc-im

Ubuntu with XLSX import & export

See this wiki page.

Other distros / OS

Please check wiki pages

Configuration

The scimrc file can be used to configure sc-im. The file should be placed in the ~/.config/sc-im directory.

Here is an example ~/.config/sc-im/scimrc :

set autocalc
set numeric
set numeric_decimal=0
set overlap
set xlsx_readformulas

Other configuration variables are listed in the help file.

Issues and questions

Please open an issue if you find a bug. If you are now sure if its a bug, please take a look at the discussions and/or ask there. If you have a question please check out current discussions and if you still are in doubt, open a discussion as well. If you want to ask for a feature request, the same, check out current discussions. Thank you!

Tutorial

sc-im tutorial

Related projects

  • vim-scimark - Vim plugin, edit embedded markdown tables with sc-im in vim terminal.

Helping us

Want to help? You can help us with one or more of the following:

  • giving sc-im a star on GitHub
  • taking screenshots / creating screencasts showing sc-im
  • making a donation (see below).
  • telling if you use it / like it. I really don't have a clue if this app is used by someone.

Donations

If you like sc-im please support its development by making a DONATION with Patreon or PayPal. It would really help a lot.

If you wish to make a donation, please click the above button or just send money to [email protected] via PayPal, choosing "Goods and Services". or with Patreon.

Thank you!

About

SC-IM - Spreadsheet Calculator Improvised -- An ncurses spreadsheet program for terminal

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 96.7%
  • Shell 1.5%
  • Scala 1.2%
  • Roff 0.6%
  • Makefile 0.0%
  • Lua 0.0%