首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim使用哪个Ruby :ruby命令?

Vim使用哪个Ruby :ruby命令?
EN

Stack Overflow用户
提问于 2021-04-29 16:54:39
回答 2查看 233关注 0票数 0

Vim支持Ruby命令。(有关更多信息,请参见the :help if-ruby documentation。)如果启用了:ruby支持,则可以使用+ruby运行这些命令(参见vim --version)。例如,我可以看到,我目前使用的是v3.0.0,方法是:

代码语言:javascript
复制
:ruby print RUBY_VERSION

但是,这是哪个Ruby安装呢?例如,是由RVM管理的system,还是内置到Vim中的​单独安装?

另外,是否可以安装Ruby与:ruby命令一起使用?

有关我安装的详细信息:

代码语言:javascript
复制
$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.7
BuildVersion:   19H524
$ vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Mar 21 2021 06:59:54)
macOS version - x86_64
Included patches: 1-2625
Compiled by Homebrew
[...]
$ vim --version | grep ruby
+cursorshape       +lua               +ruby              +wildmenu
Linking: clang -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib -L/usr/local/opt/openssl@1.1/lib -L/usr/local/opt/readline/lib -L/usr/local/lib -o vim -lncurses -liconv -lintl -framework AppKit -L/usr/local/opt/lua/lib -llua5.4 -mmacosx-version-min=10.15 -fstack-protector-strong -L/usr/local/lib -L/usr/local/Cellar/perl/5.32.1_1/lib/perl5/5.32.1/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc -L/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/config-3.9-darwin -lpython3.9 -framework CoreFoundation -lruby.3.0 -L/usr/local/Cellar/ruby/3.0.0_1/lib
$ which -a ruby
/Users/username/.rbenv/shims/ruby
/usr/bin/ruby
$ rbenv versions
  system
* 2.6.5 (set by /Users/username/.rbenv/version)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-29 17:41:03

所有这一切都取决于Vim构建配置。:ver输出可能指示以下内容:

"lang“的

  • -lang接口不是在all;
  • +lang编译的,所有东西都静态地链接到Vim,executable;
  • +lang/dyn接口与动态库(dll/so)

链接

如果它是动态链接的,那么将根据需要通过选项值(例如:h 'rubydll')搜索和加载库。在这种情况下,它可能指向您想要的任何安装。(尽管在编译时指定的-DRUBY_VERSION=XX可能仍然相关,而且Vim可能无法加载不匹配的库)。

票数 3
EN

Stack Overflow用户

发布于 2021-04-29 18:26:08

你没有提到你的平台,也没有提到你是如何安装Vim的。如果我们说的是默认行为,这些都很重要。

除非您静态地将Ruby编译成Vim,否则无论哪种Ruby在您的路径中第一位,或者在fish_user_paths中第一位(如果您使用fish shell )。在macOS和典型的桌面Linux发行版(如Ubuntu )上,这就是你应该期待的结果。

其他检查方法包括:

  1. 使用which -a ruby将向您展示您路径中的所有红宝石。

如果Ruby3.0.0不是列出的第一个项目,或者不是安装到/usr/bin/ruby上的版本,那么您可以很好地确定是其他什么东西在管理它。

  1. 检查env | fgrep -i ruby中的各种管理器的设置。

版本管理器通常通过修改环境来工作。例如,chruby将CHRUBY_VERSION添加到环境中,并将RUBY_ROOT添加到设置所选Ruby的路径。其他常见的版本管理器也将以各种方式更新环境,因此这是一个查看的好地方。

  1. 检查您的shell初始化文件(例如~/.bashrc)。

如果您没有在shell的初始化脚本中设置RVM、rbenv或chruby,那么您可能没有使用其中的一个。当然,这并不排除使用符号链接、GNU或其他重定向,但是如果您没有设置它们,并且没有在其他人可能拥有的多用户系统上工作,那么您可以非常确信调用ruby是调用您路径中的第一位的Ruby。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67321842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档