A Vim plugin that highlights CSV/TSV columns in rainbow colors and provides an SQL-like query language (RBQL) for data manipulation.
Rainbow CSV is a Vim plugin that provides syntax highlighting for CSV and TSV files, coloring each column differently to improve readability. It includes RBQL (Rainbow Query Language), an SQL-like engine for querying and transforming data directly within Vim, eliminating the need to switch to external data tools.
Vim and Neovim users who frequently work with CSV/TSV files, such as data analysts, developers, and system administrators needing to inspect or manipulate tabular data in the terminal.
It combines visual clarity with powerful data querying in a lightweight, dependency-free package, making it a versatile alternative to graphical CSV editors or command-line tools like csvkit.
🌈Rainbow CSV - Vim plugin: Highlight columns in CSV and TSV files and run queries in SQL-like language
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically highlights CSV columns in different rainbow colors for improved readability, using a lightweight WYSIWYG approach that avoids computational overhead, as noted in the philosophy section.
Includes RBQL, an SQL-like language supporting SELECT and UPDATE queries with Python or JavaScript expressions, allowing data transformation directly within Vim without external tools.
Works with commas, tabs, semicolons, pipes, whitespace, and custom multi-character delimiters, and can highlight non-table files like logs or code, as shown in the commands and features.
Core functionality is written in pure vimscript with no additional libraries required, making installation straightforward and performance efficient out of the box.
RBQL only supports JOIN queries with exactly two tables and no nested queries, requiring consecutive queries for complex multi-table operations, which can be cumbersome.
For rfc_csv and rfc_semicolon dialects with multiline fields, syntax highlighting can go out of sync, requiring manual commands like ':syntax sync fromstart' to fix, and performance may degrade with large multiline ranges.
RBQL has non-standard limitations, such as not supporting aggregate functions inside expressions and requiring specific variable naming (e.g., a1, b1), which can confuse users familiar with traditional SQL.