Funky使zsh shell功能更强大,更易于管理。

pyfunk的Python项目详细描述


时髦的Tweet

^ {STR 1 } $Funy通过使shell函数更易于定义、更灵活和更交互式来将shell函数取到下一级。

Build StatuscodecovLicense: MIT

demo

用法

funk使用funkygfunky命令进行操作。这些命令具有相同的用户界面,该界面在Command-line Interface部分中指定。这两个命令之间的区别在Local vs Global部分中处理。

Command-line Interface</cli>

^{pr 1}$

Local vs Global

local函数使用位于同一目录中的隐藏数据库文件存储 恐惧是在哪里产生的。可以使用下面描述的操作命令选项来操作它们 上面。一旦创建了本地funk,就可以像任何其他命令或普通funk一样使用- 只要激活了提供的shell扩展(参见Additional Install Steps),并且 在最初定义本地funk的目录中。

global另一方面,funks存储在主目录(/home/<user>)中,并且可以 从任何目录使用。本地函数可用于重写全局函数定义。

通过使用 ^分别是{}和gfunky命令。

funk定义快捷方式

通常在定义funk时,提供的原始定义(临时文件的最终内容)直接插入到生成的函数定义中。但是,funky确实尝试在方便的时候对原来的funk定义做一些修改。这些funky定义快捷方式可以使定义funks更快:

特殊的{}恐惧

表单@./relative/path/to/directory的funk定义将自动更改为

cd /absolute/path/to/directory/"$@"||return1

模拟外壳变量

表单"Some string here..."的funk定义将自动更改为

echo"Some string here...""$@"

这允许您使用funk通过command substitution模拟shell变量。

特殊参数“$@”

这个项目最初使用别名。迁移到shell函数的决定是基于 事实上,shell函数远比别名更有能力。而且,几乎没有 在shell函数上使用别名的好处。

尽管如此,实际的别名确实对shell函数有一个吸引力。当您使用别名时, 传递给它的参数将自动传递给命令定义(在运行时, 别名只是用它们的定义来代替)。为了模仿这种行为 通常需要时,使用单行定义的funk 尚未包含参数变量(例如,不包含$0$1,…, $9$*$@)将自动将"$@"特殊参数附加到其 定义。这允许您从 别名。

有关bash特殊参数的更多信息,请参见官方的Bash docs

安装

使用pip安装

要安装Funky,请在终端中运行此命令:

$ pip install pyfunky

这是安装Funky的首选方法,因为它总是安装最新的稳定版本。

如果您没有安装pip,这个Python installation guide可以指导 你完成了整个过程。

从源头建造

您可以克隆公共存储库:

$ git clone git://github.com/bbugyi200/funky

或者下载tarball

$ curl  -OL https://github.com/bbugyi200/funky/tarball/master

一旦有了源代码的副本,就可以通过运行以下命令安装Funky:

make install

Additional Installation Steps

为了获得最佳体验,需要使用 提供了shell脚本。

名为funky.sh的shell脚本应该复制到

$XDG_DATA_HOME/funky/funky.sh

在安装过程中(也可以找到here)。你可以整合funk通过将funky.sh脚本导入shell的配置文件,y进入shell。假设脚本被复制到~/.local/share/funky/funky.sh(它的默认位置),例如,您将在.zshrcbashrc中添加以下行:

[ -f ~/.local/share/funky/funky.sh ]&&source ~/.local/share/funky/funky.sh

如果使用根权限安装funky,则funky.sh脚本将被安装到/usr/share/funky/funky.sh

类似项目

  • Desk-shell的轻量级工作区管理器

贡献

欢迎拉取请求。有关详细信息,请参见CONTRIBUTING.md

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用Selenium Java查找筛选器窗格“铅笔图标”的元素时出现问题   分布式缓存l2上使用infinispan和hibernate的java连接锁   使用Java的DOM XML API解析XML中的符号和   java是解析和操作字符串的有效方法   java发布NewRelicMeterRegistry时如何过滤仪表   多维数组在java中读取文件后将数据值分组   java如何将httpClient配置为jsoup   java BreakIterator在Android中是如何工作的?   找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装   Jlabel调整java大小   调试如何在VScode中的java类依赖项中设置断点   java正在获取文件夹名,而不是。mp3文件{Android}   java如何将从DiffieHellman类生成的AES密钥添加到使用该密钥的类