2012-07-10 5 views
10

La configurazione del mio terminale vim non sta caricando il file ~/.zshrc. Zsh è la shell di login dell'ambiente. Qual è la configurazione corretta per questa situazione?terminal vim non in caricamento .zshrc

Ecco alcune misure ho già adottate e dal rimossi:

set shell=zsh
(utilizza zsh come shell ma non elabora il rc)

set shellcmdflag=-ci
(tutto uscita sospesa)

cat ~/.zshenv
$ source ~/.zshrc
(molti errori all'apertura vim)

risposta

8

Dal manuale:

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. 

Da quello che ho capito,

set shell=zsh\ -i 

dovrebbe funzionare.

+3

questo è il secondo comando in 'set shellcmdflag = -ci'. quando lo provo, tutto l'output è sospeso. –

+0

'-ci' o' -i' sono i flag corretti. Vuoi dire che Vim è sospeso e tu sei al prompt della shell? Questo è il comportamento previsto e normale di Vim in un terminale. Non sarai in grado di cambiarlo affatto. In GVim/MacVim, facendo ':! 'espande la riga di comando in una sorta di terminale stupido per leggere l'output di' '. Se questo è il comportamento che devi fare, dovrai passare a GVim/MacVim. – romainl

+8

Con i flag 'ci' o' c', i comandi terminano con qualcosa come '21195 sospeso (output tty) vim' e sono lasciato al prompt della shell zsh. Devo quindi digitare 'fg' per ottenere il risultato atteso. –

6

La risposta accettata non funziona come previsto. La soluzione effettiva dovrebbe essere quella di inserire gli alias e altri contenuti ~/.zshrc in ~/.zshenv. L'unica cosa necessaria in ~/.vimrc è set shell=zsh senza alcun flag.

+0

la voce di manuale fornisce le informazioni necessarie per risolvere il problema. il mio problema era legato all'ordine di lettura dei comandi. nessun alias è stato menzionato come un problema. –

+2

Un po 'più liscio. Aggiungi un link simbolico 'ln -s ~/.zshrc ~/.zshenv' –

0

Ho trovato una soluzione a portata di mano. Come l'unica cosa che ho veramente bisogno è tutti i miei pseudonimi, ho aggiunto una funzione per il mio file ~/.zshrc:

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

quindi eseguire source ~/.zshrc && zshalias.

Nel vostro vimrc si solo bisogno:

shell=zsh 

Tutto poi funziona perfettamente senza uscita TTY sospeso!

Problemi correlati