Auf Debian-basierten Systemen behandelt das alternative System sowohl die vi
als auch die vim
ausführbare Datei. Wenn vim
also 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.sh
der ein Shell-Alias hinzugefügt wird, der vi
ausgefü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 vi
klassisch . Dies liegt wahrscheinlich daran, dass sudo keine Shell startet oder Profildateien nur in interaktiven Shell-Sitzungen ausgeführt werden.vi
vim
Was ich jetzt suche, ist eine Möglichkeit, classic vi
vollständig zu deinstallieren , um einen Symlink zu erstellen, der sogar Systemaktualisierungen überlebt. Wie kann ich Classic entfernen, vi
aber nicht vim
auf Fedora 17? Oder gibt es noch einen besseren Weg?
Update : Mit habe yum provides vi
ich herausgefunden, dass vi
das 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-minimal
wird 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
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).vim-minimal
Aktualisieren des Pakets nicht überschrieben wird?/usr/bin/vi
ein Symlink (zu was) oder eine reguläre Datei auf Fedora? Wenn eine reguläre Datei, aus welchem Paket?ls -l /usr/bin/vi
undrpm -qf /usr/bin/vi
.Antworten:
Sie
vi
sind Vim, werden jedoch als aufgerufenvi
, sodass der historische Kompatibilitätsmodus aktiviert wird. Die empfohlene Aktion lautet: Wenn Sie Vim und nicht vi ausführen möchten, führen Sievim
und nicht ausvi
. Wenn Sievi
Vim jedoch immer für jedes Konto auf dem System ausführen möchten , überschreiben Sie es in/usr/local/bin
:quelle
sudo ln -s /usr/bin/vim /usr/local/bin/vi
. Sie müssen jedoch ganz/usr/local/bin
links in derDefaults secure_path="…"
Konfiguration hinzufügenvisudo
, da sonst der Symlink nicht gefunden wird.cat >/usr/local/bin/vi
(nichtcat >/usr/local/bin
)? Meinten Siechmod 755 /usr/local/bin/vi
(nicht.../vim
)?/usr/local/sbin/vi
.# echo 'alias vi="vim"' >> /etc/bashrc'
oder# alternatives --install /usr/bin/vi vi /usr/bin/vim 900
quelle
vim-minimal
Paket aktualisiert wird?.bashrc
ist eine gute Übung ... für mich gab @llua eine gute AntwortZu Ihrer Information, Fedora (mindestens seit 18) installiert diesen Alias gobally in
/etc/profile.d
einmalvim-enchanced
installiert.quelle