Ersetzen Sie Vi weltweit durch Vim auf Fedora

8

Auf Debian-basierten Systemen behandelt das alternative System sowohl die vials auch die vimausführbare Datei. Wenn vimalso installiert ist und Sie ausführen vi, erhalten Sie auch vim, was ich sehr schön finde, weil ich Klassiker absolut hasse vi.

Bei Fedora 17 "Beefy Miracle" behandelt das alternative System offensichtlich keines der beiden. Es gibt jedoch eine Profildatei, in /etc/profile.d/vim.shder ein Shell-Alias ​​hinzugefügt wird, der viausgeführt werden soll vim. Aus irgendeinem Grund ist dies für Systembenutzer, einschließlich root, nicht der Fall.

Aber selbst wenn ich manuell einen Alias ​​für alle Benutzer einrichte, starte ich beim Aufrufen stattdessen sudo viklassisch . Dies liegt wahrscheinlich daran, dass sudo keine Shell startet oder Profildateien nur in interaktiven Shell-Sitzungen ausgeführt werden.vivim

Was ich jetzt suche, ist eine Möglichkeit, classic vivollständig zu deinstallieren , um einen Symlink zu erstellen, der sogar Systemaktualisierungen überlebt. Wie kann ich Classic entfernen, viaber nicht vimauf Fedora 17? Oder gibt es noch einen besseren Weg?

Update : Mit habe yum provides viich herausgefunden, dass vidas Paket zur Verfügung stellt vim-minimal. Aber ich kann es nicht einfach entfernen, weil es das Paket damit automatisch entfernt sudo. Auch wenn ich es entferne und danach erneut zu installieren versuche sudo, vim-minimalwird es dann wieder als Abhängigkeit installiert.

Update : Wie gewünscht, Ausgabe von rpm -qf /usr/bin/vi:

vim-minimal-7.3.444-1.fc17.x86_64

Und ls -l /usr/bin/vi:

-rwxr-xr-x. 1 root root 782248 13. Feb 2012  /usr/bin/vi
aef
quelle
rm /usr/bin/vi; ln -s /usr/bin/vim /usr/bin/vi. Keine Antwort, weil ich persönlich einen besseren Weg finden würde (oder vim eingeben, wenn ich vim wollte).
Jordan
@jordanm Ich habe genau das gemeint, als ich darum gebeten habe, dass ein Symlink ein Update überlebt. Wie stellen Sie sicher, dass der Link beim vim-minimalAktualisieren des Pakets nicht überschrieben wird?
Aef
Ist /usr/bin/viein Symlink (zu was) oder eine reguläre Datei auf Fedora? Wenn eine reguläre Datei, aus welchem ​​Paket?
Gilles 'SO - hör auf böse zu sein'
@ Gilles Ich verstehe deine Frage nicht.
Aef
Veröffentlichen Sie die Ausgabe von ls -l /usr/bin/viund rpm -qf /usr/bin/vi.
Gilles 'SO - hör auf böse zu sein'

Antworten:

6

Sie visind Vim, werden jedoch als aufgerufen vi, sodass der historische Kompatibilitätsmodus aktiviert wird. Die empfohlene Aktion lautet: Wenn Sie Vim und nicht vi ausführen möchten, führen Sie vimund nicht aus vi. Wenn Sie viVim jedoch immer für jedes Konto auf dem System ausführen möchten , überschreiben Sie es in /usr/local/bin:

cat >/usr/local/bin/vi <<\EOF
#!/bin/sh
exec /usr/bin/vim "$@"
EOF
chmod 755 /usr/local/bin/vi
Gilles 'SO - hör auf böse zu sein'
quelle
Das ist eigentlich eine sehr schöne Idee.
Aef
2
Es funktioniert sogar, indem Sie einfach einen Symlink mit erstellen sudo ln -s /usr/bin/vim /usr/local/bin/vi. Sie müssen jedoch ganz /usr/local/binlinks in der Defaults secure_path="…"Konfiguration hinzufügen visudo, da sonst der Symlink nicht gefunden wird.
Aef
Ich denke, hier gibt es einige Tippfehler in der Syntax. Meinten Sie cat >/usr/local/bin/vi(nicht cat >/usr/local/bin)? Meinten Sie chmod 755 /usr/local/bin/vi(nicht .../vim)?
DW
Um es mit dem Standardpfad von root aufzunehmen, erstellen Sie den Symlink unter /usr/local/sbin/vi.
Hackel
5

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

llua
quelle
Und wird das nicht gelöscht, wenn das vim-minimalPaket aktualisiert wird?
Aef
Einen Alias ​​zu erstellen .bashrcist eine gute Übung ... für mich gab @llua eine gute Antwort
maniat1k
0

Zu Ihrer Information, Fedora (mindestens seit 18) installiert diesen Alias ​​gobally in /etc/profile.deinmal vim-enchancedinstalliert.

akostadinov
quelle