[英]How do I gain system permission so that I can compile emacs' etags?
如何獲得在emacs中運行編譯的權限?
我正要在特定目錄(/usr/share/emacs/24.3/lisp)中創建TAGS文件,之后是Robert Chassell在Emacs Lisp中編程的簡介 。
我已經運行了compile命令, Mx compile RET etags *.el RET
作為回報,我被告知許可已被拒絕。 這是我的個人計算機,以sudo特權運行ubuntu 14.04 LTS(我的個人計算機)。
我發現運行sh腳本時拒絕了某些信息權限 ,這可能是適用的,值得一試(也許在示例中嘗試使用chmod + x * .el而不是chmod + x filename.sh?),但有點害怕,因為這些不是確切的解決方案,我是編程的新手,更不用說linux了(幾天前我已經損壞了一些文件,不得不重新安裝ubuntu 14.04
以下是緩沖區中顯示的實際消息:
-*- mode: compilation; default-directory: "/usr/share/emacs/24.3/lisp/" -*-
Compilation started at Sat Jun 4 05:36:16
etags *.el
TAGS: Permission denied
Compilation exited abnormally with code 1 at Sat Jun 4 05:36:16
首先,您可以使用find-function
免費獲得一半的標簽功能(無論如何,對於Emacs lisp而言)。 我將其綁定到Ch Cf
還有find-variable
,但是我發現describe-variable
( Ch v
)更加有用。
您可能以普通用戶而非管理員身份運行Emacs。 這絕對是正確的做法,但不允許您像/usr
下的任何內容一樣寫入系統目錄。 您可以以root用戶身份運行Emacs( sudo emacs
),也可以使用一個名為tramp的軟件包,該軟件包允許您以其他用戶的身份工作(它還可以編輯遠程計算機上的文件)。
使用Cx Cf /sudo:localhost:/usr/share/emacs/24.3/lisp/
作為root用戶打開目錄。 打開目錄后,運行compile
。
另外,我懷疑命令是否會執行您想要的操作。 大多數Emacs安裝都用gzip *.el
源代碼,盡管etags
似乎足夠聰明,可以處理此問題,但是glob模式*.el
將不匹配。 此外,還有子目錄。 最好使用find
命令: find -name "*.el" -o -name "*.el.gz" -exec etags '{}' +
。
真正的解決方案是不要將TAGS文件放在該目錄中。 只需將其放在您具有寫許可權的其他地方。
cd; find /usr/share/emacs/24.3/lisp -name "*.el" -o -name "*.el.gz" -exec etags '{}' +`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.