#shell #prompt #转写 #bash #zsh #命令输出 #命令行应用程序

bin+lib pyc-shell

Py-c是一个简单的命令行应用程序,允许您通过命令和输出转写执行西里尔字母和其他字母的shell命令。

3 个版本 (破坏性更改)

0.3.0 2020年11月14日
0.2.0 2020年6月27日
0.1.0 2020年5月26日

#转写 中排名 20

GPL-3.0 许可证

420KB
8K SLoC

Py-c

License: GPL v3 Stars Issues Crates.io Build codecov

~ 使用您喜欢的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别名和函数
  • 支持文本编辑器

支持的字母

计划支持的字母

  • in 德文那加利文 - 计划于2021年(0.4.0)实现
  • mk 马其顿西里尔文 - 计划于2021年(0.4.0)实现
  • me 黑山西里尔文 - 计划于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