Fish RVM Use error

戏子无情 提交于 2020-01-01 14:35:32

问题


So I installed fish and oh-my-fish, and when i want to use rvm I get this error:

➜ avalancha git:(services) ✗ rvm use 2.1.0

Using /home/matias/.rvm/gems/ruby-2.1.0
fish: The '$' character begins a variable name. The character '{', which directly followed a '$', is not allowed as a part of a variable name, and variable names may not be zero characters long. To learn more about variable expansion in fish, type 'help expand-variable'.
/home/matias/.config/fish/functions/rvm.fish (line 2): begin; set -xg rvm_bin_path "/home/matias/.rvm/bin" ; set -xg GEM_HOME "/home/matias/.rvm/gems/ruby-2.1.0" ; set -xg XDG_SESSION_PATH "/org/freedesktop/DisplayManager/Session0" ; set -xg rvm_path "/home/matias/.rvm" ; set -xg XDG_SEAT_PATH "/org/freedesktop/DisplayManager/Seat0" ; set -xg DEFAULTS_PATH "/usr/share/gconf/ubuntu.default.path" ; set -xg rvm_prefix "/home/matias" ; set -xg PATH "/home/matias/.rvm/gems/ruby-2.1.0/bin" "/home/matias/.rvm/gems/ruby-2.1.0@global/bin" "/home/matias/.rvm/rubies/ruby-2.1.0/bin" "/home/matias/.rvm/bin" "/usr/local/sbin" "/usr/local/bin" "/usr/sbin" "/usr/bin" "/sbin" "/bin" "/usr/games" "/usr/local/games" ; set -xg MANDATORY_PATH "/usr/share/gconf/ubuntu.mandatory.path" ; set -xg rvm_version "1.25.29 stable" ; set -xg rvm_ruby_string "ruby-2.1.0" ; set -xg GEM_PATH "/home/matias/.rvm/gems/ruby-2.1.0" "/home/matias/.rvm/gems/ruby-2.1.0@global" ; set -xg rvm_delete_flag "0" ; set -xg rvm_debug " {  (( ${rvm_debug_flag:-0} )) || return 0;" ; ;end eval2_inner <&3 3<&-
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^
in . (source) call of file '-',
    called on line 22 of file '/home/matias/.config/fish/functions/rvm.fish',

in function 'rvm',
    called on standard input,
    with parameter list 'use 2.1.0'

.: Error while reading file '-'

Does anyone know what could it be?


回答1:


I had the same issue. It's an incompatibility caused by the multiline value of the rvm_debug variable. I patched the function to ignore this variable completely by making a small change.

Open ~/.config/fish/functions/rvm.fish and change line 7 from this:

and eval (grep '^rvm\|^[^=]*PATH\|^GEM_HOME' $env_file | grep -v '_clr=' | sed '/^[^=]*PATH/s/:/" "/g; s/^/set -xg /; s/=/ "/; s/$/" ;/; s/(//; s/)//')

into this:

and eval (grep '^rvm\|^[^=]*PATH\|^GEM_HOME' $env_file | grep -v '_clr=' | grep -v 'rvm_debug=' | sed '/^[^=]*PATH/s/:/" "/g; s/^/set -xg /; s/=/ "/; s/$/" ;/; s/(//; s/)//')

I don't know what rvm_debug is being used for, but my system seems to work without it.



来源:https://stackoverflow.com/questions/25694189/fish-rvm-use-error

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!