如何检查在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