从两个用户帐户使用emacs打开同一个文件
我的Mac电脑上有两个用户帐户。 我想用emacs在两个帐户上打开相同的文本文件。 我可以将文件放在一个目录中,在这个目录中,两个用户都有读写权限 当我向一个进程添加文本时,我希望它自动显示在另一个缓冲区中,反之亦然 我尝试了自动保存模式和自动还原模式的组合来尝试自动保存一个自动还原,但这似乎并不完全正确从两个用户帐户使用emacs打开同一个文件,emacs,Emacs,我的Mac电脑上有两个用户帐户。 我想用emacs在两个帐户上打开相同的文本文件。 我可以将文件放在一个目录中,在这个目录中,两个用户都有读写权限 当我向一个进程添加文本时,我希望它自动显示在另一个缓冲区中,反之亦然 我尝试了自动保存模式和自动还原模式的组合来尝试自动保存一个自动还原,但这似乎并不完全正确 对于emacs,有什么正常的方法可以做到这一点吗?不是完整的答案。只是一些想法。尽管如此,这是作为答案制定的,因为我想用elisp代码对其进行补充,并可能在以后对其进行改进。这在评论中是不可能
对于emacs,有什么正常的方法可以做到这一点吗?不是完整的答案。只是一些想法。尽管如此,这是作为答案制定的,因为我想用elisp代码对其进行补充,并可能在以后对其进行改进。这在评论中是不可能的 我假设您实际上在两个帐户中与两个emacsen合作。此外,我假设
自动恢复缓冲区
的问题在于定时,即自动恢复缓冲区
与轮询一起工作,而不是按需工作
如果您想按需更新,则必须将两个emacsen都设置为服务器,并为它们提供双向通信的可能性
您可以通过emacsclient
通过ssh
上的-e
选项执行类似操作
如果您在专用网络中,还可以让emacs服务器直接通信。
由于emacsclient
检查套接字的所有权,因此我没有使用emacsclient
和默认服务器设置作为套接字。(注意:首先,我使用EmacClient进行测试。之后,我验证了两个emacsen之间的通信也可以正常工作。)
但是下面的代码显示了emacs服务器通过tcp/ip进行通信的可能性
两个emacsen都应该将其服务器文件放在同一个目录中。当然,您需要以不同的方式命名服务器。然后,您可以通过位于的命令server eval进行通信
注意,此内容与安全相关,只能在安全的专用网络上使用。
下面的elisp代码不像一个包,更像是一个有用命令的集合。
不过,在一台服务器上,您可以按原样使用这些命令。另一方面,你需要做一些小的修改。例如:更改服务器名称
【代码】;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 通过tcp进行通信:
(setq服务器使用tcp t)
(setq服务器验证目录“/tmp/eserv/”)
(如果(文件目录-p服务器身份验证目录)
(项目
(除非(file-accessible-directory-p server auth dir)
(错误“无法访问服务器身份验证目录”))
(除非(file-writable-p server auth dir)
(错误“无法写入服务器身份验证目录”))
)
(mkdir服务器验证目录t)
(除非是(shell命令(concat“chgrp users\”server auth dir“\”))
(错误“无法将服务器文件目录组更改为用户”。)
(chmod server auth dir(文件模式符号编号为“g+xr”(文件模式服务器auth dir)))
;;
(defadvice服务器确保安全目录(围绕不安全激活)
“我们在一个私人网络上,不害怕入侵。
此外,该目录已经设置好。
如果你不知道自己在做什么,这就是一个安全漏洞!”
(let((dir(ad get arg 0)))
(除非(file-exists-p dir)
(错误“文件%s不存在。”dir)
(除非(file-directory-p dir)
(错误“文件%s不是目录..dir”))
(服务器强制删除)
(服务器启动)
(defvar服务器文件为零)
“服务器文件的全名。”)
(setq服务器文件(concat服务器auth dir服务器名称))
(除非是(shell命令(concat“chgrp users\”服务器文件“\”))
(错误“无法将服务器文件组更改为用户”。)
(chmod服务器文件(文件模式符号编号为“g+r”(文件模式服务器文件)))
后来,我发现两个emacsen也可以通过套接字进行通信。只需绕过安全性,并在auth目录中软链接服务器套接字
因此,您可以选择。我认为您应该学习协作编辑。emacs wiki上有一个关于它的页面您是否暗示您有两个用户同时登录到一台计算机(例如服务器)上,并且您希望两个用户能够同时查看同一个文件并在每个站点上实时更新?请详细说明如何设置您的双重登录。