Vim Mengabaikan Alias

11

Jika saya memetakan perintah dalam vim menggunakan sesuatu seperti

map <f4> :! pdflatex %<cr>

Vim akan mengabaikan alias saya untuk pdflatex (sesuatu seperti alias pdflatex = 'pdflatex --temp-dir = something'). Apakah mungkin untuk membuat vim tidak mengabaikannya?

vonhogen
sumber
Apakah mungkin vim shell atau shelltype Anda tidak cocok dengan shell login Anda?
DaveParillo

Jawaban:

16

Vim 'mengabaikan' alias Anda karena shell Anda tidak dalam 'mood' untuk mem-parsing .bash_profile/.bashrc(Anda tidak menentukan, di mana alias Anda didefinisikan) karena itu tidak dimulai sebagai shell login / interaktif (baca di sini untuk mengetahui lebih lanjut tentang apa yang dibaca kapan dan untuk alasan apa).

Jadi, Anda memiliki beberapa opsi:

  1. Masukkan kode yang Anda gunakan di pdflatexalias Anda ke dalam skrip dan panggil itu
  2. vimrc:, 'set shell=/bin/bash\ -l'masukkan alias Anda ke .bash_profile
  3. Panggil shell Anda sebagai shell interaktif / login: :! bash -l -i -e 'pdflatex .'
akira
sumber
2
Masuk / non-masuk tidak masalah untuk ~/.bashrc- hanya interaktif / non-interaktif yang penting.
user1686
alias saya ada di .bash_profile .. hmm saya sedikit mengubah pertanyaan. Saya lebih suka dijalankan di shell saat ini. Namun solusi kedua Anda tampaknya paling 'dapat diterima', itu membuat% variabel tidak berguna karena membuka shell baru biasanya dimulai pada folder home.
vonhogen
Ini adalah jawaban yang luar biasa dan menyeluruh. Terima kasih!
Abel