2012-07-10 13 views
10

端末のvim設定で〜/ .zshrcがロードされていません。 Zshは環境ログインシェルです。この状況に適した構成は何ですか?ここで端末のvimがロードされていません.zshrc

は、私はすでに取られ、以来、削除しましたいくつかの指標です:

set shell=zsh
(シェルとしてzshのを使用していますが、RCを供給しません)

set shellcmdflag=-ci
(すべての出力が一時停止)

cat ~/.zshenv
$ source ~/.zshrc
(多くのエラーが開くVIM)

答えて

8
Commands are first read from /etc/zshenv; this cannot be overridden. 

[...] 

Commands are then read from $ZDOTDIR/.zshenv. If the shell is a 
login shell, commands are read from /etc/zprofile and then 
$ZDOTDIR/.zprofile. Then, if the shell is interactive, 
commands are read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, 
if the shell is a login shell, /etc/zlogin and $ZDOTDIR/.zlogin are 
read. 

私が理解から、

set shell=zsh\ -i 

が動作するはずです:マニュアルから。

+3

これは 'set shellcmdflag = -ci'の2番目のコマンドです。それを試すと、すべての出力が中断されます。 –

+0

'-ci'または' -i'が正しいフラグです。 vimが中断され、シェルのプロンプトが表示されていることを意味しますか?それは、ターミナル内のVimの予想された正常な動作です。それをまったく変更することはできません。 GVim/MacVimでは、 ':! 'は' 'の出力を読むためにコマンドラインを一種のダム端末に展開します。それはあなたがGVim/MacVimに切り替える必要があります後の動作です。 – romainl

+8

'ci'または' c'フラグのどちらかで、コマンドは '21195 suspend(tty output)vim'のようなもので終了し、zshシェルプロンプトに残されます。結果を得るには 'fg'と打つ必要があります。 –

6

許容される回答が期待どおりに機能しません。実際の解決方法は、エイリアスなどの内容をに入れてください。~/.zshrc~/.vimrcで必要なものは、フラグがない場合はset shell=zshです。

+0

マニュアルエントリは、問題を解決するために必要な洞察を提供します。私の問題はコマンドの読み込み順序に関係していました。エイリアスが問題であるとは言いませんでした。 –

+2

少しスムーズです。シンボリックリンク 'ln -s〜/ .zshrc〜/ .zshenv'を追加する –

0

便利な解決策を見つけました。 source ~/.zshrc && zshaliasを実行し

function zshalias() 
{ 
    grep "^alias" ~/.zshrc > ~/.zshenv 
} 

:私は本当に必要な唯一のものは、すべて私の別名であるように、私は私の~/.zshrcファイルに機能を追加しました。あなたのvimrcで

は、あなただけの必要があります。

shell=zsh 

すべてはその後、無中断のtty出力で完璧に動作します!

関連する問題