W mojej .zshrc
deklaruję niektóre pseudonimy. Na przykład which dbstart
pokazuje zawartość tego aliasu.
Jeśli otworzę vima z tej powłoki, jest to proces potomny. W Vimie mogę uruchamiać polecenia powłoki za pomocą :! some_command
. Jeśli zrobię, :! echo $0
aby zobaczyć, jakiej powłoki używa Vim, wypisze „/ bin / zsh”. Jednak moje aliasy są tam niedostępne.
Jak mogę udostępnić normalną powłokę pocisków, gdy odpuszczam od Vima?
Dwa pomysły:
- W jakiś sposób
EXPORT
aliasy z oryginalnej powłoki, do jej procesu potomnegovim
i ponownie do jego potomnego procesu - Skonfiguruj Vima, aby czytał mój
.zshrc
podczas tworzenia jego podpowłoki
shell
vim
environment-variables
alias
Nathan Long
źródło
źródło
.zshrc
.profile do (co wydaje się być wykorzystanie przezvim
Odpowiedzi:
Stare pytanie, ale najczystszym rozwiązaniem dla vima w Zsh było dodanie aliasu
~/.zshenv
, pliku ładowanego przez Zsh dla wszystkich powłok, logowania, interaktywnego lub innego. Pozwala to uniknąć uruchamiania vim lub zsh z flagami i ewentualnych problemów z tym związanych.Ładne wyjaśnienie
~/.zshenv
vs~/.zshrc
tutaj: http://tanguy.ortolo.eu/blog/article25/shrcZasadniczo, zsh zawsze pobiera źródła
~/.zshenv
. Interaktywne źródło~/.zshrc
powłok~/.zprofile
oraz źródło powłok logowania i~/.zlogin
. Tak więc, interaktywne źródła powłoki logowania~/.zshenv ~/.zprofile ~/.zlogin ~/.zlogin
i nieinteraktywna powłoka, która nie jest zalogowana, jak ta, której używa vim do uruchamiania źródeł tylko poleceń~/.zshenv
.źródło
Wygląda na to, że działa dla Zsh:
$ZDOTDIR=
katalog, w którym.zshrc
się znajduje. Na przykład,export ZDOTDIR=$HOME
.vimrc
,set shell=zsh\ -i
lubset shellcmdflag+=i
do tego samego skutku.-i
Się tak dlatego, gdy uruchomiony w trybie interaktywnym, zshell obciążeń$ZDOTDIR/.zshrc
. Zobaczman zsh
i wyszukaj$ZDOTDIR
szczegóły.źródło
"+y
teraz, wstrzymuje Vima! superuser.com/questions/712245/…Wierzę, że kiedy jesteś w środku
vim
i używasz:!some_command
tego, używasz powłoki niezależnie od zmiennej środowiskowej$SHELL
.Jest to konfigurowalne, więc możesz to zmienić, zastępując
$SHELL
zachowanie$HOME/.vimrc
pliku, którego chcesz użyćzsh
.Lub w
.vimrc
użyciu 1 z tych 2 liniiPomoc Vima
Zobacz
:help shell
od wewnątrz,vim
aby uzyskać więcej informacji.źródło
$SHELL
. Więc twoja skorupa jest/bin/bash
. Jeśli moja powłoka jest/bin/zsh
, to jej użyje.Ustawiając
shell=/usr/bin/zsh\ -l
się.vimrc
rozwiązać mój problemUwaga:
Używam: linux mint 17.1
źródło