2009-09-08 6 views
10

~/.bashrc içinde tanımlı bazı takma adlar ve işlevler var. Ben, ~/.bashrc gelen takma adları ve işlevleri M-x shell-command yürütmek mümkün değildir, ancak bir "bulunamadı komutu" verdiğinde.bashrc komutları emacs içinde mevcut değil

Ben emacs -nw

kullanarak terminal penceresinden emacs'ı başlar.

Oldukça biraz googledim ama karşılaştığım tüm mesajlar, eğer doğru bir şekilde anlarsam, ~/.bashrc'nin çalışması gereken yer burasıdır (~/.profile veya ~/.bash_profile yerine).

Neyi eksik?

cevap

8

adlar yalnızca etkileşimli kabukta mevcuttur - bash adam sayfasından bir anlık:

adlar expand_aliases seçenek shopt (kullanarak ayarlanır kabuk sürece kabuk, interaktif olmadığında Genişletilmemişler Aşağıdaki SHELL BUILTIN KOMUTLAR altında shopt açıklamasına bakın). Eğer (ki vb idam, Bashrc) interaktif kabuğundan Emacs başlatırsanız

2

, sonra .bashrc gelen komutlar hem shell-command ve shell için kullanılabilir olmalıdır, en azından benim için nasıl çalıştığını bulunuyor .

Ama diğer cevabın dediği gibi, evet, emaclarda bir .bashrc ortamı elde etmek için gerçek bir yol yoktur. Bir .emacs_bash dosyasıyla ilgili bazı belgeler var, ancak bu benim için hiç çalışmadı.


Sorunuzu yanlış anlamayın. .bashrc'deki yolları değiştirerek komutlar yerine işlevler ve takma adlar arıyorsanız, etkileşimsizlik sorun olur. Ben bash interaktif yapmak için varsayılan argümanı kabuk-komutunu (explicit-bash-args'a bir göz atın) değiştirebileceğinizi tahmin ediyorum, ancak bu muhtemelen istenmeyen sonuçlara yol açabilir.