gpt4 book ai didi

emacs - 使用 ssh session 中的 emacs tramp 对远程文件进行原始编辑

转载 作者:行者123 更新时间:2023-12-04 00:59:34 30 4
gpt4 key购买 nike

这可能是一个有点古怪的问题。我使用tramp来编辑远程文件,但我也打开了几个终端ssh-ing到该远程机器以及其他工作(我在emacs中运行ssh shell时遇到问题)。

在终端工作期间,我经常想编辑一些文件,我目前的程序是复制文件名,然后使用 emacs tramp 打开该文件(在搞砸了以 Tramp 格式获取文件路径之后)。这对于快速编辑来说工作量太大,并且在路径处理部分很容易出错。

问题是:我可以在远程 ssh session 中执行一些使用文件名的命令,将其转换为tramp 格式(这是最简单的部分),然后运行本地命令(如 emacsclient blahblahblah ),以便我可以编辑远程文件在我的本地 emacs 中使用tramp?

我不确定我是否足够清楚。我不想在远程机器上运行 emacs(在终端上或通过 x session ),但我确实想从远程提示发送文件到我的本地 emacs,如下所示:

user@remote-machien ~/ $ run_local_emacs somefile
# then the file "/ssh:user@remote-machine/:/home/user/somefile" shows up
# in my local emacs

最佳答案

您可以将 emacs-server 设置为使用 tcp 连接(不仅仅是本地套接字),然后在远程端告诉 emacsclient 连接到该 tcp 连接:

在您的 .emacs 中

(setq server-use-tcp t)
(setq server-host "name_of_local_machine")
(server-start)

然后在远程端:
emacsclient -f ~/.emacs.d/server/server /`hostname`:/path/to/local/file

以上调用 emacsclient在“本地”机器上运行的 Emacs 中,调出“远程”机器的本地文件。显然,您可以将调用包装到 emacsclient在任何你想让它更容易的脚本中。

如果您的主目录在远程机器上不可见,您将需要
定制 server-auth-dir像这样的变量:
(setq server-auth-dir "/some/path/visible/on/both/machines")

有关更多文档,请参阅 Emacsclient options .

关于emacs - 使用 ssh session 中的 emacs tramp 对远程文件进行原始编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2231902/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com