如何在 VS Code 中编辑 crontab?

问题描述 投票:0回答:4

如果我尝试使用 Visual Studio Code(在 macOS 10.15 上)编辑我的 crontab,它会打开一个空文件,没有我的 crontab 的内容。

$ VISUAL='code' crontab -e
crontab: no changes made to crontab

我实际上并没有期望它能起作用(没有

-w
),但为了完整性而将其包括在内。但是当我添加
-w
时它仍然失败。

$ VISUAL="code -w" crontab -e
crontab: code -w: No such file or directory
crontab: "code -w" exited with status 1

我发现引用可能有些奇怪,但单引号和以下内容都没有修复任何问题:

$ function codew() {
function> code -w "$1"
function> }
$ export VISUAL='codew'
$ crontab -e

问题似乎是 crontab 的临时文件实际上并不存在。但我该如何解决这个问题呢?如何使用 VS Code 编辑 crontab?

visual-studio-code cron
4个回答
14
投票
  1. 创建文件
    touch ~/code-wait.sh
    :
#!/bin/bash
OPTS=""
if [[ "$1" == /tmp/* ]]; then
    OPTS="-w"
fi

/usr/local/bin/code ${OPTS:-} -a "$@"
  1. 使该文件可执行:
chmod 755 ~/code-wait.sh 
  1. 添加到您的
    .bashrc
    .bash_profile
    .zshrc
export VISUAL=~/code-wait.sh
export EDITOR=~/code-wait.sh
  1. 运行命令:
EDITOR='code' crontab -e

4
投票

这里的设置适合我。

.bashrc

## vscode
export VISUAL=/path/to/code-wait.sh
export EDITOR=/path/to/code-wait.sh

代码等待.sh

#!/bin/sh
code -w $*

1
投票

这是一个相当复杂的问题,因为无法检测哪个工具调用首选编辑器。 TTY 是相同的,没有环境变量可以提供帮助。

尽管如此,我还是想出了一个解决方案,为临时文件启用前台模式(等待)。恕我直言,大多数(如果不是全部)使用外部编辑器并等待它们保存文件的工具都使用临时文件。

完整脚本位于 https://github.com/ssbarnea/harem/blob/master/bin/edit 但我将在此处包含主要片段:

#!/bin/bash
OPTS=""
if [[ "$1" == /tmp/* ]]; then
    OPTS="-w"
fi

/usr/local/bin/code ${OPTS:-} -a "$@"

0
投票

谢谢大家,对我有用,即使是在遥控器上。尽管路径不一致。我发现简单地删除路径确实有效。

#!/bin/bash
OPTS=""
if [[ "$1" == /tmp/* ]]; then
    OPTS="-w"
fi

code ${OPTS:-} -a "$@"
© www.soinside.com 2019 - 2024. All rights reserved.