ben*_*ben 3 vim cron highlighting
我想弄清楚为什么我在编辑我的 crontab 时没有语法高亮。
我有两个$EDITOR
并$VISUAL
设置为/usr/bin/vim
:
> echo $EDITOR
/usr/bin/vim
> echo $VISUAL
/usr/bin/vim
Run Code Online (Sandbox Code Playgroud)
如果我将 crontab 保存到文件并使用 vim 语法突出显示进行编辑,则启用。
> crontab -l > saved_cronab
> /usr/bin/vim saved_crontab
Run Code Online (Sandbox Code Playgroud)
如果我:syntax on
在编辑 crotab 时使用,则没有任何变化
使用 编辑 crontab 时如何启用突出显示crontab -e
?
vim 不知道,您的文件 saved_crontab 是一个 crontab。因此,您不会获得 crontab 的特殊语法突出显示。将文件类型设置为 crontab 对我有用。我用了:
:set ft=crontab
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令查看文件类型的值:
:set ft?
Run Code Online (Sandbox Code Playgroud)
小智 5
您是否导出了这些变量 ( export EDITOR VISUAL
)?
恕我直言,接受的答案解释得很差,所以这里有更多东西可以帮助人们解决这个问题。
\n我仍然不明白为什么crontab
拒绝选择指定的编辑器
sudo update-alternatives --config editor\n
Run Code Online (Sandbox Code Playgroud)\n就我而言:
\n\n\n替代编辑器有 4 个选择(提供 /usr/bin/editor)。
\nRun Code Online (Sandbox Code Playgroud)\nSelection Path Priority Status\n------------------------------------------------------------\n 0 /bin/nano 40 auto mode\n 1 /bin/ed -100 manual mode\n 2 /bin/nano 40 manual mode\n* 3 /usr/bin/vim.basic 30 manual mode\n 4 /usr/bin/vim.tiny 10 manual mode\n
事实上,一切都正确地指向 vim.basic:
\n\n\nRun Code Online (Sandbox Code Playgroud)\n#> ll /usr/bin/editor\nlrwxrwxrwx 1 root root 24 Oct 20 2014 /usr/bin/editor -> /etc/alternatives/editor\n\n#> ll /etc/alternatives/editor\nlrwxrwxrwx 1 root root 18 Jun 20 2016 /etc/alternatives/editor -> /usr/bin/vim.basic\n\n#> ll /usr/bin/vim.basic\n-rwxr-xr-x 1 root root 2.4M Nov 24 2016 /usr/bin/vim.basic\n\n#> ll /usr/bin/vim\nlrwxrwxrwx 1 root root 21 Oct 20 2014 /usr/bin/vim -> /etc/alternatives/vim\n
但crontab
还是不在乎。因此,正如dsznajder正确指出的那样,解决方案是通过环境变量明确告诉crontab
它$EDITOR
是什么。
可以export
通过.bashrc
or来实现.profile
,但考虑到这crontab
是唯一需要忽略的/etc/alternatives/
别名,我更愿意为他创建一个别名,以使他感到需要自定义别名才能工作的耻辱(就像 for 一样dmesg -T
)。
alias crontab=\'EDITOR=vim crontab\'\n
Run Code Online (Sandbox Code Playgroud)\n就这样,修复了 \xe2\x9c\x94 :)
\n