[英]Which Ruby does Vim use for :ruby commands?
Vim 支持 Ruby 命令。 (有關更多信息,請參閱:help if-ruby
文檔。)如果啟用了+ruby
支持,則可以使用:ruby
運行這些命令(請參閱vim --version
)。 例如,我可以看到我目前正在使用 v3.0.0,方法是:
:ruby print RUBY_VERSION
但是,Ruby安裝的是哪個? 例如,是系統 Ruby,由 RVM 管理的東西,還是內置在 Vim 中的單獨 Ruby 安裝?
此外,是否可以安裝 Ruby gem 以與:ruby
命令一起使用?
關於我的安裝的詳細信息:
$ 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)
這一切都取決於 Vim 構建配置。 :ver
output 可能表示以下內容:
-lang
的“lang”接口根本沒有編譯;+lang
所有內容都靜態鏈接到 Vim 可執行文件中;+lang/dyn
接口鏈接到動態庫 (dll/so) 如果它是動態鏈接的,那么將根據選項值(例如:h 'rubydll'
)搜索和加載庫。 在這種情況下,它可能指向您想要的任何安裝。 (盡管在編譯時指定的-DRUBY_VERSION=XX
可能仍然相關,並且 Vim 可能無法加載不匹配的庫)。
您沒有提及您的平台,或者您如何安裝 Vim。 如果我們談論默認行為,這些事情很重要。
Unless you statically compiled Ruby into Vim, it will be whichever Ruby is first in your PATH, or first in fish_user_paths if you use the fish shell. 在 macOS 和典型桌面 Linux 發行版(如 Ubuntu)上,這就是您應該期望的開箱即用。
其他檢查方法包括:
使用which -a ruby
將向您顯示PATH中的所有紅寶石。
如果 Ruby 3.0.0 不是列出的第一個項目,或者不是安裝到 /usr/bin/ruby 的版本,那么您可以很確定其他東西正在管理它。
檢查env | fgrep -i ruby
env | fgrep -i ruby
用於來自各種 Ruby 管理器的設置。
版本管理器通常通過修改您的環境來工作。 例如,chruby 將CHRUBY_VERSION添加到環境中,並將RUBY_ROOT設置為選定的 Ruby 的路徑。 其他常見的版本管理器也會以各種方式更新環境,所以這里是個不錯的看點。
檢查您的 shell 初始化文件(例如~/.bashrc
)。
如果您沒有在 shell 的初始化腳本中設置 RVM、rbenv 或 chruby,那么您可能沒有使用其中之一。 當然,這並不排除使用符號鏈接、GNU stow 或其他重定向,但如果您沒有設置它們並且不在其他人可能擁有的多用戶系統上工作,那么您可以非常自信調用ruby
正在調用 Ruby ,這是您PATH中的第一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.