Terminal-based CSV editor with vi-style keybindings that preserves original file formatting
Csvi is a terminal-based CSV editor that runs on UNIX-like systems and Windows. The tool preserves original file formatting for unmodified cells, maintaining quotes, line endings (LF/CRLF), BOM, encoding, and field separators. Only cells that are actually edited get saved, making it suitable for clean diffs and safe edits to production data.
The editor combines vi-style cursor movement with Emacs-style cell editing keybindings. Users can navigate with h/j/k/l keys, search with / and ?, and edit cells with commands like 'r' to replace, 'x' to clear, and 'u' to undo changes. Visual feedback shows modified cells with underlines, and the bottom status line displays technical details about the original file format.
Csvi handles various text encodings including UTF-8, UTF-16, Windows code pages, and any IANA-registered encoding. It can read from files or standard input, supports fast startup with background loading for large files, and includes features like column width adjustment, header line protection, and copy/paste operations between cells, rows, and columns.
# via Scoop
scoop install https://raw.githubusercontent.com/hymkor/csvi/master/csvi.json
# via Go
go install github.com/hymkor/csvi/cmd/csvi@latest
# via eget
eget hymkor/csvi
