3 个版本 (破坏性更改)
0.3.0 | 2020年11月14日 |
---|---|
0.2.0 | 2020年6月27日 |
0.1.0 | 2020年5月26日 |
在 #转写 中排名 20
420KB
8K SLoC
Py-c
~ 使用您喜欢的shell和您的字母 ~
由Christian Visintin开发
当前版本: 0.3.0 (14/11/2020)
关于 Рус
Рус(发音为“Rus”)是一个简单的命令行应用程序,用Rust编写,允许您与您喜欢的shell接口,通过命令和输出转写,让您能够在西里尔字母和其他字母中执行命令。
为什么选择 Рус
基本上,我开始学习俄语,为了在实际使用西里尔字母时尽可能多地使用它,甚至想在控制台上输入时也使用它;但后来我发现没有哪个控制台允许使用不同字母的人使用它,所以我提出了这个项目。
Py-c的目标
这个项目的目标是让所有使用非拉丁字母的人能够使用计算机shell,而无需切换键盘布局。
它是如何工作的
基本上,Рус是一个shell接口,这意味着它读取用户输入,根据配置的字母转换它,然后将翻译后的输入发送到shell进行处理;然后从shell的stdout读取输出,如果启用,则将其翻译回原始字母并打印到用户的输出。
功能
- 不同的字母支持
- 实现其他字母的转换器非常简单。
- 输入和输出的转换。
- 对拉丁字符串的转义。
- 交互式、单次和文件模式。
- 提示符可以完全自定义
- shell别名支持
- 支持bash、sh、zsh和
fish 允许您使用shell别名和函数支持文本编辑器
支持的字母
- 白俄罗斯西里尔文 - 根据GOST 7.79-2000,有一些差异(见这里)
- 保加利亚西里尔文 - 根据GOST 7.79-2000,有一些差异(见这里)
- 塞尔维亚西里尔文 - 根据GOST 7.79-2000,有一些差异(见这里)
- 俄罗斯西里尔文 - 根据GOST 7.79-2000,有一些差异(见这里)
- 乌克兰西里尔文 - 根据GOST 7.79-2000,有一些差异(见这里)
计划支持的字母
- 德文那加利文 - 计划于2021年(0.4.0)实现
- 马其顿西里尔文 - 计划于2021年(0.4.0)实现
- 黑山西里尔文 - 计划于2021年(0.4.0)实现
目前没有计划实现其他字母表。
找不到您需要的?为项目实现它做出贡献吧 😀 ! 阅读更多
安装
如果您正在考虑安装Pyc,我想感谢您 💛!希望这个项目对您有所帮助!
如果您想为这个项目做出贡献,别忘了查看我们的贡献指南。 阅读更多
Cargo
#Install pyc through cargo
cargo install pyc-shell
#Install configuration
mkdir -p $HOME/.config/pyc/
#Copy configuration file from repository
wget -O $HOME/.config/pyc/pyc.yml https://raw.githubusercontent.com/ChristianVisintin/Pyc/master/pyc.yml
Deb / Rpm
即将推出
使用方法
Pyc可以用以下选项启动
-c, --command <command>
运行提供的命令并返回-C, --config <config>
指定Pyc配置文件位置。-l, --lang <ru|рус>
指定Pyc使用的语言-s, --shell </bin/bash>
指定shell的二进制路径-v, --version
打印版本信息-h, --help
打印帮助页面
配置
Pyc支持用户配置,这可以添加一些功能和自定义。配置必须存储在$HOME/.config/pyc/pyc.yml
。默认配置位于pyc.yml存储库中。
让我们看看配置是如何编写的
language: ru
shell:
exec: "bash"
args:
- "-l"
alias:
- чд: cd
- пвд: pwd
- уич: which
output:
translate: true
prompt:
prompt_line: "${USER} on ${HOSTNAME} in ${WRKDIR} ${GIT_BRANCH} ${GIT_COMMIT} ${CMD_TIME}"
history_size: 256
translate: false
break:
enabled: true
with: "❯"
duration:
min_elapsed_time: 2000
rc:
ok: "✔"
error: "✖"
git:
branch: "on "
commit_ref_len: 8
commit_prepend: "("
commit_append: ")"
- shell: Shell配置
- exec: shell二进制(可以是绝对路径或PATH中的路径)
- args: shell CLI参数
- alias: 别名列表。当命令的第一个单词是配置的别名之一时,它将被自动替换为相关的拉丁表达式。
- language: Pyc默认语言(可以通过CLI选项覆盖)
- 白俄罗斯语:by | бел
- 保加利亚语:bg | бг | блг
- 俄语:ru | рус
- 塞尔维亚语:rs | срб
- 乌克兰语:ua | укр
- output: 输出配置
- translate: 告诉pyc输出是否需要转换为西里尔文
- prompt: 提示配置(见提示配置)
- prompt_line: 描述提示行语法的字符串
- history_size: Pyc历史大小
- translate: 提示行是否应该翻译
- break: 提示后换行
- enabled: 提示是否应该换行?
- duration: 命令持续时间配置
- enabled: 模块启用
- with: 使用提供的字符串中断
- rc: 返回代码模块
- ok: 成功命令时写入的字符串
- error: 错误时写入的字符串
- git: git模块
- branch: 写分支名之前写入的字符串
- commit_ref_len: 提交引用的长度
- commit_prepend: 提交引用前要添加的字符串
- commit_append: 提交引用后要添加的字符串
提示行配置
提示配置用于在交互模式下设置提示行。提示配置提供参数以自定义与shell交互时打印的行。除了之前描述的参数外,这里还展示了提示行密钥。
每个提示行密钥必须具有以下语法 ${VAR_NAME}
通用键
密钥 | 描述 |
---|---|
USER | 用户名 |
HOSTNAME | 主机名 |
WRKDIR | 当前目录 |
LANG | Pyc配置的语言,以相关国家的旗帜颜色显示 |
CMD_TIME | 如果 >= min_elapsed_time,则显示最后一条命令的执行时间 |
RC | 显示与成功退出代码或错误相关的字符串 |
颜色键
密钥 | 描述 |
---|---|
KYEL | 黄色 |
KRED | 红色 |
KBLU | 蓝色 |
KMAG | 洋红色 |
KGRN | 绿色 |
KWHT | 白色 |
KBLK | 黑色 |
KGRY | 灰色 |
KBOLD | 粗体文本 |
KBLINK | 闪烁文本 |
KSELECT | 选中文本 |
KRST | 重置 |
Git键
密钥 | 描述 |
---|---|
GIT_BRANCH | 当前的git分支 |
GIT_COMMIT | 当前的git提交引用 |
文档
开发者文档可以在Rust Docs上找到,地址为https://docs.rs/pyc-shell
有关翻译模块的文档可以在这里找到
转义文本
可以转义文本(仅在提示行可见时,程序运行时不可用),防止其被转写为拉丁文。要做到这一点,只需使用引号
#Touch foobar.txt
тоуч фообар.ткст
转义
#Touch фообар.мксм
тоуч "фообар.ткст"
已知问题
输入时出现Unicode替换字符(�)
如果您在输入西里尔字符时看到此字符 �
,以下步骤可能可以解决问题
重新配置区域设置
sudo dpkg-reconfigure locales
从列表中选择您需要的所有区域设置,但最重要的是选择 ru_RU.UTF-8。
重新生成区域设置
sudo locale-gen
如果这没有解决您的问题,那么很可能是您的终端的问题。到目前为止,我发现一些终端在执行应用程序时根本不允许您输入非ASCII字符。这些是我使用过或有人报告的 不 工作的终端。
- Windows Terminal(可能是旧版本,我注意到大约在2020年4月进行了修复)。
单次模式下的Cd命令不起作用
是的。不幸的是,似乎没有方法使其在单次运行模式下工作。如果您知道使其工作的方法,请为此项目做出贡献以实现它。
Fish不起作用
嗯,我不知道为什么,我需要一些时间来调查原因,也许它没有使用stdout来写入?
shell别名不起作用
我将很快修复这个问题
文本编辑器不起作用
在0.4.0版本中将提供集成文本编辑器
即将推出的功能和版本
开发状态
Pyc-shell是一个活跃的项目,由于我的业余时间和社区的兴趣较小,目前的开发努力最小。此外,我还在进行其他更大的项目。
计划发布的版本
Py-c 0.4.0
计划于2021年完成
- 翻译者
- 德文加里语
- 马其顿语
- 黑山语
- 鱼支持
- 支持文本编辑器
贡献
欢迎贡献!😉
如果您认为您可以为俄语做出贡献,请遵循 俄语的贡献指南
变更日志
查看整个更改日志 在此
许可证
根据GNU GPLv3(“许可证”);除非遵守许可证,否则您不得使用此文件。您可以在以下位置获得许可证副本:
http://www.gnu.org/licenses/gpl-3.0.txt
除非适用法律要求或以书面形式同意,否则在许可证下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定许可和限制,请参阅许可证。
您可以在以下位置阅读整个许可证 在此
依赖关系
~14–25MB
~450K SLoC