crontab
FreeBSD'deki dosyaları nasıl düzenlerim ?
$ crontab -e
# ... I do my thing in vim & :wq
"crontab.9ZcXiFaawt" 6L, 203C written
crontab: temp file must be edited in place
Exit 1
İyi EDITOR=nvi
çalışıyor ... Linux da iyi çalışıyor ...
crontab
FreeBSD'deki dosyaları nasıl düzenlerim ?
$ crontab -e
# ... I do my thing in vim & :wq
"crontab.9ZcXiFaawt" 6L, 203C written
crontab: temp file must be edited in place
Exit 1
İyi EDITOR=nvi
çalışıyor ... Linux da iyi çalışıyor ...
Yanıtlar:
Sorun Vim'in dosyaları nasıl yazdığıdır. Varsayılan olarak, dosyanın bir kopyasını oluşturur ve orijinal dosyanın üzerine yazar.
Bunu aşağıdakilerle gözlemleyebilirsiniz:
# Show the file's inode
$ ls -i a
3156153 a
# Open file in Vim, :wq
# inode changed!
$ ls -i a
3155322 a
crontab
bununla karışır (bkz. :help crontab
)
Sen kullanmanız gerekir :set backupcopy
için yes
orijinal dosya üzerine yazma Vim yapmak:
"yes" make a copy of the file and overwrite the original one
Bunu crontab dosyaları için otomatik olarak aşağıdakilerle yapabilirsiniz:
au FileType crontab setlocal bkc=yes
@ Martin'in cevapları doğrudur. Yine de, benim gibi, vimrc
dosyalarını ara sıra istisnalarla doldurmaya çalışan insanlar için bir varyasyon - burada bir crontab düzenlemek, model kullanmaktır. Bu, istisnaların doğrudan hedef dosyaya yerleştirilmesine izin verir.
Aşağıda crontab modelin var:
# vim: nu et tw=130 ts=8 sts=4 sw=4 ff=unix fo-=l fo+=tcroq2 bkc=yes
Burada önemli bkc=yes
olan, @ Martin'in vimrc
yapılandırmasıyla eşleşen . Geri kalanı kişisel rahatlık ayarlarıdır.
Bu, bütünlük ve düşünce için yiyecek için, @ Martin'in ilk cevabı vakaların çoğunda en yeterli olanıdır.
Aynı hata değil, aynı zamanda oldukça sık:
Error detected while processing /root/.vimrc:
line 2:
E319: Sorry, the command is not available in this version: syntax enable
line 7:
...
Eğer crontab vi
yerine kullanıyorsanız bu hata görünecektir vim
. ~/.bashrc
Dosyanıza aşağıdaki kodu ekleyerek crontab düzenleyicisini ayarlamanız gerekir :
export EDITOR=vim
Aynı şey OSX için de geçerlidir. Sorunu araştırdıktan sonra, düz ile çalıştığını gördüm vi
, ancak işe yaramadı vim
.
Yani düzeltme olabilir:
EDITOR=vi crontab -e
Ancak vi
genellikle vim
(örn. OSX'te) ile bağlantılıdır, bu yüzden aynı şeydir.
Bu, vimrc dosyanızdaki aşağıdaki satırla çözülebilir :
au BufNewFile,BufRead crontab.* set nobackup | set nowritebackup
Bunun için aşağıdaki satırları .vimrc dosyasına ekleyerek başka bir geçici çözüm vardır :
if $VIM_NOBACKUP
set nobackup
set nowritebackup
endif
ve şu komutu çalıştırın:
VIM_NOBACKUP=1 crontab -e
Aşağıdaki değişkeni de tanımlamayı deneyebilirsiniz:
EDITOR='VIM_NOBACKUP=1 vim'
Kaynak: crontab: temp dosyası yerinde düzenlenmelidir
Bunun olmasının nedeni , yedekleme dosyalarının yolu vim
/ vi
davranışı ile ilgilidir.
crontab -e
üretir crontab: VIM_NOBACKUP=1 vim: No such file or directory
.
crontab
tipik değerini kaldırırEDITOR
veyaVISUAL
(o tanımlanmış ise), bunları ayarlayabilirsiniz:EDITOR='VIM_NOBACKUP=1 vim'
.