簡體   English   中英

如何獲得系統許可,以便可以編譯emacs的etag?

[英]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-variableCh 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM