답변:
문제는 Vim이 파일을 쓰는 방법입니다. 기본적으로 파일의 복사본을 만들고 원본을 덮어 씁니다.
다음을 통해이를 확인할 수 있습니다.
# Show the file's inode
$ ls -i a
3156153 a
# Open file in Vim, :wq
# inode changed!
$ ls -i a
3155322 a
crontab
이것으로 혼란스러워합니다 (참조 :help crontab
)
당신은 사용해야 :set backupcopy
하기 위해 yes
원본 파일, 덮어 쓰기 빔을 만들기 위해 :
"yes" make a copy of the file and overwrite the original one
다음을 사용하여 crontab 파일에 대해 자동으로이를 수행 할 수 있습니다.
au FileType crontab setlocal bkc=yes
@Martin의 자체 답변이 정확합니다. 그러나 때때로 예외를 제외 하고 vimrc
파일 채우기를 제한하려고하는 나와 같은 사람들에게는 변형이 있습니다. 여기서 crontab을 편집하는 것은 모델을 사용하는 것입니다. 이를 통해 예외를 대상 파일에 직접 배치 할 수 있습니다.
아래는 내 crontab 모델입니다.
# vim: nu et tw=130 ts=8 sts=4 sw=4 ff=unix fo-=l fo+=tcroq2 bkc=yes
여기서 중요한 것은 bkc=yes
@Martin의 vimrc
구성 과 일치하는 것 입니다. 나머지는 개인 편의 설정입니다.
이것은 완전성과 생각을위한 음식에 대해 말했다. @Martin의 초기 답변은 대부분의 경우에 가장 적합합니다.
OSX에서도 마찬가지입니다. 문제를 조사한 후 문제가 일반 vi
에서는 작동 하지만 작동하지 않는 것으로 나타났습니다 vim
.
따라서 수정 사항은 다음과 같습니다.
EDITOR=vi crontab -e
그러나 vi
일반적으로 vim
(예를 들어 OSX에서) 연결되어 있으므로 동일합니다.
vimrc 파일 에서 다음 줄로 해결할 수 있습니다 .
au BufNewFile,BufRead crontab.* set nobackup | set nowritebackup
.vimrc 파일에 다음 행을 추가하여이를위한 또 다른 해결 방법이 있습니다.
if $VIM_NOBACKUP
set nobackup
set nowritebackup
endif
명령을 실행하십시오.
VIM_NOBACKUP=1 crontab -e
다음 변수를 정의 할 수도 있습니다.
EDITOR='VIM_NOBACKUP=1 vim'
출처 : crontab : 임시 파일을 편집해야합니다.
이 무슨 일이 일어나고있는 이유는 방식과 관련이있다 vim
/ vi
취급 백업 파일.
crontab -e
를 생성 crontab: VIM_NOBACKUP=1 vim: No such file or directory
합니다.
crontab
일반적으로EDITOR
또는 값VISUAL
(정의 된 경우)을 올리 므로 다음과 같이 설정할 수 있습니다EDITOR='VIM_NOBACKUP=1 vim'
.