gpt4 book ai didi

ruby - 通过 MacVim (!ruby) 执行时如何运行正确版本的 Ruby

转载 作者:数据小太阳 更新时间:2023-10-29 06:54:23 29 4
gpt4 key购买 nike

最近我看到 Gary Bernhardt 展示了他用来在 vim 中执行 Ruby 代码的 vim 快捷方式。捷径是

:map ,t :w\|:!ruby %<cr>.  

似乎这个方法总是执行系统 ​​Ruby,在我的例子中是 1.8.7。我对升级它犹豫不决,因为我听说更改 System Ruby 解释器会导致一些不稳定的问题。有没有办法让这个命令使用 RVM 目录的版本设置?

最佳答案

指定 ruby 的最直接方法是在 :! 命令中给出其完整路径名(而不是依赖于任何 ruby首先在 PATH 目录中找到):

  • /path/to/your/preferred/ruby 使用 Ruby:

    :!/path/to/your/preferred/ruby %
  • 使用 RVM 安装的 ruby-1.9.2-head:

    :!~/.rvm/bin/ruby-1.9.2-head %
  • 将 RVM 安装的 ruby-1.9.2-head 与您的 rails3-dev gemset 一起使用:

    :!~/.rvm/bin/ruby-1.9.2-head@rails3-dev %

所以你的 map 命令可能会像这样结束:

:map ,t :w\|:!~/.rvm/bin/ruby-1.9.2-head@rails3-dev %<cr>

通常也可以调整 PATH 环境变量的有效值,以便第一个找到您想要的 ruby,但它可能并不总是像您希望的那样简单。具体来说,:! 命令由 shell Vim 选项配置的 shell 处理(:set shell? 查看其值)。该 shell 的配置文件可能会修改 Vim 为 shell 提供的 PATH 值(将 Vim 的 PATH (:echo $PATH) 与 :! 命令最终使用的 PATH 进行比较(:!echo $PATH) 查看您的 shell 的配置文件是否正在调整 PATH。

您可以尝试像这样修改 Vim 及其子项使用的 PATH:

:let $PATH = $HOME . '/.rvm/wrappers/ruby-1.9.2-head@rails3-dev:' . $PATH

您应该使用 :!echo $PATH:!which ruby​​ 检查有效的 PATH,以确定您的 shell 是否进一步修改了PATH(如果你有这个问题,可能是 :set shell=/bin/sh)。

注意:我从未见过 RVM 包装目录的这种特殊用途,RVM 的 future 版本可能会破坏它。通常的用法是创建一个包装器并直接从 ~/.rvm/bin 中调用它(类似于本文的第一部分),而不是将 ~/.rvm/wrapper/PATH 中的任何内容

关于ruby - 通过 MacVim (!ruby) 执行时如何运行正确版本的 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6935226/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com