По моему .zshrc
, я объявляю некоторые псевдонимы. Например, which dbstart
показывает содержимое этого псевдонима.
Если я открою vim из этой оболочки, это дочерний процесс. В Vim я могу запускать команды оболочки с :! some_command
. Если я выясню, :! echo $0
какую оболочку использует Vim, она выдаст «/ bin / zsh». Однако мои псевдонимы там недоступны.
Как сделать так, чтобы мои обычные алисы оболочки были доступны, когда я выкладываюсь из Vim?
Две идеи:
- Каким-то образом
EXPORT
псевдонимы исходной оболочки, ее дочернего процессаvim
и снова дочернего процесса оболочки - Сконфигурируйте Vim так, чтобы он читал мой
.zshrc
при создании его подоболочек
shell
vim
environment-variables
alias
Натан Лонг
источник
источник
.zshrc
vim
Ответы:
Старый вопрос, но самым чистым решением для vim в zsh было добавление псевдонима
~/.zshenv
, файла, который zsh загружает для всех оболочек, входа в систему, интерактивного или другого. Это позволяет избежать запуска vim или zsh с флагами и любых возможных проблем с этим.Есть хорошее объяснение
~/.zshenv
против~/.zshrc
здесь: http://tanguy.ortolo.eu/blog/article25/shrcВ основном, Zsh всегда источники
~/.zshenv
. Источник интерактивных оболочек и источник~/.zshrc
входа в систему~/.zprofile
и~/.zlogin
. Таким образом, источники интерактивной оболочки входа~/.zshenv ~/.zprofile ~/.zlogin ~/.zlogin
и неинтерактивная нелогинная оболочка, подобная той, которую использует vim для запуска команд только источников~/.zshenv
.источник
Похоже, это работает для Zsh:
$ZDOTDIR=
каталог, где.zshrc
находится. Например,export ZDOTDIR=$HOME
.vimrc
,set shell=zsh\ -i
илиset shellcmdflag+=i
для того же эффекта.Это
-i
связано с тем, что при запуске в интерактивном режиме zshell загружается$ZDOTDIR/.zshrc
. Смотритеman zsh
и ищите$ZDOTDIR
для деталей.источник
"+y
сейчас, приостанавливает Vim! superuser.com/questions/712245/…Я верю, что когда вы находитесь
vim
и используете:!some_command
его, он использует любую оболочку, определенную переменной среды$SHELL
.Это настраивается, так что вы можете изменить, изменив
$SHELL
поведение в вашем$HOME/.vimrc
файле, чтобы использоватьzsh
вместо этого.Или вы
.vimrc
используете 1 из этих 2 строкVim помогите
Смотрите
:help shell
изнутриvim
для получения дополнительной информации.источник
$SHELL
. Так твоя оболочка есть/bin/bash
. Если у меня есть оболочка, это то/bin/zsh
, что она будет использовать.Устанавливая
shell=/usr/bin/zsh\ -l
в.vimrc
решить мою проблемуЗамечания:
Я использую: linux mint 17.1
источник