vim-tw / ama

Helping vimmer in Taiwan with any questions.
https://github.com/vim-tw/ama/issues
16 stars 1 forks source link

在 Mac OS X 10.11.5 無法儲存 crontab #12

Closed chusiang closed 8 years ago

chusiang commented 8 years ago

凍仁在 Mac OS X 10.11.5 底下要編輯 crontab 時,一直遇到以下的問題,爬文後得知跟 vim 的環境設定有關。

$ crontab -e
crontab: temp file must be edited in place
chusiang commented 8 years ago

參照 osx - Error adding cronjobs in Mac OS X Lion - Super User 一文修改即可正常在 macOS 編輯 crontab。

  1. Add to .bashrc

    $ vi ~/.bashrc
    ...
    alias crontab="VIM_CRONTAB=true crontab"
  2. Add to .vimrc

    $ vi ~/.vimrc
    ...
    if $VIM_CRONTAB == "true"
     set nobackup
     set nowritebackup
    endif
chusiang commented 8 years ago

參照 osx - Error adding cronjobs in Mac OS X Lion - Super User 直接於 .vimrc 加入底下這行設定也可解決。

$ vim ~/.vimrc
autocmd filetype crontab setlocal nobackup nowritebackup
goldie-lin commented 8 years ago

@chusiang:

也許可以直接把那兩個 options 利用 vim modeline 特性寫在 crontab 文件裡的第一行或最後一行?我這邊環境無法重現此問題XD,不確定有沒有用。

範例:

# vim: set nobackup nowritebackup:

我通常偏好放最後一行,第一行預留給 script 的 shebang 之類的用。

chusiang commented 8 years ago

可能跟我後來把很多環境都使用 vi mode 有關,先前不會有這個問題的 … (詳情可以參考 Ansible Role: vim-and-vi-mode)。

$ cat /etc/bashrc
...
set -o vi
export EDITOR=vim
$ cat /etc/inputrc
...
set editing-mode vi
$ cat /etc/gitconfig
...
[core]
    editor = vim

# - Color my git.
[color]
    branch = auto
    diff = auto
    log = auto
    status = auto
    ui = auto

# Diff with vimdiff.
[diff]
    external = git_diff_wrapper

[pager]
    diff =