在emacsclient中,有没有办法从命令行打开文件,以便在关闭客户端后其缓冲区在服务器上保持打开状态?
或者,是否有一个命令我可以在客户端运行,告诉它有效地从缓冲区中分离,以便在客户端退出时缓冲区不会被杀死?
通常在使用C-x C-c
或C-x #
关闭emacsclient时,与该客户端关联的缓冲区会被杀死,这通常是方便的行为,但有时我希望缓冲区保持活动状态收盘。到目前为止,我发现完成此任务的唯一方法是在不指定任何文件的情况下运行客户端,然后使用C-x C-f
访问它们,但我想知道是否有更好的方法来执行此操作。
答案 0 :(得分:1)
您应该可以使用-n
选项执行此操作。这意味着它不会等待你“完成”缓冲区,它只会留在缓冲区列表中。我自己在emacsclient中使用它。
答案 1 :(得分:1)
因此,一个选项是使用emacsclient的eval命令行选项来运行lisp命令来查找所需的文件。
virtualenv
显然,除了命令序列emacsclient -c -e '(find-file "my_file")'
,emacsclient -c
,C-x C-f
之外,输入的内容要多得多,但它可以很容易地包含在需要额外参数的脚本中是否只选择文件或使用my_file
。
更精通elisp的人可能只是将选项直接添加到emacs中。
答案 2 :(得分:0)
根据信息手册,如果您从不想杀死emacsclient缓冲区,那么当您完成这些缓冲区后,您可以自定义server-kill-new-buffers
变量(更多信息请见{{ 1}})。
对于用例,根据您希望缓冲区被杀死的频率,您可以将上述变量设置为C-h v server-kill-new-buffers
,然后手动终止 想要的缓冲区杀死。