Bash 从crontab和git commit将mvim设置为可视化编辑器

Bash 从crontab和git commit将mvim设置为可视化编辑器,bash,unix,editor,Bash,Unix,Editor,我如何将MacVim设置为git提交消息(无分叉)的可视化编辑器,并且仍然可以使用crontab编辑(无参数?),而不必手动键入“mvim/path/to/crontab文件” 我当前的可视化编辑器在My.bashrc中设置为“mvim-f”,用于获取MacVim for git提交消息。 在设置新的crontab(crontab-e)时,我得到了以下消息: crontab: no crontab for USER - using an empty one crontab: mvim -f: N

我如何将MacVim设置为git提交消息(无分叉)的可视化编辑器,并且仍然可以使用crontab编辑(无参数?),而不必手动键入“mvim/path/to/crontab文件”

我当前的可视化编辑器在My.bashrc中设置为“mvim-f”,用于获取MacVim for git提交消息。 在设置新的crontab(crontab-e)时,我得到了以下消息:

crontab: no crontab for USER - using an empty one
crontab: mvim -f: No such file or directory
crontab: "mvim -f" exited with status 1

crontab: mvim -f: No such file or directory

看起来您正在使用的特定
crontab
可执行文件不是通过shell运行编辑器,而是直接使用
exec*()
或类似调用。这意味着它不处理向它传递参数

为了检查这一点,请尝试类似于
VISUAL=mvim
——如果它是这样工作的,那么这就是问题所在。您可以创建一个包装器脚本,如
/usr/local/bin/myvim
,如下所示:

#!/bin/sh
exec mvim -f "${@}"

然后使用
VISUAL=myvim
(这可能需要是完整路径,具体取决于您的
path
设置)。

不起作用,顺便说一句,mvim已经是MacVim.app的包装器。它的源代码可以在这里找到:--值得注意的是,它是这样做的:exec“$VIM_APP_DIR/MacVim.APP/Contents/MacOS/VIM”-g$opts${1:+“$@}临时这样做的:env VISUAL=VIM crontab-e用于控制台VIM模式