# Pointer文本编辑器
**Repository Path**: CharOfString/ptre
## Basic Information
- **Project Name**: Pointer文本编辑器
- **Description**: 使用Rust+ratatui开发的文本编辑器项目,目前正在早期开发阶段
- **Primary Language**: Rust
- **License**: GPL-3.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-09-26
- **Last Updated**: 2026-10-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: 文本编辑器, Rust, TUI
## README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![project_license][license-shield]][license-url]
[](https://ratatui.rs/)
## About The Project

*Pointer Editor* (we'll call it Pointer or `ptre` in the rest of the document) is a currently under developing (we just started it) lightweight text editor in Rust.
(back to top)
### Built With
* Rust
* Cargo
* Ratatui
(back to top)
## Getting Started
### Prerequisites
You will need to have Rust & Cargo ready on your system. Please note that network is required as Cargo will download its dependencies.
### Build & Run
Please have Rust & Cargo ready, then you may use the following command to build:
```shell
$ cargo build
```
You may find the binary file on `target/debug/build/ptre`.
To run the code directly:
```shell
$ cargo run
```
To open an existing file in the editor buffer, pass its relative or absolute path:
```shell
$ cargo run -- README.md
```
A folder opens as a project, as `Ctrl + C` `Ctrl + P` `A` does:
```shell
$ cargo run -- src
```
Multiple arguments are rejected.
### Packaging
#### Debian
> **NOTE**: Network connection WILL BE REQUIRED!!
To build a Debian binary package, simply run:
```shell
$ ./build-deb -d
```
Dependencies will automatically being installed to your computer.
Next time you may run:
```shell
$ ./build-deb
```
To do a cleanup, run:
```shell
$ ./build-deb -c
```
Note that this will also clear the artifacts generated.
#### Archlinux
> **NOTE**: Network connection WILL BE REQUIRED!!
To build a Arch `zstd` package, simply run:
```shell
$ ./build-pkg -d
```
Dependencies will automatically being installed to your computer.
Next time you may run:
```shell
$ ./build-pkg
```
To do a cleanup, run:
```shell
$ ./build-pkg -c
```
Note that this will also clear the artifacts generated.
(back to top)
## Usage
The usage section has been moved to the `doc/` folder. The list below shows some handy documents.
* [Shortcut Keys](./doc/shortcuts/shortcuts.md)
* [Plugins](./doc/plugins/plugins.md)
_For more examples, please refer to the [documentation directory](./doc/)._
(back to top)
## Roadmap
- [X] C/C++ editor buffer
- [X] C/C++ code auto completion.
- [X] C/C++ Clang-tidy/Cpplint error displaying.
- [X] C/C++ error autofix.
- [ ] Rust editor buffer
- [ ] Provide code auto completion.
- [ ] Provide linting.
- [ ] Application
- [X] Provide color icon mode.
- [ ] Provide i18n translations.
- [ ] Packaging
- [X] Debian.
- [X] Archlinux.
- [ ] Fedore/OpenSUSE.
- [ ] Nix.
- [ ] AmberPM.
See the [open issues](https://github.com/CharOfString/ptre/issues) for a full list of proposed features (and known issues).
(back to top)
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
Please refer to the *[Contributor Guide](./CONTRIBUTING.md)* and *[Code of Conduct](./CODE_OF_CONDUCT.md)* before contributing, thanks.
(back to top)
### Top contributors:
## License
`ptre` is licensed under *GNU GENERAL PUBLIC LICENSE Version 3*, you may find a copy of the license [here](./LICENSE).
(back to top)
## Acknowledgments
Special thanks to these libraries:
* **Crossterm-rs**: https://github.com/crossterm-rs/crossterm
* **Lsp-types**: https://github.com/gluon-lang/lsp-types
* **Ratatui**: https://github.com/ratatui/ratatui
* **Ratatui-code-editor**: https://github.com/vipmax/ratatui-code-editor
* **Serde-json**: https://github.com/serde-rs/json
* **Best-readme-template**: https://github.com/othneildrew/Best-README-Template
For all dependencies, please refer to [Cargo.lock](./Cargo.lock).
(back to top)
[contributors-shield]: https://img.shields.io/github/contributors/CharOfString/ptre.svg?style=flat
[contributors-url]: https://github.com/CharOfString/ptre/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/CharOfString/ptre.svg?style=flat
[forks-url]: https://github.com/CharOfString/ptre/network/members
[stars-shield]: https://img.shields.io/github/stars/CharOfString/ptre.svg?style=flat
[stars-url]: https://github.com/CharOfString/ptre/stargazers
[issues-shield]: https://img.shields.io/github/issues/CharOfString/ptre.svg?style=flat
[issues-url]: https://github.com/CharOfString/ptre/issues
[license-shield]: https://img.shields.io/github/license/CharOfString/ptre.svg?style=flat
[license-url]: https://github.com/CharOfString/ptre/blob/main/LICENSE
[product-screenshot]: images/screenshot.png
[Next.js]: https://img.shields.io/badge/next.js-000000?style=flat&logo=nextdotjs&logoColor=white
[Next-url]: https://nextjs.org/
[React.js]: https://img.shields.io/badge/React-20232A?style=flat&logo=react&logoColor=61DAFB
[React-url]: https://reactjs.org/
[Vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=flat&logo=vuedotjs&logoColor=4FC08D
[Vue-url]: https://vuejs.org/
[Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=flat&logo=angular&logoColor=white
[Angular-url]: https://angular.io/
[Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=flat&logo=svelte&logoColor=FF3E00
[Svelte-url]: https://svelte.dev/
[Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=flat&logo=laravel&logoColor=white
[Laravel-url]: https://laravel.com
[Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=flat&logo=bootstrap&logoColor=white
[Bootstrap-url]: https://getbootstrap.com
[JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=flat&logo=jquery&logoColor=white
[JQuery-url]: https://jquery.com