Saya menggunakan bash di mac dan salah satu aliasnya seperti ini
alias gitlog='git --no-pager log -n 20 --pretty=format:%h%x09%an%x09%ad%x09%s --date=short --no-merges'
Namun ketika saya melakukannya
:! gitlog
saya mendapat
/bin/bash: gitlog: command not found
Saya tahu saya bisa menambahkan alias seperti ini di .gitconfig saya
[alias]
co = checkout
st = status
ci = commit
br = branch
df = diff
Namun saya tidak ingin menambahkan semua alias bash saya ke .gitconfig. Itu tidak KERING.
Apakah ada solusi yang lebih baik?
Jawaban:
Bash tidak memuat .bashrc Anda kecuali jika bersifat interaktif. Menggunakan
untuk membuat
:!
shell Vim berperilaku seperti command prompt Anda.sumber
suspended (tty output)
When i usegit commit
~/.zshrc
untuk shell interaktif, tetapi memuat~/.zshenv
untuk semua shell, jadi saya memindahkan setup alias saya ke sana dan sekarang berfungsi dari dalam Vim. Lihatman zsh
(atau halaman manual shell Anda) untuk lebih lanjut.Saya tahu pertanyaan ini sebelumnya sudah "dijawab", tetapi saya punya masalah dengan jawabannya. Shell tidak perlu disetel ke interaktif di Vim. Lihat utas ini untuk jawaban alternatif tanpa harus keluar dari shell interaktif.
Solusi ini disarankan oleh "Jakob". Lihat tautan di bawah untuk aslinya. Saya menguji ini di Mac OS X 10.9 dan bekerja dengan sempurna!
vim - tidak mengenali alias saat dalam mode interaktif?
sumber
$BASH_ENV
var di my.bashrc
(sebelum pemeriksaan mode interaktif kustom), sehingga saya dapat menggunakan semua alias saya di seluruh aplikasi.let $BASH_ENV="~/.vim/vim_bash"
, dan ini akan digunakan untuk semua:!
pemanggilan dalam Vim.Perhatikan bahwa tergantung bagaimana bash dotfiles Anda dikonfigurasi, Anda mungkin ingin menggunakan opsi -l daripada opsi -i. Ini akan meluncurkan shell sebagai shell login.
sumber
Saya tahu ini mungkin pertanyaan lama, namun tidak ada jawaban di atas yang sesuai untuk saya. Jadi untuk yang datang ke sini dari googling dan untuk pengguna (oh-my-) zsh:
Solusi saya untuk ini semudah menyalin .zshrc ke .zshenv - sesuai http://zsh.sourceforge.net/Intro/intro_3.html :
Aku
$ cp ~/.zshrc ~/.zshenv
akan melakukannya.sumber
. $HOME/.aliases
Saya tidak merasa terlalu nyaman dengan pengaturan opsi -i, karena ini berdampak cukup besar dan saya sering menggunakan shell dari vim. Yang akan saya lakukan adalah sesuatu seperti
:!bash -c ". ~/.alias; gitlog"
sumber