{"id":18497575,"url":"https://github.com/csb6/editorial","last_synced_at":"2025-08-07T04:37:52.034Z","repository":{"id":37987537,"uuid":"232705495","full_name":"csb6/editorial","owner":"csb6","description":"A TUI text editor written in C++","archived":false,"fork":false,"pushed_at":"2022-06-13T00:30:17.000Z","size":115,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T17:51:34.335Z","etag":null,"topics":["cpp","cpp17","curses","ncurses","text-editor","tui"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csb6.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-01-09T02:34:37.000Z","updated_at":"2024-12-21T15:03:32.000Z","dependencies_parsed_at":"2022-09-08T07:22:38.644Z","dependency_job_id":null,"html_url":"https://github.com/csb6/editorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/csb6/editorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Feditorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Feditorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Feditorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Feditorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csb6","download_url":"https://codeload.github.com/csb6/editorial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csb6%2Feditorial/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269201074,"owners_count":24377444,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-07T02:00:09.698Z","response_time":73,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp17","curses","ncurses","text-editor","tui"],"created_at":"2024-11-06T13:35:00.694Z","updated_at":"2025-08-07T04:37:52.004Z","avatar_url":"https://github.com/csb6.png","language":"C++","readme":"[![Build Status](https://travis-ci.com/csb6/editorial.svg?branch=master)](https://travis-ci.com/csb6/editorial)\n\n# Editorial\n\nA text editor for your terminal, written in C++20.\n\n**Please note:** This is probably not a replacement for your\neditor of choice. It has a pretty small feature set, but I hope that\nyou find it interesting, at least from a programming standpoint.\n\n## Features\n\n- Fast syntax highlighting for C++, Markdown, and MIPS assembly\n  (activated by file extension)\n- Basic undo/redo functionality\n- Small implementation; around 900 lines of C++ code (not including generated code)\n- Extremely low CPU and memory usage\n- Scrolling using arrow keys\n- Works on any terminal supported by ncurses (essentially anything Unix-like)\n\n## Key Bindings\n\n**Ctrl-s** : Save the file to disk\n\n**Ctrl-c** : Quit (without saving)\n\n**Ctrl-z** : Undo last action (e.g. moving left one character, deleting\na character)\n\n**Left and Right Arrows** : Move cursor one character forward/backward\n\n**Up and Down Arrows** : Move cursor one line up/down\n\n**Tab** : Insert four spaces at the cursor\n\n## Installation\n\nWhen you first clone the repository, run `./build-full.sh`. This\nscript will do the code-generation necessary to do fast syntax\nhighlighting. This script will call both `build-code-gen.sh` and\n`./build.sh`.\n\nAfter the initial cloning/full build, just run `./build.sh` to rebuild after any changes\nto the main source code of the program (i.e. everything besides the\nsyntax highlighting). If you do modify any of the code generation code,\nrun `./build-full.sh` to get a build reflecting those changes.\n\nThe build scripts are set up to use `clang++` as the compiler, but you can\neasily change this within each script. The scripts are all very short, so this\nshould be straightforward. Also, be sure that you have ncurses installed\nand in a location that your compiler can find.\n\nMost Unix-like systems should already have an ncurses shared library, but\non Windows you will most likely have to install PDCurses, which implements\nthe same interface as ncurses on Windows platforms. This editor only uses the\nmost basic features of ncurses (no fancy widgets or anything), so it should be\ncompatible with PDCurses. However, this has not been tested.\n\nIf there is no viable ncurses support for your platform, it should be\nstraightforward to port over the necessary terminal drawing code.\nSee `screen.h` and `screen.cpp` for the implementation of the ncurses wrapper.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsb6%2Feditorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsb6%2Feditorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsb6%2Feditorial/lists"}