Toàn cầu thay thế Vi bằng Vim trên Fedora


8

Trên các hệ thống dựa trên Debian, hệ thống thay thế xử lý cả thực thi vivimthực thi. Vì vậy, nếu vimđược cài đặt và bạn thực thi vi, bạn cũng nhận được vim, điều mà tôi thấy rất hay, bởi vì tôi hoàn toàn ghét cổ điển vi.

Trên Fedora 17 "Beefy Miracle", hệ thống thay thế rõ ràng không xử lý được cả hai. Nhưng có một tệp hồ sơ trong /etc/profile.d/vim.shđó thêm một bí danh shell để thực vihiện vim. Vì một số lý do, nó không làm điều đó cho người dùng hệ thống, bao gồm cả root.

Nhưng ngay cả khi tôi thiết lập bí danh cho tất cả người dùng theo cách thủ công, khi tôi gọi sudo vitôi sẽ bắt đầu cổ điển vithay vì vim. Điều đó có thể là do sudo không khởi động tệp shell hoặc tệp hồ sơ chỉ được thực hiện trong các phiên shell tương tác.

Những gì tôi đang tìm kiếm bây giờ là một cách để gỡ cài đặt vihoàn toàn cổ điển để tạo một liên kết tượng trưng thậm chí còn tồn tại trong các bản cập nhật hệ thống. Làm cách nào để xóa cổ điển vinhưng không phải vimtrên Fedora 17? Hoặc thậm chí có một cách tốt hơn?

Cập nhật : Với yum provides vitôi phát hiện ra rằng viđược cung cấp bởi gói vim-minimal. Nhưng tôi không thể đơn giản gỡ bỏ nó vì nó tự động loại bỏ gói sudovới nó. Ngay cả khi tôi gỡ bỏ nó và cố gắng cài đặt sudolại sau đó, vim-minimalthì nó lại được cài đặt làm phụ thuộc.

Cập nhật : Theo yêu cầu, đầu ra của rpm -qf /usr/bin/vi:

vim-minimal-7.3.444-1.fc17.x86_64

ls -l /usr/bin/vi:

-rwxr-xr-x. 1 root root 782248 13. Feb 2012  /usr/bin/vi

rm /usr/bin/vi; ln -s /usr/bin/vim /usr/bin/vi. Không phải là một câu trả lời bởi vì cá nhân tôi sẽ tìm một cách tốt hơn (hoặc gõ vim nếu tôi muốn vim).
jordanm

@jordanm Ý tôi là chính xác điều này khi tôi yêu cầu tạo một symlink tồn tại một bản cập nhật. Làm thế nào để bạn đảm bảo liên kết không bị ghi đè khi vim-minimalgói được cập nhật?
aef

/usr/bin/vimột liên kết tượng trưng (đến cái gì) hoặc một tệp thông thường trên Fedora? Nếu một tập tin thường xuyên, từ gói nào?
Gilles 'SO- ngừng trở nên xấu xa'

@Gilles Tôi không hiểu câu hỏi của bạn.
aef

Đăng đầu ra của ls -l /usr/bin/virpm -qf /usr/bin/vi.
Gilles 'SO- ngừng trở nên xấu xa'

Câu trả lời:


6

Của bạn vilà Vim, nhưng được gọi là vi, vì vậy nó vào chế độ tương thích lịch sử. Hành động được đề xuất là nếu bạn muốn chạy Vim và không vi, hãy chạy vimvà không vi. Tuy nhiên, nếu bạn muốn viluôn chạy Vim trên mọi tài khoản trên hệ thống, hãy ghi đè lên /usr/local/bin:

cat >/usr/local/bin/vi <<\EOF
#!/bin/sh
exec /usr/bin/vim "$@"
EOF
chmod 755 /usr/local/bin/vi

Đó thực sự là một ý tưởng rất hay.
AEF

2
Nó thậm chí hoạt động bằng cách đơn giản là tạo một liên kết tượng trưng với sudo ln -s /usr/bin/vim /usr/local/bin/vi. Nhưng bạn phải thêm /usr/local/binvào phía bên trái của Defaults secure_path="…"cấu hình visudo, nếu không thì không tìm thấy liên kết tượng trưng.
AEF

Tôi nghĩ rằng có một số lỗi chính tả trong cú pháp ở đây. Ý bạn là cat >/usr/local/bin/vi(không cat >/usr/local/bin)? Ý bạn là chmod 755 /usr/local/bin/vi(không .../vim)?
DW

Để chọn nó với PATH mặc định của root, hãy tạo liên kết tượng trưng tại /usr/local/sbin/vi.
hackel

5

# echo 'alias vi="vim"' >> /etc/bashrc' hoặc là # alternatives --install /usr/bin/vi vi /usr/bin/vim 900


Và không bị xóa khi vim-minimalgói được cập nhật?
AEF

tạo một bí danh trên .bashrclà một ý tưởng tốt ... với tôi @llua đã đưa ra một câu trả lời hay
maniat1k

0

FedI gần đây của FYI (ít nhất là từ 18) cài đặt bí danh trong /etc/profile.dmột lần vim-enchancedđược cài đặt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.