2013-02-07 47 views
0

我試圖在我的bash_profile中編寫一個命令來替換emacs文件(如果它存在),如果它不存在,將複製模板到默認emacs命令新文件,然後emacs的。Bash:在bash_profile中重寫emacs命令

我嘗試什麼:

function emacs() 
{ 
if [ ! -f ${1} ]; then \ 
cp /FILEPATH/template.sh ${1}; fi; 
builtin emacs ${1} 
} 

,但我得到的錯誤是「-bash:內置:emacs的:不是一個shell內建」

如何創建一個新的功能,以取代emacs命令,然後在emacs不是內置命令的情況下調用該函數中的原始emacs命令?

回答

1

你想要command emacs而不是builtin emacs。請參閱help command

順便說一句,emacs對新文件模板有某種內部支持嗎?你可能想看看這個:http://www.emacswiki.org/emacs/TemplatesMode。 (免責聲明:我不使用emacs;這只是我在搜索「emacs新文件模板時發現的第一個頁面中的一個。)

0

(編輯:對不起,command emacs在對方的回答是好,使用。)

builtin只適用於實際的shell內建像testread,...

使用emacs的顯式路徑相反:

function emacs() 
{ 
if [ ! -f ${1} ]; then \ 
cp /FILEPATH/template.sh ${1}; fi; 
/usr/bin/emacs ${1} 
}