2012-06-20 62 views
1

當使用Vim的設置不同,您可以通過爲什麼殼輸出/從時,被的MacVim執行,而不是終端

:!<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 

和無濟於事源我dotfile!

我不明白這裏發生了什麼。我遇到了一個問題,因爲 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 

有人能告訴我如何重寫這個嗎?

即使我的版本的軌道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 
+0

你如何啓動MacVim?當你使用Finder.app(雙擊,右鍵>用...打開)時,MacVim以與在Terminal.app中執行'$ vim filename'不同的環境開始。試試捆綁的'mvim'腳本:'$ mvim filename'。 – romainl

+0

如您所述,我通過終端的mvim命令啓動。 –

+0

請比較Vim和MacVim中':!echo $ PATH'的輸出。 – romainl

回答

1

好吧,夥計們,一切都很好。讓我概述我對解決方案的步驟。首先,非常感謝@romainl和@mpapis的幫助。 @romainl,我做的第一件事就是嘗試RVM插件,但這沒有幫助。然後我看了一下at the link that @mpapis posted,在那裏我瞭解了MacVim的隱藏設置。那麼,我不能馬上找到這個設置,因爲當他們提到偏好時,他們不是在討論UI(通常映射到Command +,熱鍵)。他們談論

:h macvim 

我掃描the aforementioned post後發現了這一點。

一旦我到達了macvim的幫助部分,我搜索了世界「shell」。

/shell 

我在3.首選項部分找到了兩個設置。

============================================================================== 
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設置引起了我的注意。所以我嘗試了其中一個設置,通過

defaults write org.vim.MacVim KEY VALUE 

語法,但無濟於事。

然後,我用Google搜索「mmloginshell命令的MacVim」,這是2個設置我在的的MacVim幫助首節找到了一個。

The first link was a Stackoverflow question.

一旦我到了那裏,我遇到了this answer,這給我this page on the MacVim Github wiki

到了那裏,我也跟着比約恩溫克勒的(一個核心的MacVim開發商)在他的故障排除指南步驟;特別是標題爲「用於zsh用戶」的部分。

正是在這裏,我瞭解這2個文件:

/etc/zshenv 
/etc/zprofile 

人們預計,當的MacVim加載和zsh的是當前shell〜/ .zshrc的內容將被讀/來源,但不是這種情況。一旦我意識到這兩個文件(/ etc/zshenv和/ etc/zprofile)中的一個應該包含我的$ PATH變量,我開始將它從〜/ .zshrc單獨遷移到每個文件中,以查看是否可以工作。我最初針對/ etc/zshenv(同時保持/ etc/zprofile完好),重新加載vim/MacVim,並且所有工作都完美無缺。

which rails 

這次確實有正確的輸出。

@romainl,當你開始詢問我的$ PATH變量是否是在Terminal.app和VIM之間的同步,我覺得我誤以爲他們是等價的。在稍後分析這兩組產出時,我發現它們確實有些不同。這對於潛在的問題是一個很好的指標。我的錯誤和謝謝。

bash用戶可能需要考慮什麼,我懷疑是在/ etc/zshenv,這是概括here in this post的等價物。

本施密特提到,你應該設置你的$ PATH變量 「〜/ .profile中沒有的〜/ .bashrc」;所以在排除故障時需要考慮一些事項。

我不記得在使用我在〜/ .bashrc中指定的$ PATH變量的時候曾經遇到過這個問題,但是誰知道......這些信息可能在某些時候派上用場。

謝謝大家,我希望這個信息可以幫助陷入困境的zsh用戶。快樂的紅寶石黑客。

相關問題