#editor #competitive #modal #terminal-text #text #terminal

nightly bin+lib accepted

一个待接受的文本编辑器

27 个版本

0.3.2 2020年4月14日
0.3.1 2020年2月24日
0.2.2 2019年6月28日
0.2.0 2019年2月25日
0.1.16 2018年11月15日

#161文本编辑器

Download history 66/week @ 2024-02-22 16/week @ 2024-02-29 4/week @ 2024-03-28 1/week @ 2024-04-04

每月75次下载

MITLGPL-3.0-or-later

280KB
6.5K SLoC

Accepted

crates.io Build Status Join the chat at https://gitter.im/Accepted-text-editor/community dependency status tokei

一个待接受的终端文本编辑器。

Accepted screenshot

描述

一个为竞技程序员编写的基于 Rust 的模式文本编辑器。

目前 Accepted 支持 Rust 和 C++。

功能

  • 为 Rust 和 C++ 预配置
  • 使用 Rustfmt / ClangFormat / 或配置指定自动格式化
  • 使用 TabNine / RLS / Clangd / 或其他 LSP 服务器完成
  • 自动编译并显示编译消息(支持 rustc / gcc / clang)
  • 易于测试单个代码
  • VScode 风格代码片段支持
  • 鼠标支持
  • rmate 协议

安装

您需要 nightly Rust。

$ cargo install accepted

如果您想安装 HEAD 版本,您可以从 git 安装到

$ cargo install -f --git=https://github.com/hatoo/Accepted

Rust 用户

安装 rust 组件。

$ rustup component add rls-preview
$ rustup component add rust-src
$ rustup component add rustfmt-preview

C++ 用户

安装 clang、clang-format 和 clangd。

用法

$ acc [file]

待办事项:更精确。

基本

acc 的许多命令与 Vim 相同。

i, I, a, A, o, O 插入模式,Esc 返回。

hjkl, w, e, b 移动光标。

y, d, c, v, V 与 vim 类似工作

空格前缀

一些命令可以以空格为前缀运行。

空格 -> q 退出。

空格 -> s 保存。

空格 -> a 另存为。

空格 -> y 复制全部到剪贴板

空格 -> Rustfmt。

空格 -> t 使用剪贴板输入编译和运行。

空格 -> T 使用剪贴板输入编译(优化)并运行。

空格 -> q 退出。

空格 -> r 启动 rmate 服务器

配置

您可以通过放置在 [config_dir]/acc/config.toml 的 toml 文件进行配置

您可以通过 $ acc --config 轻松打开配置文件。

config_dir这里 定义。

以下为默认配置。您可以使用自己的配置覆盖它。

# Configure to defaults
[file_default]
# Put spaces instead of '\t' when tab key is pressed
hard_tab = false
indent_width = 4
# Set true if you are running in legacy terminal which has no true color
ansi_color = false
# Command for TabNine
tabnine = ["TabNine"]
# Set theme
# You can set either theme name which is bundled by `syntect` and file path for .tmTheme
theme = "Solarized (dark)"

# Configure for *.rs files
[file.rs]
# Setting compiler and its type.
compiler = { command=["rustc", "$FILE_PATH", "--error-format=json"], type="rustc", optimize_option=["-O"] }
# Setting LSP server command
lsp = ["rls"]
# Setting formatter command
formatter = ["rustfmt"]
# Command for testing
test_command = ["./$FILE_STEM"]

[file.cpp]
# Configure for *.cpp files
# Respect clang-format
indent_width = 2
compiler = { command=["clang", "$FILE_PATH", "-o", "$FILE_STEM"], type="gcc", optimize_option=["-O2"] }
lsp = ["clangd"]
formatter = ["clang-format"]
test_command = ["./$FILE_STEM"]

[file.c]
# Same as cpp
indent_width = 2
compiler = { command=["clang", "$FILE_PATH", "-o", "$FILE_STEM"], type="gcc", optimize_option=["-O2"] }
lsp = ["clangd"]
formatter = ["clang-format"]
test_command = ["./$FILE_STEM"]

[file.rb]
indent_width = 2

[file.go]
formatter = ["gofmt"]
hard_tab = true

贡献

欢迎任何形式的贡献,包括功能请求!!

依赖项

~14-25MB
~355K SLoC