2012-07-10 19 views
10

Konfiguracja mojego terminalu vim nie ładuje pliku ~/.zshrc. Zsh to powłoka logowania do środowiska. Jaka jest właściwa konfiguracja dla tej sytuacji?terminal vim nie ładuje się .zshrc

Oto niektóre środki Ja już podjęte i od usunięte:

set shell=zsh
(używa zsh jako powłokę, ale nie pozyskać RC)

set shellcmdflag=-ci
(wszystkie wyjścia Zawieszona)

cat ~/.zshenv
$ source ~/.zshrc
(wiele błędów podczas otwierania vim)

Odpowiedz

8

Z instrukcji:

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. 

Z tego co rozumiem,

set shell=zsh\ -i 

powinno działać.

+3

jest to drugie polecenie w 'zestawie shellcmdflag = -ci'. kiedy próbuję tego, wszystkie dane wyjściowe są zawieszone. –

+0

'-ci' lub' -i' są poprawnymi flagami. Czy masz na myśli to, że vim jest zawieszony, a ty jesteś na muszce? Takie jest oczekiwane i normalne zachowanie Vima w terminalu. W ogóle nie będziesz mógł tego zmienić. W GVim/MacVim, wykonując ':! 'rozszerza linię poleceń do pewnego rodzaju niemego terminalu, aby odczytać wyjście z' '. Jeśli to zachowanie, po którym będziesz musiał przejść na GVim/MacVim. – romainl

+8

Z flagami 'ci' lub' c', komendy kończą się czymś w rodzaju '21195 zawieszone (wyjście tty) vim' i pozostaję przy znaku zachęty powłoki zsh. Następnie muszę wpisać 'fg', aby uzyskać oczekiwany wynik. –

6

Przyjęta odpowiedź nie działa zgodnie z oczekiwaniami. Rzeczywistym rozwiązaniem powinno być umieszczanie aliasów i innych treści ~/.zshrc w ~/.zshenv. Jedyną rzeczą wymaganą w ~/.vimrc jest set shell=zsh bez żadnych flag.

+0

ręczne wprowadzenie zapewnia wgląd potrzebny w celu rozwiązania problemu. mój problem był związany z kolejnością odczytu poleceń. nigdzie nie wspomniano o aliasach jako problem. –

+2

Trochę gładsza. Dodaj dowiązanie symboliczne 'ln -s ~/.zshrc ~/.zshenv' –

0

Znalazłem poręczne rozwiązanie. Jako jedyna rzecz, którą naprawdę trzeba to wszystkie moje pseudonimy, dodałem funkcję do mojego pliku ~/.zshrc:

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

Następnie wykonać source ~/.zshrc && zshalias.

W swojej vimrc wystarczy:

shell=zsh 

Wszystko wtedy działa doskonale bez zawieszonego wyjściu tty!