Rbenv: 鱼壳垫片

创建于 2012-02-16  ·  20评论  ·  资料来源: rbenv/rbenv

rbenv 提供的垫片也与鱼壳兼容,这将非常有帮助。 这不会是一个巨大的变化,但这意味着 rbenv 可以在非 bash/zsh shell 中使用。 fish 的语法实际上比 bash 更理智。

最有用的评论

似乎垫片很好,这是需要调整的安装指南。 将此添加到 config.fish 以获得 rbenv 支持:

set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1

所有20条评论

我想对此表示支持。

似乎垫片很好,这是需要调整的安装指南。 将此添加到 config.fish 以获得 rbenv 支持:

set PATH $HOME/.rbenv/bin $PATH
set PATH $HOME/.rbenv/shims $PATH
rbenv rehash >/dev/null ^&1

谢谢,埃德! :)

奇迹般有效。
你是一位绅士,一位学者。

正如@emcmanus指出的那样,rbenv 的垫片适用于 Fish 或任何其他 shell。 你只需要 Bash _installed_ 来使用它们——它不需要是你的 shell。 垫片是 Bash 脚本,您可以从 Fish 运行它们,就像从 Fish 运行 Ruby 或 Python 脚本一样。

将 rbenv 添加到您的PATH是它工作所必需的。 我会接受为rbenv init添加 Fish 兼容性的补丁,因此您无需手动构建路径。

看起来这还不够,因为rbenv shell不起作用。

rbenv shell只是设置RBENV_VERSION环境变量的快捷方式。 没有它,您不会失去任何功能。

我用它来让 rbenv shell 在鱼中工作: https ://coderwall.com/p/6hja1w

从fish shell 调用rbenv 时,不会传递在shell 中设置的环境变量。 更重要的是, ~/.bashrc~/.bash_profile都不会被读取。 如果要自定义 rbenv,请参阅 #375。

@espen提到了我的 Coderwall protip,但有更新版本允许部分 Ruby 名称(默认将选择最新的名称,仍未完成)。 可以在那里找到 Gist https://gist.github.com/5631243 (如果可以的话,给它一些爱)。

我知道这个问题现在已经关闭,但我仍然想知道我们是否可以以正确的方式实现这个功能。 我是否认为我们只需要确保在调用rbenv init -它应该回显鱼壳友好的语法,以便鱼能够对其进行评估? 在这种情况下,我宁愿将它作为原始 rbenv 存储库的一部分来实现,而不是使用可能与 rbenv 的原始内部不同步的外部 _workarounds_...

我也明白@sstephenson可能不想积极支持

大概我们需要更改的文件是https://github.com/sstephenson/rbenv/blob/master/libexec/rbenv-init
我对吗? 我不是一个 shell 脚本魔术师,但如果有人愿意以正确的方式做这件事,我宁愿尝试与某人合作正确地做这件事。

干杯

欢迎任何fish用户改进rbenv init的输出,使其支持fish shell并向我们发送拉取请求。

问题是 fish 不是 POSIX shell,并且很难以正确的方式实现rbenv init以提供对 fish 的支持(我认为会有一些人会想要支持cshtcsh )。 我认为应该注意的是,如果有人使用非 POSIX shell,那么他可以使用社区功能之一(并提供链接),或者他必须自己编写。

@hauleth我认为你_可能_弄错了。 根据@emcmanus@sstephenson的评论,我们需要做的就是让rbenv init产生与鱼兼容的语法,这样它就可以被鱼eval d。 只需要安装一个 POSIX 兼容的 shell(比如那种方式的 bash),而不一定是你选择的 shell。 请参阅上面@sstephenson的评论。

我会向 Fish 社区邮件列表发送一封电子邮件并发起对话,我会尝试从那里的人那里获得一些帮助。

最初的rbenv shell命令调用rbenv sh-shell ,它返回一个也是eval d 的字符串。 我们可以解决它并解析该调用的返回代码,而不是评估返回的字符串。 这样可以吗? 如果是的话,我可以创造一些可以做到这一点的东西。

@bitboxer Fish shell 应该得到 rbenv master 的完全支持。 如果您发现情况并非如此,请打开一个新问题。 谢谢!

谢谢“emcmanus”
我使用鱼并正在寻找答案。

正如“emcmanus”所提到的,如果您使用的是鱼壳,那么以下对我有用。

测试

  • 德班
  • Ubuntu
  • 库本图
  • 软呢帽
  • CentOS
  • 红帽企业
 vi ~/.config/fish/config.fish
 设置路径 $HOME/.rbenv/bin $PATH
 设置路径 $HOME/.rbenv/shims $PATH
 rbenv 重新哈希 >/dev/null ^&1

然后退出鱼并重新加载鱼或只是注销并重新登录。 如果找不到该文件,则表示您刚刚安装了 fish 并且没有运行过一次。 只需运行 fish 就会创建该文件夹(文件可能不会)。

这是鱼鱼不是鱼。
http://fishshell.com/

感谢@emcmanus和@sstephenson。

显然 ^ 语法将来会被弃用,并且在某些版本中会被破坏(请在此处查看此问题)。

因此,最好使用以下语法: rbenv rehash >/dev/null >2&1

因此,最好使用以下语法:rbenv rehash >/dev/null >2&1。

有一个错字2>应该交换:

rbenv rehash >/dev/null 2>&1
此页面是否有帮助?
0 / 5 - 0 等级

相关问题

vennsoh picture vennsoh  ·  4评论

mhinz picture mhinz  ·  3评论

kaikuchn picture kaikuchn  ·  5评论

aaalveee picture aaalveee  ·  4评论

bradrydzewski picture bradrydzewski  ·  4评论