Ubah editor teks default untuk crontab menjadi vim

100

Saya menggunakan ubuntu 9.10 dan editor teks default adalah nano, yang saya benci. (tidak semua orang?)

Biasanya itu bukan masalah karena saya hanya vi atau gedit semuanya tetapi crontab -eterbuka dengan nano. Saya mencoba mengubahnya ke vim menggunakan sudo update-alternatives --config editordan memilih opsi 3 ("/usr/bin/vim.basic"). Ini telah mengubahnya untuk sudo dan non-sudo. Tapi crontab -etetap buka nano. Ada ide? maks

Max Williams
sumber

Jawaban:

124

The crontab -eperintah akan memeriksa variabel lingkungan $EDITORdan $VISUALuntuk override dari editor teks default, jadi ...

export VISUAL=vim

atau

export EDITOR=vim

harus melakukan trik.

njd
sumber
6
Ingat jika Anda mengedit crontab pengguna lain, gunakan sudo -E crontab -etempat yang sudo -Editentukan menggunakan env vars Anda.
MarkHu
89

Di ubuntu, coba jalankan:, select-editoryang secara interaktif membuat ~/.selected_editor:

# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/usr/bin/vim.basic"
smintz
sumber
Saya mencoba ini (di bawah sudo dan pengguna saya) dan opsi apa pun yang saya ubah, ketika saya menyebutnya lagi itu masih di nano. Tetap memperbaikinya dengan EDITOR env var tetapi saya pikir sebaiknya saya sebutkan saja. Cheers
Max Williams
4
Jawaban di atas tidak berfungsi ... tidak.
mlissner
2
Yup, perubahan ini ~ / .sensible_editor digunakan oleh / usr / bin / sensible-editor. Tampaknya dengan tidak adanya variabel lingkungan yang menentukan editor, crontab menjalankan editor-masuk akal bukan editor karena yang pertama memungkinkan konfigurasi per-pengguna.
belut ghEEz
2
@ MaxWilliams, menjalankan select-editor tidak akan menampilkan pilihan yang dibuat sebelumnya, yang disimpan di ~ / .sensible_editor.
belut ghEEz
5
@eelghEEz - Maksud Anda ~/.selected_editor? Itulah yang ada di sistem saya dan apa yang saya lihat di tempat lain.
Wilson F
12

Jika Anda nanosangat membenci, Anda cukup mencopotnya:

sudo apt-get remove nano

crontabseharusnya hanya default ke yang berikutnya EDITOR(bagi saya itu vim.basic).

complistic
sumber
Kami menjalankan pekerjaan cron kami dengan akun pengguna super, tetapi masuk ke akun dev. Jadi dari akun dev yang perlu saya lakukan sudo crontab -e. Saya mengatur export EDITOR=vimdi super-user dan .bashrc akun dev, tetapi sudo crontab -emasih membuka di nano. Setelah menghapus instalan nano, itu membuka vim. Terima kasih!
arun
1
Ini adalah satu-satunya solusi yang berhasil untuk saya. Mencoba 4-5 hal sebelum ini :)
Charlie Wynn
Sejauh ini, ini adalah solusi terbaik jika, seperti yang disiratkan OP, Anda tidak perlu nano. Tidak yakin mengapa itu tidak terpikir oleh saya sebelumnya - mungkin saya tidak menyadari crontab hanya akan default ke editor yang tersedia berikutnya! Luar biasa
Luke
11

Dari man crontab:

Opsi -e digunakan untuk mengedit crontab saat ini menggunakan editor
ditentukan oleh variabel lingkungan VISUAL atau EDITOR. Setelah kamu
keluar dari editor, crontab yang dimodifikasi akan dipasang secara otomatis -
dihabiskan. Jika tak satu pun dari variabel lingkungan didefinisikan, maka
editor default / usr / bin / editor digunakan.

Tambahkan ke Anda ~/.bashrc:

export EDITOR=vim
cYrus
sumber
4

Pilihan yang lebih baik adalah menetapkan alternatif editor (bukan hanya satu pengguna):

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim 100
Gilles Quenot
sumber
3
Mengapa lebih baik mengubah pengaturan untuk pengguna lain, yang tidak meminta perubahan?
ceving
3
export EDITOR=vi && crontab -e 

bekerja pada pemerasan debian

Torsten Zenk
sumber
2
Sedikit penjelasan akan sangat bermanfaat.
ChrisF
3
ini menetapkan variabel lingkungan EDITOR dan kemudian mengedit file crontab, EDITOR=vim crontab -eakan berfungsi juga, tetapi hanya satu kali.
0x4a6f4672
3

Sayangnya saya tidak bisa berkomentar atau memilih.

Di Ubuntu, file konfigurasi dipanggil ~/.selected_editor

Dengan perintah berikut, Anda dapat memilih editor default lagi:

$ select-editor

Menghapus file di direktori home Anda juga berfungsi.

$ rm ~/.selected_editor

Hanya mengatur variabel $VISUALatau $EDITORakan berfungsi tetapi hanya bertahan jika Anda menulisnya ke skrip yang dijalankan di lingkungan Anda.

Tambahkan ke file rc Anda

$ echo "export VISUAL=/usr/bin/vi" >> ~/.bashrc

Tetapi saya tidak akan merekomendasikan untuk menggunakan solusi terakhir.

André
sumber
Jika Anda tidak merekomendasikannya, mengapa Anda menyediakannya?
Ramhound
Hanya untuk penyelesaian dan karena orang lain mungkin lebih suka cara itu.
André
0

Anda sebaiknya menghapus ~/.sensible_editorfile dan kemudian menjalankan crontab -eakan meminta Anda untuk memilih editor yang disukai.
Sejak saat itu preferensi Anda akan diingat dalam ~/.sensible_editorfile.

Jiju Thomas Mathew
sumber
tidak yakin mengapa ini turun sebagai apa yang saya butuhkan dan bekerja dengan sempurna.
merampok
Ubuntu sepertinya tidak tahu emacsclient.
ceving
-1

untuk Debian, gunakan:

sudo update-alternatives --config editor command

dan

 ----------------------------------------------------------
06  * 0          /bin/nano            40       
07  1            /bin/nano            40       
08  2            /usr/bin/vim.basic   30        
09  3            /usr/bin/vim.tiny    10        

pilih '2' dan tekan enter. Mengerti!

alasanpun
sumber
Selamat Datang di Pengguna Super! Silakan baca pertanyaan itu lagi dengan seksama. Jawaban Anda tidak menjawab pertanyaan awal. OP sudah mencoba ini (ada dalam pertanyaan) dan itu tidak memperbaiki masalahnya.
DavidPostill
-1

Cara termudah adalah menyingkirkan produk yang tidak Anda inginkan secara keseluruhan. Semua perubahan konfigurasi lainnya akan bersifat otomatis.

apt-get install vim -y && apt-get remove nano -y

Osiris
sumber
-1

Pada mesin lama seperti beberapa yang Debian, ini bekerja juga dan merupakan solusi yang paling portabel.

mv /usr/bin/editor /usr/bin/.editor
ln -s $(which vim) /usr/bin/editor
hlupaco
sumber
Tidak, jangan macam-macam dengan /usr/binmanual; lokasi ini dikelola oleh dpkgdan tidak boleh dimanipulasi secara langsung.
tripleee