2012-02-01 8 views
6

Yo uso !ls para ejecutar el comando bash. Pero después de haber configurado algo como source ~/.usr_profile en el archivo ~/.profile, vim tampoco obtendrá este archivo. Entonces cuando quiero ejecutar una función declarada en usr_profile, tengo que ejecutar :!source ~/.usr_profile && my_command. Cuando estoy usando esto una o dos veces, está bien. Pero cuando lo utilizo con frecuencia, mi vimrc se vuelve desordenado.
¿Hay algún método mejor para solucionar este problem.thanks¿Cómo hacer que vim use el mismo entorno que mi shell de inicio de sesión al ejecutar comandos con "!"?

+0

posible duplicado de [¿Cómo obtengo el comando vim's: sh para obtener mi bashrc?] (Http://stackoverflow.com/questions/1694599/how-do-i-get-vims-sh-command-to- source-my-bashrc) – nwinkler

Respuesta

13

La adición de esta línea a su ~/.vimrc debe resolver su problema inmediato:

set shell=bash\ -l 

Cuando invoca con -l (--login), bash lee su ~/.profile en el arranque (entre otros archivos) y, por lo tanto, todo lo que proviene de allí.

Cuando se invoca con -i (--interactive), bash lee su ~/.bashrc en el arranque (entre otros archivos) y por lo tanto todo lo que proceda de allí.

Pruebe $ man bash o :h shell y :h shellcmdflag para obtener más información.

En cuanto a las diferencias entre el inicio de sesión y el shell que no inicia sesión, debo admitir mi ignorancia. This answer on serverfault puede ayudar, es interesante, de todos modos.

+0

+1 para el enlace útil – Ves

+0

Gracias, esto realmente funciona. –

Cuestiones relacionadas