如何檢查在Emacs中創建緩衝區的人員的身份,然後再檢查訪問該緩衝區的用戶是否是同一用戶?我的意思是像「我是誰?」在Unix命令中,然後檢查同一用戶是否正在訪問該文檔? - >我想一個函數或方法來這在我自己的代碼如何在Emacs中識別緩衝區的所有者/創建者
回答
注意一個緩衝器和文件之間的差:甲文件是位於您的硬盤上,如.jpg圖像文件或.mp3 aufio文件或.txt文件。其中一些文件 - 通常是文本文件 - 您可能想要使用Emacs進行編輯。爲此,您可以將文件加載到Emacs中 - 這稱爲「訪問」Emacs lingo中的文件。該文件的內容顯示在緩衝區中。但請注意,您可能還有一個根本不與文件關聯的緩衝區 - 例如,如果啓動Emacs而不指定文件,則會顯示*scratch*
緩衝區。
因此,文件和緩衝區是非常正交的概念,儘管通常您通過訪問文件來創建緩衝區,並且通過寫入文件來保存緩衝區的內容。 (可以創建不通過鍵入CX b 緩衝器名與文件相關聯的緩衝器其中緩衝器名是不使用任何已經存在的緩衝器的識別符。)
緩衝只存在於正在運行的Emacs中。這就是爲什麼你迄今得到的評論和回答可能不是你想要的:緩衝區的創建者/擁有者的概念令人困惑,因爲它顯然是那個坐在鍵盤上的人時刻。
說到文件的所有者/創建者更有意義。在多帳戶設置中,多個用戶可以寫入同一個磁盤,因此他們可以訪問相同的文件。現在知道誰有權訪問,尤其是誰擁有該文件或何時最後修改了該文件會很有趣。在Elisp中,您可以使用函數
(file-attributes FILENAME &optional ID-FORMAT)
獲取與該文件關聯的屬性列表。如果您當前的緩衝區正在訪問文件,則可以將該功能與函數結合使用:
(buffer-file-name &optional BUFFER)
它返回緩衝區正在訪問的文件。對於未訪問文件的緩衝區,此函數返回nil
。
但是,請注意,您可能感興趣的某些信息不可通過(file-attributes ...)
獲得,例如上次訪問文件的人員和/或上次修改人員的人員。這不是Emacs的錯,而是來自操作系統不存儲這些信息的事實。
還要注意,文件的當前所有者不一定是誰創造了它作爲一個具有所需權限的用戶可以chown
在創建後一個文件的人。
要接收有關的whoami
意義上的當前用戶的信息,您可以通過鍵入C-H V 變量名檢查出變量
user-login-name
user-real-login-name
user-full-name
。
哇學到了很多你的答案。謝謝! – Arash 2012-07-30 08:59:14
據我所知,從系統的角度來看,Emacs是一個單一的過程中,誰開始這
(getenv的「用戶」)
用戶擁有是相應於
回波$ USER
- 1. 如何創建Emacs SQL緩衝區?
- 2. 所有emacs緩衝區中的行號
- 3. 如何在Emacs中創建類似* compilation *的緩衝區?
- 4. 如何在Emacs中創建緩衝區本地鍵綁定?
- 5. 獲取所有Emacs緩衝區列表
- 6. 如何恢復emacs緩衝區列表中的緩衝區?
- 7. 如何在Redshift中列出所有表格及其創建者(或所有者)
- 8. 如何在Emacs中保存所有文件(或保存所有緩衝區)?
- 9. 在Emacs中禁用邪惡模式導航?或者任何只讀緩衝區?
- 10. 找出文件所有者/創建者
- 11. 如何識別Java中的監視器鎖的所有者
- 12. Qt創建者:qmake不被識別
- 13. Markdownize Emacs緩衝區
- 14. Emacs erlang緩衝區
- 15. AVPlayerItem奇怪的緩衝區觀察者
- 16. 在Emacs小緩衝區
- 17. Emacs在所有緩衝區中截斷行
- 18. 生產者 - 使用環緩衝區和線程的消費者
- 19. 如何在C中創建沒有緩衝區的管道?
- 20. 識別分配給malloc的緩衝區()
- 21. 如何在emacs的所有緩衝區中使用「M-x替換字符串」?
- 22. 如何在Emacs緩衝區中突出顯示所有出現的單詞?
- 23. Emacs在Mono中的等效緩衝區
- 24. 顯示Emacs中所有打開的緩衝區
- 25. 將函數應用於emacs中的所有緩衝區
- 26. 如何在C++中創建緩衝區來創建新文件
- 27. 在Emacs緩衝區中居中文本
- 28. 讓emacs grep緩衝區使用特定的emacs緩衝區來顯示命中
- 29. 生產者消費者界緩衝區使用旗語
- 30. 生產者/消費者,流緩衝區問題
您是否確實指緩衝區正在訪問的* buffer *或*文件*? – Thomas 2012-07-27 02:27:56