En mi .zshrc, declaro algunos alias. Por ejemplo, which dbstartmuestra el contenido de ese alias.
Si abro vim desde ese shell, es un proceso hijo. En Vim, puedo ejecutar comandos de shell con :! some_command. Si hago :! echo $0para ver qué shell está usando Vim, genera '/ bin / zsh'. Sin embargo, mis alias no están disponibles allí.
¿Cómo puedo hacer que mis alises de shell normales estén disponibles cuando salgo de Vim?
Dos ideas:
- De alguna manera,
EXPORTlos alias del shell original, a su proceso hijovim, y de nuevo a su proceso hijo shell - Configure Vim para leer mi
.zshrccuando cree sus subcapas
shell
vim
environment-variables
alias
Nathan Long
fuente
fuente

.zshrcen .profile (que parece ser utilizado porvimRespuestas:
Antigua pregunta, pero la solución más limpia para vim en zsh era agregar el alias al
~/.zshenvarchivo que zsh carga para todos los shells, inicio de sesión, interactivo u otros. Esto evita iniciar vim o zsh con banderas y cualquier posible problema con eso.Hay una buena explicación de
~/.zshenvvs~/.zshrcaquí: http://tanguy.ortolo.eu/blog/article25/shrcBásicamente, zsh siempre es fuente
~/.zshenv. Fuente shells interactivos~/.zshrcy de acceso fuente de conchas~/.zprofiley~/.zlogin. Por lo tanto, las fuentes de un shell de inicio de sesión interactivo~/.zshenv ~/.zprofile ~/.zlogin ~/.zloginy un shell no interactivo y sin inicio de sesión como el que vim usa para ejecutar orígenes de comandos solamente~/.zshenv.fuente
Parece que esto funciona para zsh:
$ZDOTDIR=el directorio donde.zshrcse encuentra. P.ej,export ZDOTDIR=$HOME.vimrc,set shell=zsh\ -ioset shellcmdflag+=ipara el mismo efecto.Esto
-ise debe a que, cuando se inicia en modo interactivo, se carga zshell$ZDOTDIR/.zshrc. Verman zshy buscar$ZDOTDIRdetalles.fuente
"+yahora suspende a Vim! superuser.com/questions/712245/…Creo que cuando estás dentro
vimy usas el:!some_commandestá usando cualquier shell definido por la variable de entorno$SHELL.Esto es configurable, por lo que puede cambiar anulando el
$SHELLcomportamiento en su$HOME/.vimrcarchivo para usarzshen su lugar.O al
.vimrcusar 1 de estas 2 líneasAyuda vim
Ver
:help shelldesde adentrovimpara más información.fuente
$SHELL. Entonces tu caparazón es/bin/bash. Si mi caparazón es/bin/zsh, eso es lo que usará.Al establecer
shell=/usr/bin/zsh\ -len.vimrcresuelto mi problemaNota:
Estoy usando: linux mint 17.1
fuente