前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在 Emacs 中编辑 crontab

在 Emacs 中编辑 crontab

作者头像
飞驰的西瓜
发布2023-03-01 14:41:08
6260
发布2023-03-01 14:41:08
举报
文章被收录于专栏:EmacsTalkEmacsTalk

一般来说,编辑 crontab 时可以用 crontab -e ,它会读取 EDITOR 环境变量来决定需要打开的编辑器,比如:

代码语言:javascript
复制
EDITOR=emacsclient crontab -e

这时会用 emacsclient 来编辑 crontab 内容,只是需要注意一点,编辑完成后,需要用 C-x #(server-edit) 来退出。

如果使用 with-editor[1] 的话,可以进一步完善编辑 crontab 的体验。

首先定义下面的函数:

代码语言:javascript
复制
(defun my/edit-crontab ()
  (interactive)
  (let ((buf (get-buffer-create "*crontab*")))
    (with-editor-async-shell-command "crontab -e"
                                     buf buf)))

同时在 crontab 文件头添加以下内容,让其打开时,默认开启 with-editor-mode

代码语言:javascript
复制
# -*- mode: with-editor -*-

这样就能够和使用 magit 编辑 commit message 一样来编辑 crontab:

  • C-c C-c 确认
  • C-c C-k 取消

还有一点比较烦, async-shell-command 会默认打开一个 buffer,但是这个 buffer 又没什么用,可以用下面的方法将其隐藏掉:

代码语言:javascript
复制
(setq display-buffer-alist
      '(("\\*crontab\\*" .  (display-buffer-no-window . nil))))

最后,可以添加 crontabrecentf-exclude 变量中,这样编辑 crontab 的临时文件就不会进入 recentf 列表了。

参考

  • • Emacs server - WikEmacs[2]
  • • asynchronous - How to avoid pop-up of Async Shell Command buffer in Emacs? - Stack Overflow[3]
引用链接

[1] with-editor: https://github.com/magit/with-editor [2] Emacs server - WikEmacs: https://wikemacs.org/wiki/Emacs_server [3] asynchronous - How to avoid pop-up of Async Shell Command buffer in Emacs? - Stack Overflow: https://stackoverflow.com/questions/13901955/how-to-avoid-pop-up-of-async-shell-command-buffer-in-emacs/47587185#47587185

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 EmacsTalk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档