1

Vim を使用する場合は、次の方法でシェルアウトできます。

:!<command_name>

これが私の問題です。

現在の Ruby を

ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]

これはからの出力です

ruby -v

Terminal.app または単に端末で。

MacVim をロードして入力したら

:!ruby -v

私は得る

ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]

Vim はどこからコンテキストを取得していますか?

で指定した設定が反映されていないよう.zshrcです。これらの設定はどれも、ロードされたり有効になったりしているようには見えません。コマンドラインからドットファイルを取得する関数も作成しました

:!source ~/.zshrc

そして無駄に!

ここで一体何が起こっているのか理解できません。Vim は Ruby 1.9.3p0 を使用していますが、RVM は別の Ruby に設定されているため、問題が発生しています。これはもちろん、Rails への呼び出しを壊します。

/usr/lib/ruby/1.9.1/rubygems.rb:314:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException)
        from /usr/bin/rails:19:in `<main>'

shell returned 1

誰かがこれをオーバーライドする方法を教えてもらえますか?

Rails の私のバージョンでさえ、Vim とターミナルが異なります。

# Terminal output
which rails

# prints - /Users/adubb/.rvm/gems/ruby-1.9.3-p194/bin/rails

# Vim/MacVim output
:!which rails

# prints - /usr/bin/rails
4

1 に答える 1

1

わかりました、すべて順調です。解決策への私の手順の概要を説明しましょう。まず最初に、@romainl と @mpapis の助けに感謝します。@romainl、私が最初にしたことはRVMプラグインを試すことでしたが、それは役に立ちませんでした. 次に、@mpapis が投稿した、MacVim の隠し設定について学んだリンクを調べました。まあ、彼らが設定について言及するとき、彼らはUIについて話していないので、私はすぐにこの設定を見つけることができませんでした(通常、 Command + 、ホットキーにマップされます)。彼らは話している

:h macvim

前述の投稿をスキャンした後、これを見つけました。

macvim ヘルプ セクションに到達したら、世界の「シェル」を検索しました。

/shell

3. Preferences セクションの下に 2 つの設定が見つかりました。

==============================================================================
3. Preferences                  macvim-prefs macvim-preferences

Some settings are global to the MacVim application and would not make sense as
Vim options.  These settings are stored in the user defaults database and can
be accessed via the "MacVim.Preferences..." menu item.

                            macvim-user-defaults
Not all entries in the user defaults database are exposed via the preference
panel, usually because they should not be changed by the user under normal
circumstances.  These options can still be changed with the "defaults" command
by opening Terminal and typing

    defaults write org.vim.MacVim KEY VALUE

Check the man page on "defaults" for more information on this command as well
as general information regarding Mac OS X user defaults.

Here is a list of relevant dictionary entries:

...more entries
MMLoginShellArgument    login shell parameter [string]
MMLoginShellCommand     which shell to use to launch Vim [string]
...more entries

MMLoginShellArgument と MMLoginShellCommand の設定が私の目を引きました。だから私は設定の1つを

defaults write org.vim.MacVim KEY VALUE

構文ですが、役に立ちません。

次に、MacVim ヘルプの設定セクションで見つけた 2 つの設定の 1 つである「mmloginshell コマンド macvim」をググりました。

最初のリンクは Stackoverflow の質問でした。

そこにたどり着いたら、この回答に出会いました。これは、MacVim Github wiki のこのページです。

そこで、私は Björn Winckler (コア MacVim 開発者) のトラブルシューティング ガイドの手順に従いました。特に「zsh ユーザー向け」というタイトルのセクション。

ここで、次の 2 つのファイルについて学びました。

/etc/zshenv 
/etc/zprofile

~/.zshrc の内容は、MacVim がロードされ、zsh が現在のシェルである場合に読み取り/ソースされると予想されますが、そうではありません。これらの 2 つのファイル (/etc/zshenv と /etc/zprofile) のいずれかに $PATH 変数を含める必要があることに気付いたので、それを ~/.zshrc から各ファイルに個別に移行して、いずれかが機能するかどうかを確認しました。 . 最初に /etc/zshenv をターゲットにして (/etc/zprofile はそのままにしておきます)、vim/MacVim をリロードすると、すべて問題なく動作しました。

which rails

今回は実際に正しい出力がありました。

@romainl、私の $PATH 変数が Terminal.app と vim の間で同期しているかどうかについて最初に尋ねたとき、私はそれらが同等であると誤って考えたと思います。後で両方の出力セットを分析したところ、実際にはわずかに異なっていることがわかりました。それは、潜在的な問題が何であるかについてすぐに良い指標になるでしょう. 私の過ちと感謝。

Bash ユーザーは、この記事で概説されている /etc/zshenv と同等であると思われるものを考慮したいと思うかもしれません。

Ben Schmidt は、$PATH 変数を "~/.profile ではなく ~/.bashrc" に設定する必要があると述べています。そのため、トラブルシューティングの際に考慮すべきことがあります。

~/.bashrc で $PATH 変数を指定しているときに、bash でこの問題が発生したことを思い出したことはありませんが、この情報がいつか役立つ可能性があります。

この情報が問題を抱えた zsh ユーザーに役立つことを願っています。Ruby のハッキングをお楽しみください。

于 2012-06-21T02:04:28.120 に答える