Ich verstehe nicht, wie ich Syntax-Hervorhebungen in Dateien zulassen kann, die ich mit sudo über vi bearbeite . Bei mir ist sudo vi <filename>
das Terminal nur schwarzweiß von meinen Terminaleinstellungen. In vi :syntax on
ändert sich nichts, wenn ich etwas eingebe.
Wenn ich vi <filename>
alle Syntax richtig gefärbt ist. Unter RHEL 5.4, relevante Umgebung:
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;
33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;
32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;
32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;
31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;
31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;
35:*.png=01;35:*.tif=01;35:
SHELL=/bin/bash
TERM=xterm-color
vi
unterstützt keine Farben, daher läuft alles, was Farbe anzeigt,vim
oder ähnliches.Antworten:
Die Antwort von Larks ist wahrscheinlich die wahrscheinlichste. Möglicherweise möchten Sie Ihre Root-Konten vi nicht dauerhaft in vim ändern, da die Funktionsfähigkeit Ihrer Ressourcen fast immer gewährleistet ist. Bei vim bin ich mir nicht sicher.
Sie verwenden wahrscheinlich (Farbe)
unter Ihrem normalen Benutzer und
unter sudo oder root. Sie können Folgendes überprüfen:
einmal unter deinem normalen benutzer und das andere über sudo
Mach ein
Wenn Sie weitere Informationen benötigen
quelle
Auf einem RHEL-System
/bin/vi
handelt es sich normalerweise um eine Minimalversionvim
ohne Unterstützung für Syntaxhervorhebungen./usr/bin/vim
ist der voll funktionsfähige Editor. Es ist sehr wahrscheinlich, dass in Ihrer Benutzerumgebungvi
ein Alias fürvim
. Versuche dies:Bekommen Sie jetzt Syntax-Hervorhebung?
quelle
Sie stammen
vi
wahrscheinlich/bin/vi
aus einem Paket,vim-minimal
das keine Syntaxhervorhebung unterstützt.sudo vi
startet/bin/vi
für Sie.Bash erweitert nur das erste Wort in Ihrer Befehlszeile um einen Alias.
vi
wird auch dann nicht ersetzt,vim
wenn Sie diesen Alias definiert haben.Die Lösung besteht darin, einen anderen Alias (für den aufrufenden Benutzer
sudo
) zu definieren:Beachten Sie das Leerzeichen nach dem zweiten
sudo
.Mit diesem
sudo
Befehl führt bash eine Alias-Erweiterung fürvi
in durchsudo vi
. In deralias
Sektion von Bash doc heißt es:Nachdem Sie Ihren Befehl eingeben, können Sie drücken Ctrl+ Alt+ Ein
bash
den Ausbau Ergebnis zu sehen.Credits:
https://bbs.archlinux.org/viewtopic.php?id=36796
http://www.shellperson.net/ using-sudo-with-an-alias
Aliasing einfach
vi
in/root/.bashrc
nicht funktionieren.Es kann auch angemerkt werden, dass
vi
in einigen Distributionen in /etc/profile.d/vim.sh kein Alias für root vorliegt:Wenn Sie dies ändern, wird das Problem ebenfalls nicht behoben.
quelle
Standardmäßig ist in 5.4 vi Standard. Ich vergesse, in welcher Version das gestartet wurde. Dadurch wird der erforderliche Alias für Sie hinzugefügt:
quelle
ich habe festgestellt, dass in meiner version von vim (install with
sudo apt-get install vim
on debian 7) dersyntax on
befehl auf benutzerbasis in definiert ist~/.vimrc
. Die Installation hat jedoch standardmäßig keine/root/.vimrc
Dateisudo vi
zum Laden erstellt. Also habe ich einfach~/.vimrc
in das/root/
Verzeichnis kopiert und das hat den Trick gemacht:sudo cp ~/.vimrc /root/
quelle
Dies liegt daran, dass Ihr Root-Benutzer keine vim-Konfigurationsdatei hat. Kopieren Sie einfach Ihre Standard-Benutzer-VIM-Konfigurationsdatei in das Stammverzeichnis.
sudo cp -r ~/.vi* /root/
sowas in der Art.nb: überprüfe, ob du keine datei hast,
~/vi*
die nicht für vim ist.quelle
1) Überprüfe, ob du wirklich vim und nicht vi verwendest (was leider häufig bei frisch installierten Systemen der Fall ist)
2) Vergewissern Sie sich, dass Sie
/etc/vim/vimrc
die Leitung habensyntax on
3) Nicht für alle Arten von Dateien sind standardmäßig Informationen zur Syntaxhervorhebung verfügbar ....
quelle
Probieren Sie diese Befehle aus, wenn Sie noch Hilfe suchen.
sudovi = which sudo vi
usrvi = which vi
Andernfalls...
mv $sudovi $sudovi.save
ln -s $usrvi $sudovi
(symbolischer Link)quelle