Vim als Ersatz für Vi

29

Leute, weiß jemand, wie man den Linux-Konsoleneditor jedes Mal, wenn wir vi ausführen, von vi in ​​vim ändert? Ich benutze Ubuntu und Fedora Core

Funky81
quelle
2
Nur neugierig: Welches Linux dist. ist dass? Ich kann mich nicht erinnern, jemals ein altes Vi als Standard gesehen zu haben.
Brian Rasmussen
2
Tatsächlich ist es äußerst unwahrscheinlich, dass es sich um vi handelt, da dies kein FOSS-Code wäre.
Aus dem Gedächtnis geht hervor, dass einige Distributionen (ich glaube, es war RHEL) den Befehl viin VIM auf den klassischen Modus konfiguriert haben .
Seh Hui Leong
4
Warum vi ausführen, wenn Sie vim bevorzugen? export EDITOR = vim?
Tadeusz A. Kadłubowski
Arch hat außerdem standardmäßig einen "vi" -Klon anstelle von vim.
WhyNotHugo

Antworten:

34

Stellen Sie zunächst sicher, dass Sie die richtigen Vim-Pakete installiert haben. Die Standardeinstellung auf vielen Systemen ist die Installation eines minimalen Vim-Pakets, dessen Funktionalität Vi näher kommt.

Auf Red Hat-basierten Systemen (RHEL, CentOS, Fedora) benötigen Sie das vim-erweiterte Paket, zum Beispiel von einem CentOS-System, das ich installiert habe:

vim-common-7.0.109-4.el5_2.4z
vim-enhanced-7.0.109-4.el5_2.4z
vim-minimal-7.0.109-4.el5_2.4z

'common' enthält gemeinsame Bibliotheken, die von allen Vim-Paketen verwendet werden. 'minimal' ist die standardmäßig installierte ausführbare Datei des normalen vi-Editors.

Auf Debian-basierten Systemen (wie Ubuntu) benötigen Sie 'vim'. Beispielsweise:

ii  vim                  2:7.2.079-1ubuntu5  Vi IMproved - enhanced vi editor
ii  vim-common           2:7.2.079-1ubuntu5  Vi IMproved - Common files
ii  vim-runtime          2:7.2.079-1ubuntu5  Vi IMproved - Runtime files
ii  vim-tiny             2:7.2.079-1ubuntu5  Vi IMproved - enhanced vi editor - compact version

Diese sollten standardmäßig installiert sein. Unter Debian / Ubuntu können Sie den Standard-Systemeditor für alle Benutzer aktualisieren:

sudo update-alternatives --config vi

Wählen Sie die gewünschte Version aus dem Auswahlmenü. Post-Installationsskripte für das vim-Paket sollten dies jedoch bereits aktualisiert haben. Verwenden Sie --config editordiese Option , um den Standardeditor für alle Benutzer auf dem System zu ändern (der ursprüngliche Standard für Ubuntu 9.04 ist beispielsweise nano).

Richten Sie schließlich für jede Distribution einen Alias ​​im Benutzerprofil ein. Wenn die Shell beispielsweise bash ist, bearbeiten Sie ~ username / .bashrc:

alias vi="vim"

Sie können auch die System-VIMRC (normalerweise / etc / vimrc) überprüfen, um festzustellen, ob der Kompatibilitätsmodus aktiviert ist.

set cp
set compatibility

Sagt Vim, er solle sich mehr wie Vi der alten Schule verhalten, egal wie Sie mit Vim wie oben beschrieben umgegangen sind. Wechseln Sie zu 'nocp' oder 'nocompatibility', um Vim nützlicher zu machen.

jtimberman
quelle
2
In neueren Ubuntu-Versionen wird standardmäßig nur vim-tiny installiert. Installieren Sie vim, um die Vollversion zu erhalten.
Hamish Downer
28

In Ihrem .bashrc:

alias vi=vim
Al.
quelle
2
Dies hat keine Auswirkung auf alles, was bash nicht verwendet. Wenn Sie z. B. "v" in less (1) drücken, wird trotzdem das "echte" vi ausgeführt.
Kevin Panko
2
Die Umgebungsvariablen EDITORund VISUALhaben Vorrang, wenn Sie vden Standardbefehl viüberschreiben. Also, in Ihrem .bashrcExport EDITORoder VISUALmit vimals Wert; zB export EDITOR=vimund export VISUAL=vimin Ihrem.bashrc
Nitrodist
10

Wenn es sich um ein Debian- oder Ubuntu-System handelt und Sie diese Änderung systemweit vornehmen möchten, sollten Sie verwenden update-alternatives(mit den --config editorOptionen angeben , und Sie sollten golden sein)

Mauern
quelle
9

Wenn Sie die Änderungen nur für Ihre ID und innerhalb einer Terminalsitzung benötigen: Alias ​​vi bis vim, wie von AI vorgeschlagen.

Wenn Sie eine systemweite Änderung auf Ihrem Computer wünschen, führen Sie einen Softlink zu vim in / usr / local / bin aus :

sudo ln -s `which vim` /usr/local/bin/vi

Hinweis: Programme können Aliase auf vi ignorieren, indem sie command vioder \vianstelle von nur vi ausführen.

Nagul
quelle
3

Einige Benutzer verwenden den Old-School-Modus von vim: s, in dem es sich wie vi verhält.

Überprüfen Sie, ob Ihre .vimrc enthält

set nocompatible

Das hat mich ein paarmal reingelegt ...

Johan
quelle
1

Wenn Sie auf Debian-Systemen das Standard-vim-tiny als 'vi' ausführen, wird eine andere RC-Datei verwendet - /etc/vim/vimrc.tiny.

Bearbeiten Sie /etc/vim/vimrc.tiny und ändern Sie die Zeile, damit 'vi' mehr wie 'vim' wirkt:

set compatible

lesen:

set nocompatible

quelle
0

Ich habe es .profileauf mit :

if [ -f "/usr/bin/vim" ];
 alias vi="vim"
else
 alias vim="vi"
fi

export EDITOR=vim

Also, immer da, sei es ordentlich oder als .


quelle
0

Wenn Sie Fisch verwenden , geben Sie die folgende Zeile ein ~/.config/fish/config.fish:

alias vi="vim"
Zhang Buzz
quelle