2009-09-08 23 views
10

Ho alcuni alias e funzioni definite in ~/.bashrc.Comandi da .bashrc non disponibile in Emacs

comincio emacs da una finestra di terminale utilizzando emacs -nw

Quando eseguo M-x shell-command, gli alias e le funzioni da ~/.bashrc non sono disponibili, ma do un "comando non trovato".

Ho cercato su Google un bel po 'ma tutti i post che ho incontrato dicono, se li capisco correttamente, che ~/.bashrc è il posto dove dovrebbe funzionare (piuttosto che ~/.profile o ~/.bash_profile).

Cosa mi manca?

risposta

8

alias sono disponibili solo in shell interattiva - un'istantanea da pagina man bash:

alias non sono espansi quando la shell non è interattiva, a meno che le expand_aliases shell opzione è impostata utilizzando shopt (vedere la descrizione di shopt sotto SHELL COMANDI INCORPORATI sotto).

2

Se si avvia Emacs da una shell interattiva (in cui .bashrc, ecc hanno eseguito), quindi i comandi dal vostro .bashrc dovrebbe essere disponibile sia per shell-command e shell, almeno è così che funziona per me .

Ma sì, come l'altra risposta dice, non esiste un modo reale per ottenere un ambiente .bashrc in emacs. Ci sono alcuni documenti su un file .emacs_bash, ma questo non ha mai funzionato per me.


Ok, ho letto male la tua domanda qui. Se stai cercando funzioni e alias invece dei comandi cambiando i percorsi in .bashrc, la non-interattività è il problema. Immagino che tu possa cambiare l'argomento predefinito in shell-command (dai uno sguardo a explicit-bash-args) per rendere bash interattivo, ma probabilmente ha conseguenze non volute.

Problemi correlati