Di saya .zshrc
, saya menyatakan beberapa alias. Misalnya, which dbstart
menunjukkan isi alias itu.
Jika saya membuka vim dari shell itu, itu adalah proses anak. Di Vim, saya bisa menjalankan perintah shell dengan :! some_command
. Jika saya lakukan :! echo $0
untuk melihat shell apa yang Vim gunakan, ini menghasilkan '/ bin / zsh'. Namun, alias saya tidak tersedia di sana.
Bagaimana saya bisa membuat shell normal saya tersedia ketika saya keluar dari Vim?
Dua ide:
- Entah bagaimana
EXPORT
alias dari shell asli, untuk proses anaknyavim
, dan lagi ke proses anak shellnya - Konfigurasikan Vim untuk membaca saya
.zshrc
saat membuat subkulitnya
shell
vim
environment-variables
alias
Nathan Long
sumber
sumber
.zshrc
profil Anda ke. profil (yang tampaknya digunakan olehvim
Jawaban:
Pertanyaan lama, tetapi solusi terbersih untuk vim di zsh adalah menambahkan alias ke
~/.zshenv
, file yang zsh muat untuk semua shell, login, interaktif, atau lainnya. Ini menghindari vim atau zsh mulai dengan bendera dan kemungkinan masalah dengan itu.Ada penjelasan yang bagus tentang
~/.zshenv
vs di~/.zshrc
sini: http://tanguy.ortolo.eu/blog/article25/shrcPada dasarnya, zsh selalu sumber
~/.zshenv
. Sumber shell interaktif~/.zshrc
, dan sumber shell login~/.zprofile
dan~/.zlogin
. Dengan demikian, sumber shell login interaktif~/.zshenv ~/.zprofile ~/.zlogin ~/.zlogin
, dan shell nonlogin non-aktif seperti yang digunakan oleh vim untuk menjalankan perintah hanya sumber~/.zshenv
.sumber
Sepertinya ini berfungsi untuk zsh:
$ZDOTDIR=
direktori tempat.zshrc
itu berada. Misalnya,export ZDOTDIR=$HOME
.vimrc
,set shell=zsh\ -i
atauset shellcmdflag+=i
untuk efek yang sama.Ini
-i
karena, ketika dimulai dalam mode interaktif, zshell memuat$ZDOTDIR/.zshrc
. Lihatman zsh
dan cari$ZDOTDIR
detailnya.sumber
"+y
sekarang menangguhkan Vim! superuser.com/questions/712245/…Saya percaya ketika Anda masuk
vim
dan Anda menggunakan:!some_command
shell apa pun yang didefinisikan oleh variabel lingkungan$SHELL
.Ini dapat dikonfigurasi, jadi Anda bisa mengubahnya dengan mengganti
$SHELL
perilaku di$HOME/.vimrc
file Andazsh
sebagai gantinya.Atau dalam
.vimrc
penggunaan Anda 1 dari 2 baris iniTolong Vim
Lihat
:help shell
dari dalamvim
untuk info lebih lanjut.sumber
$SHELL
. Jadi cangkang Anda/bin/bash
. Jika shell saya/bin/zsh
, itulah yang akan digunakan.Dengan mengatur
shell=/usr/bin/zsh\ -l
dalam.vimrc
memecahkan masalah sayacatatan:
Saya menggunakan: linux mint 17.1
sumber