Code editor for who don't know how to use vi
Project description
Textual Code
Code editor for who don't know how to use vi
[!WARNING]
This project is in the early stages of development. It is not ready for use yet.
What is Textual Code?
Textual Code is a TUI-based code editor that feels familiar right from the start.
You’ve probably had to SSH into a server at some point just to tweak a few lines of code. However, vi or Emacs can be overkill for quick fixes, requiring you to remember a whole host of commands for even the simplest changes. Furthermore, nano doesn’t always provide enough features for comfortable coding, and setting up a GUI editor on a remote server can be a real hassle.
That’s why Textual Code was created. You likely use a GUI editor like VS Code or Sublime Text in your day-to-day work, and Textual Code offers a similar experience with no learning curve. It behaves much like any other code editor you’re used to.
We’re not asking you to switch to Textual Code as your main editor. Just remember it’s there when you need to jump onto a server and make a few quick edits. It’s that simple.
Features
[!WARNING]
This project is in the early stages of development. the features listed below are not yet implemented or are only partially implemented.
- Commonly used shortcuts, such as
Ctrl+Sto save andCtrl+Fto search - Command palette for quick access to all features, and no need to remember shortcuts
- Multiple cursors
- Mouse support
- Find and replace from workspace
- Explore files in the sidebar
- Open files to tabs
- Syntax highlighting
Installation
pip install textual-code
Usage
To open the textual code, run the following command in your workspace:
textual-code
Development
(You need to use devcontainer to run the code)
To run the development version directly:
uv run textual-code
To run with the Textual dev console (shows logs and events), open two terminals:
# Terminal 1: start the console
uv run textual console
# Terminal 2: run the app in dev mode
uv run textual run --dev textual_code:main
Running Tests
See docs/testing-guide.md for patterns, best practices, and gotchas.
# Unit/integration tests — parallel (~2.5 min)
uv run pytest tests/ -n $(( $(nproc) * 2 )) -m "not serial"
# Snapshot tests — must run serially
uv run pytest tests/ -m serial
# Update snapshots after UI changes
uv run pytest tests/test_snapshots.py --snapshot-update
# Single file
uv run pytest tests/test_code_editor.py
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file textual_code-0.1.0.tar.gz.
File metadata
- Download URL: textual_code-0.1.0.tar.gz
- Upload date:
- Size: 541.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd694e7a7151fddc9b67359bb6d819ae4e0df72c94ef71fd8b46f3822c850fff
|
|
| MD5 |
e342ae254342e276726ae884168fc970
|
|
| BLAKE2b-256 |
240f46a8ae44d2bb19e6cf78ec223734c5fbc90ac9a42934ef7f75c12d73ca3f
|
File details
Details for the file textual_code-0.1.0-py3-none-any.whl.
File metadata
- Download URL: textual_code-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.11 {"installer":{"name":"uv","version":"0.10.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
375ffaefd30c847c24bd4de7a7a4221f2037af9467b70318296b10fe42a92532
|
|
| MD5 |
46649ef3ed8ac15392508e66764b593a
|
|
| BLAKE2b-256 |
1f57a2f13f514c7903695a5ff5d17f9e749c97b03f3033d69e8daaf2c803f334
|