VSCode が間違った Ruby バージョンを使用する
概要
Ubuntu 上の VSCode で問題が発生しています。 Ruby 拡張機能と Ruby-rubocop 拡張機能がインストールされていますが、保存時に Rubocop 拡張機能を実行すると 2 つのエラーが発生します
私のプロジェクトは、rbenv 経由でインストールされた Ruby バージョン 2.7.6 を使用しています。 2.5.1 は私がインストールしていた Ruby の古いバージョンですが、その後削除しました。なぜ VSCode がバージョン 2.5.1 を使用しようとするのかわかりません。 bash シェル経由でrubocopを実行すると、期待どおりに実行されます。 rbenv local と rbenv global はすべて 2.7.6 に設定されており、私のプロジェクトは 2.7.6 が設定された .ruby バージョン ファイルとして設定されています。
bash シェルで echo 3.3.1 を実行すると、何も返されませんが、VSCode 内のターミナル シェルでこれを実行すると、2.5.1 が返されます。
VSCode で正しい rbenv バージョンを使用するにはどうすればよいですか?
解決:
問題は、何らかの理由で .bash_profile ファイルに RBENV バージョンを定義したことにあることがわかりました。
解決策
私もこの問題を抱えていました。さらなる症状: rbenv シェルが rbenv init を実行するように要求しました。これは VS Code の内部と外部の両方で発生しました。以前にもそうしたはずだったのですが、シェルの init スクリプトに init 行がなくなっていました。
解決策は、rbenv init を実行し、指示に従うことでした (つまり、提案された行を .bashrc またはシェルの適切なファイルに追加します)。
これにより、3.3.1 が正しいバージョンに設定され、問題が解決されます。この問題が VS Code でのみ発生し、通常のターミナルでは発生しない理由はわかりません。