{"id":13477841,"url":"https://github.com/curlpipe/ox","last_synced_at":"2025-05-13T19:12:56.978Z","repository":{"id":37177599,"uuid":"283354765","full_name":"curlpipe/ox","owner":"curlpipe","description":"The simple but flexible text editor","archived":false,"fork":false,"pushed_at":"2025-03-13T20:30:37.000Z","size":90726,"stargazers_count":3497,"open_issues_count":14,"forks_count":116,"subscribers_count":37,"default_branch":"master","last_synced_at":"2025-04-28T00:42:32.507Z","etag":null,"topics":["crossterm","editor","editors","ox","rust","terminal","terminal-based","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/curlpipe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":"ox_editor","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-07-29T00:04:40.000Z","updated_at":"2025-04-27T06:11:09.000Z","dependencies_parsed_at":"2025-04-25T18:16:09.527Z","dependency_job_id":"92d3fc0b-4e68-45be-a414-a34a080d7423","html_url":"https://github.com/curlpipe/ox","commit_stats":{"total_commits":322,"total_committers":11,"mean_commits":"29.272727272727273","dds":0.04037267080745344,"last_synced_commit":"086f66532f053c0feeffa94b92b9ebfd3e9feb33"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curlpipe%2Fox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curlpipe%2Fox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curlpipe%2Fox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curlpipe%2Fox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/curlpipe","download_url":"https://codeload.github.com/curlpipe/ox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254010815,"owners_count":21998994,"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","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":["crossterm","editor","editors","ox","rust","terminal","terminal-based","tui"],"created_at":"2024-07-31T16:01:48.353Z","updated_at":"2025-05-13T19:12:56.931Z","avatar_url":"https://github.com/curlpipe.png","language":"Rust","funding_links":["https://patreon.com/ox_editor"],"categories":["Rust","Applications","应用程序 Applications","By Industry","tui","By Language","terminal","\u003ca name=\"editors\"\u003e\u003c/a\u003eEditors","Text Editors"],"sub_categories":["Text editors","文本编辑器 Text editors","Other","Rust"],"readme":"\u003c!-- Heading --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/curlpipe/ox/\"\u003e\n    \u003cimg src=\"assets/logo.png\" alt=\"Logo\" width=\"150\" height=\"150\"\u003e\n  \u003c/a\u003e\n\n  \u003ch1 align=\"center\" style=\"font-size: 50px;\"\u003eOx editor\u003c/h1\u003e\n\n  \u003cp align=\"center\" style=\"font-size: 20px;\"\u003e\n    The simple but flexible text editor\n    \u003cbr\u003e\u003cbr\u003e\n    \u003cdiv align=\"center\" style=\"display:inline;\"\u003e\n      \u003cimg src=\"/assets/showcase.gif?raw=true\" width=\"100%\"\u003e\n    \u003c/div\u003e\n    \u003cbr\u003e\n\u003c/p\u003e\n\n\n![Build Status](https://img.shields.io/github/forks/curlpipe/ox.svg?style=for-the-badge)\n![Build Status](https://img.shields.io/github/stars/curlpipe/ox.svg?style=for-the-badge)\n![License](https://img.shields.io/github/license/curlpipe/ox.svg?style=for-the-badge)\n\n[About](#about)    -    [Installation](#installation)    -    [Quick Start Guide](#quick-start-guide)\n\n## About\n\nOx is a text editor that can be used to write everything from text to code.\n\nIf you're looking for a text editor that...\n1. :feather: Is lightweight and efficient\n2. :wrench: Can be configured to your heart's content\n3. :package: Has useful features out of the box and a library of plug-ins for everything else\n\n...then Ox is right up your street\n\nIt runs in your terminal as a text-user-interface, just like vim, nano and micro, however, it is not based on any existing editors and has been built from the ground up.\n\nIt works best on linux, but macOS and Windows are also supported.\n\n## Selling Points\n\n### Strong configurability\n\n- :electric_plug: Plug-In system where you can write your own plug-ins or choose from pre-existing ones\n    - 💬 Discord RPC\n    - 📗 Git integration\n    - 🕸️ Emmet and HTML viewer\n    - ⏲️ Pomodoro timer and todo list tracker\n    - 🤖 AI code \u0026 advice\n- :wrench: Configure everything including colours, key bindings and behaviours\n- :moon: Write Lua code for configuration\n- :handshake: A set-up wizard to make Ox yours from the start\n\n### Out of the box features\n\n- :paintbrush: Syntax highlighting\n- :arrow_right_hook: Undo and redo\n- :mag: Search and replace text\n- :file_folder: Opening multiple files at once\n- :eye: UI that shows you the state of the editor and file\n- :computer_mouse: You can move the cursor and select text with your mouse\n- :writing_hand: Convenient shortcuts when writing code\n- :crossed_swords: Multi-editing features such as multiple cursors and recordable macros\n- :window: Splits to view multiple documents on the same screen at the same time\n- :file_cabinet: File tree to view, open, create, delete, copy and move files\n- :keyboard: Access to terminals within the editor\n\n### Detailed Documentation\n\nBecome a power user and take advantage of everything on offer.\n\nFound on the [wiki page](https://github.com/curlpipe/ox/wiki/)\n\nThis will take you step-by-step in great detail through 6 different stages:\n\n1. **Installation** - advice and how-tos on installation\n2. **Configuring** - changing the layout, adding to and changing the syntax highlighting\n3. **General Editing** - editing a document and controlling the editor\n4. **Command Line** - using the command line interface\n5. **Plugins** - installing or uninstalling community plug-ins and writing or distributing your own plug-ins\n6. **Roadmap** - planned features\n\n## Installation\n\nTo get started, please click on your operating system\n\n- :penguin: [Linux](#linux)\n- :window: [Windows](#windows)\n- :apple: [MacOS](#macos)\n\n### Linux\n\nHere are the list of available methods for installing on Linux:\n- [Manually](#manual)\n- [Binary](#binaries)\n- [Arch Linux](#arch-linux)\n- [Fedora](#fedora)\n- [Debian / Ubuntu](#debian)\n\n#### Arch Linux\n\nInstall one of the following from the AUR:\n- `ox-bin` - install the pre-compiled binary (fastest)\n- `ox-git` - compile from source (best)\n\n#### Fedora\n\nYou can find an RPM in the [releases page](https://github.com/curlpipe/ox/releases)\n\nInstall using the following command:\n\n```sh\nsudo dnf install /path/to/rpm/file\n```\n\n#### Debian\n\nYou can find a deb file in the [releases page](https://github.com/curlpipe/ox/releases)\n\nInstall using the following command:\n\n```sh\nsudo dpkg -i /path/to/deb/file\n```\n\n### Windows\n\nHere are the list of available methods for installing on Windows:\n- [Manually (best)](#manual)\n- [Binary](#binaries)\n\n\n\n### MacOS\n\nHere are the list of available methods for installing on macOS:\n- [Manually](#manual)\n- [Binary](#binaries)\n- [Homebrew](#homebrew)\n- [MacPorts](#macports)\n\n#### Homebrew\n\nInstall `ox` from Homebrew core tap.\n\n```sh\nbrew install ox\n```\n\n#### MacPorts\n\nOn macOS, you can install `ox` via [MacPorts](https://www.macports.org)\n\n```sh\nsudo port selfupdate\nsudo port install ox\n```\n\n### Binaries\n\nThere are precompiled binaries available for all platforms in the [releases page](https://github.com/curlpipe/ox/releases).\n\n- For Linux: download the `ox` executable and copy it to `/usr/bin/ox`, then run `sudo chmod +x /usr/bin/ox`\n- For MacOS: download the `ox-macos` executable and copy it to `/usr/local/bin/ox`, then run `sudo chmod +x /usr/local/bin/ox`\n- For Windows: download the `ox.exe` executable and copy it into a location in `PATH` see [this guide](https://zwbetz.com/how-to-add-a-binary-to-your-path-on-macos-linux-windows/#windows-cli) for how to do it\n\n### Manual\n\nThis is the absolute best way to install Ox, it will ensure you always have the latest version and everything works for your system.\n\nYou must have a working installation of the Rust compiler to use this method. Visit the website for [rustup](https://rustup.rs/) and follow the instructions there for your operating system.\n\nNow with a working version of rust, you can run the command:\n\n```sh\ncargo install --git https://github.com/curlpipe/ox\n```\n\nThis will take at worst around 2 minutes. On some more modern systems, it will take around 30 seconds.\n\nPlease note that you should add `.cargo/bin` to your path, which is where the `ox` executable will live, although `rustup` will likely do that for you, so no need to worry too much.\n\n## Quick Start Guide\n\nOnce you have installed Ox, it's time to get started.\n\n### Set-Up\n\nYou can open Ox using the command\n\n```sh\nox\n```\n\nAt first, if you don't have a configuration file in place, Ox will walk you through a set-up wizard.\n\nWhen you've completed it, you should be greeted by ox itself, with an empty, unnamed document.\n\nAt the top is your tab line, this shows you files that are open.\n\nAt the bottom is your status line, this shows you the state of the editor.\n\nAt the far bottom is your feedback line, you'll see information, warnings and errors appear there.\n\n### Editing\n\nToggle the built-in help message using \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eH\u003c/kbd\u003e. You can press \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eH\u003c/kbd\u003e again to hide this message if it gets in the way. This should introduce you to most of the key bindings on offer.\n\nOx isn't a modal text editor, so you can begin typing straight away. Give it a go! Type in letters and numbers, delete with backspace, indent with tab, break up lines with the enter key.\n\nMove your cursor by clicking, or using the arrow keys. You can also click and drag to select text.\n\nIf you modify a file, you may notice a `[+]` symbol, this means the file open in the editor differs from it's state on the disk. Save the file to update it on the disk and this indicator will disappear.\n\nBecause the file we're editing is new and doesn't have a name, you'll need to save as using \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eS\u003c/kbd\u003e and give it a name.\n\nNow, if you were to edit it again, because it is on the disk and has a name, you can use the standard \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eS\u003c/kbd\u003e to save it.\n\nYou can open files through \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eO\u003c/kbd\u003e - try opening a file!\n\nIf you modify it you can then use the standard \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eS\u003c/kbd\u003e to update it on the disk, as this file already exists.\n\nWhen mutltiple files are open, you can navigate back and forth using \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eLeft\u003c/kbd\u003e and \u003ckbd\u003eAlt\u003c/kbd\u003e + \u003ckbd\u003eRight\u003c/kbd\u003e\n\nOnce you're done with a file, you can use \u003ckbd\u003eCtrl\u003c/kbd\u003e + \u003ckbd\u003eQ\u003c/kbd\u003e to quit out of it.\n\nIf all files are closed, Ox will exit.\n\nIf you're interested in finding out all the key bindings on offer, click [here](https://github.com/curlpipe/ox/wiki/General-editing#quick-reference)\n\nNow you've exited Ox, let's check out some command line options.\n\n### CLI\n\nYou can open files straight from the command line like this:\n\n```sh\nox /path/to/file1 /path/to/file2\n```\n\nIf you try to open a file that doesn't actually exist, Ox will open it in memory, and as soon as you save, it will save it will create it for you.\n\nSee more information regarding command line options using the command.\n\n```sh\nox --help\n```\n\nThis provides everything you need to know to do some basic editing, but there is so much more you can take advantage of, from plug-ins to opening multiple files on the same screen, to using the built-in terminal and using the file tree to manage your project.\n\nIf you are curious in learning more, click [here](https://github.com/curlpipe/ox/wiki) to access the wiki where you will be introduced to all the wide range of features and really make your experience smooth like butter 🧈.\n\n## License\n\nDistributed under the GNU GPLv2 License. See `LICENSE` for more information.\n\n## Contact\n\nYou can contact me on Discord at my handle `curlpipe`. I'll be happy to answer any questions you may have!\n\n## Acknowledgements\n\n- [Luke (curlpipe)](https://github.com/curlpipe), principal developer\n- [HKalbasi](https://github.com/HKalbasi), key contributor\n- [Spike (spikecodes)](https://github.com/spikecodes), for the logo\n- The community, for the stars, ideas, suggestions and bug reports\n\nThe creators of the following technologies:\n\n* [Rust language](https://rust-lang.org)\n* [Kaolinite](https://github.com/curlpipe/kaolinite)\n* [Synoptic](https://github.com/curlpipe/synoptic)\n* [Crossterm](https://github.com/crossterm-rs/crossterm)\n* [Mlua](https://github.com/mlua-rs/mlua)\n* [Jargon-args](https://crates.io/crates/jargon-args)\n* [Regex](https://docs.rs/regex/1.3.9/regex/)\n* [Unicode-rs](https://unicode-rs.github.io/)\n* [Quick-error](https://github.com/tailhook/quick-error)\n* [Shellexpand](https://github.com/netvl/shellexpand)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurlpipe%2Fox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcurlpipe%2Fox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurlpipe%2Fox/lists"}