Ganti secara global Vi dengan Vim di Fedora

8

Pada sistem berbasis Debian sistem alternatif menangani keduanya vidan vimdapat dieksekusi. Jadi jika vimdiinstal dan Anda jalankan vi, Anda juga mendapatkan vim, yang menurut saya sangat bagus, karena saya benar-benar benci klasik vi.

Pada Fedora 17 "Beefy Miracle", sistem alternatif jelas tidak menangani keduanya. Tetapi ada file profil di /etc/profile.d/vim.shmana menambahkan shell alias untuk melakukan vieksekusi vim. Untuk beberapa alasan tidak melakukannya untuk pengguna sistem, termasuk root.

Tetapi bahkan jika saya mengatur alias untuk semua pengguna secara manual, ketika saya menelepon sudo visaya mulai klasik vibukan vim. Itu mungkin karena sudo tidak memulai shell atau file profil hanya dieksekusi dalam sesi shell interaktif.

Apa yang saya cari sekarang adalah cara untuk menghapus klasik visepenuhnya untuk membuat symlink yang bahkan selamat dari pembaruan sistem. Bagaimana saya menghapus klasik vitetapi tidak vimpada Fedora 17? Atau bahkan ada cara yang lebih baik?

Pembaruan : Dengan yum provides visaya mengetahui bahwa vidisediakan oleh paket vim-minimal. Tapi saya tidak bisa begitu saja menghapusnya karena secara otomatis menghapus paket sudodengannya. Bahkan jika saya benar-benar menghapusnya, dan mencoba menginstal sudolagi setelah itu, vim-minimalkemudian diinstal lagi sebagai ketergantungan.

Pembaruan : Seperti yang diminta, output dari rpm -qf /usr/bin/vi:

vim-minimal-7.3.444-1.fc17.x86_64

Dan ls -l /usr/bin/vi:

-rwxr-xr-x. 1 root root 782248 13. Feb 2012  /usr/bin/vi
aef
sumber
rm /usr/bin/vi; ln -s /usr/bin/vim /usr/bin/vi. Bukan jawaban karena saya pribadi akan menemukan cara yang lebih baik (atau ketik vim jika saya ingin vim).
jordanm
@jordanm maksud saya persis seperti ini ketika saya diminta untuk membuat symlink bertahan dari pembaruan. Bagaimana Anda memastikan tautan tidak ditimpa ketika vim-minimalpaket diperbarui?
aef
Apakah /usr/bin/visymlink (untuk apa) atau file biasa di Fedora? Jika file biasa, dari paket apa?
Gilles 'SANGAT berhenti menjadi jahat'
@ Gilles Saya tidak mengerti pertanyaan Anda.
aef
Poskan output dari ls -l /usr/bin/vidan rpm -qf /usr/bin/vi.
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

6

Anda viadalah Vim, tetapi dipanggil sebagai vi, sehingga memasuki mode kompatibilitas historis. Tindakan yang disarankan adalah jika Anda ingin menjalankan Vim dan tidak vi, jalankan vimdan tidak vi. Namun, jika Anda ingin viselalu menjalankan Vim di setiap akun di sistem, timpa di /usr/local/bin:

cat >/usr/local/bin/vi <<\EOF
#!/bin/sh
exec /usr/bin/vim "$@"
EOF
chmod 755 /usr/local/bin/vi
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Itu sebenarnya ide yang sangat bagus.
aef
2
Ia bahkan bekerja hanya dengan membuat symlink dengan sudo ln -s /usr/bin/vim /usr/local/bin/vi. Tetapi Anda harus menambahkan /usr/local/binke sisi paling kiri dari Defaults secure_path="…"konfigurasi di visudo, kalau tidak symlink tidak akan ditemukan.
aef
Saya pikir ada beberapa kesalahan ketik dalam sintaks di sini. Apakah maksud Anda cat >/usr/local/bin/vi(tidak cat >/usr/local/bin)? Apakah maksud Anda chmod 755 /usr/local/bin/vi(tidak .../vim)?
DW
Untuk mengambilnya dengan PATH default root, buat symlink di /usr/local/sbin/vi.
retas
5

# echo 'alias vi="vim"' >> /etc/bashrc' atau # alternatives --install /usr/bin/vi vi /usr/bin/vim 900

llua
sumber
Dan bukankah itu terhapus ketika vim-minimalpaket diperbarui?
aef
buat alias di .bashrcadalah praktik yang baik ... bagi saya @ llua memberikan jawaban yang bagus
maniat1k
0

FYI fedora baru-baru ini (setidaknya sejak 18) menginstal alias secara global /etc/profile.dsekaligus vim-enchanceddiinstal.

akostadinov
sumber