2012-07-10 23 views
10

La configuración de mi terminal vim no está cargando el ~/.zshrc. Zsh es el shell de inicio de sesión del entorno. ¿Cuál es la configuración adecuada para esta situación?terminal vim no carga .zshrc

Estas son algunas de las medidas que ya he tomado y puesto que eliminan:

set shell=zsh
(zsh utiliza como Shell, pero no la fuente RC)

set shellcmdflag=-ci
(todas las salidas suspendido)

cat ~/.zshenv
$ source ~/.zshrc
(muchos errores al abrir vim)

Respuesta

8

Desde el manual:

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. 

Por lo que entiendo,

set shell=zsh\ -i 

debería funcionar.

+3

ese es el segundo comando en 'establecer shellcmdflag = -ci'. cuando intento eso, todo el resultado se suspende. –

+0

'-ci' o' -i' son las banderas correctas. ¿Quieres decir que vim está suspendido y estás en el intérprete de comandos del shell? Ese es el comportamiento esperado y normal de Vim en una terminal. No podrás cambiarlo en absoluto. En GVim/MacVim, haciendo ':! 'expande la línea de comandos en una especie de terminal tonta para que usted lea la salida de' '. Si ese es el comportamiento que busca, tendrá que cambiar a GVim/MacVim. – romainl

+8

Con los indicadores 'ci' o' c', los comandos terminan con algo como '21195 suspendido (tty output) vim' y me dejan en el indicador de shell de zsh. Luego tengo que escribir 'fg' para obtener el resultado esperado. –

6

La respuesta aceptada no funciona como se esperaba. La solución real debería incluir los alias y otros contenidos de ~/.zshrc en ~/.zshenv. Lo único que se necesita en ~/.vimrc es set shell=zsh sin ninguna marca.

+0

la entrada manual proporciona la información que necesita para resolver el problema. mi problema estaba relacionado con el orden de lectura de los comandos. en ninguna parte se mencionaron los alias como un problema. –

+2

Un poco más suave. Agregue un enlace simbólico 'ln -s ~/.zshrc ~/.zshenv' –

0

Encontré una solución práctica. Como la única cosa que realmente necesito es todos mis alias, he añadido una función para mi archivo ~/.zshrc:

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

luego ejecutar source ~/.zshrc && zshalias.

En su vimrc sólo necesita:

shell=zsh 

Entonces todo funciona perfectamente sin salida TTY suspendida!

Cuestiones relacionadas