No entiendo cómo permitir el resaltado de sintaxis en los archivos que estoy editando a través de vi cuando uso sudo. Cuando sudo vi <filename>
el terminal es solo blanco y negro de mis configuraciones de terminal. En vi si entro :syntax on
nada cambia.
Cuando vi <filename>
toda la sintaxis está coloreada correctamente. Usando RHEL 5.4, env relevante:
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
no admite color, por lo que todo lo que muestra color se está ejecutandovim
o es similar.Respuestas:
La respuesta de Larks es probablemente la más probable. Es posible que no desee cambiar sus cuentas raíz vi a vim de forma permanente, ya que si sus recursos son bajos vi, casi siempre garantiza que funcione, no estoy tan seguro de vim.
Probablemente estés usando (color)
bajo su usuario normal y
bajo sudo o root. Puede verificar usando:
una vez debajo de su usuario normal y la otra a través de sudo
Hacer un
si necesitas mas detalles
fuente
En un sistema RHEL,
/bin/vi
es típicamente una versión mínima devim
, sin ningún soporte de resaltado de sintaxis./usr/bin/vim
es el editor con todas las funciones. Es muy probable que en su entorno de usuario,vi
sea un alias paravim
. Prueba esto:¿Obtiene resaltado de sintaxis ahora?
fuente
Su
vi
es probablemente/bin/vi
de paquetevim-minimal
que no soporta resaltado de sintaxis.sudo vi
lanza/bin/vi
para ti.Bash solo hace expansión de alias en la primera palabra en su línea de comando, así que en:
vi
no se sustituyevim
incluso si tiene ese alias definido.La solución es definir otro alias (para el usuario que invoca
sudo
):Tenga en cuenta el espacio después del segundo
sudo
.Usando esto
sudo
, bash hará una expansión de alias paravi
insudo vi
. En laalias
sección de Bash doc dice:Después de introducir el comando, puede pulsar Ctrl+ Alt+ Een
bash
ver el resultado de expansión.Créditos
https://bbs.archlinux.org/viewtopic.php?id=36796
http://www.shellperson.net/using-sudo-with-an-alias
Simplemente aliasing
vi
en/root/.bashrc
no funcionará.También puede notarse que
vi
no tiene alias para root en algunas distribuciones en /etc/profile.d/vim.sh:Cambiar esto tampoco resolverá el problema.
fuente
Por defecto en 5.4 vi es por defecto. Olvidé en qué versión comenzó. Esto agregará el alias necesario para ti:
fuente
descubrí que en mi versión de vim (instalar con
sudo apt-get install vim
debian 7) elsyntax on
comando se define por usuario en~/.vimrc
. sin embargo, de manera predeterminada, la instalación no creó un/root/.vimrc
archivo parasudo vi
cargar. así que simplemente copié~/.vimrc
en el/root/
directorio y esto hizo el truco:sudo cp ~/.vimrc /root/
fuente
Esto se debe a que su usuario root no tiene el archivo de configuración vim. así que simplemente copie su archivo de configuración vim de usuario estándar en el directorio raíz.
sudo cp -r ~/.vi* /root/
algo como eso.nb: compruebe si el archivo no corresponde al
~/vi*
que no es para vim.fuente
1) Verifique si realmente está usando vim y no vi (que desafortunadamente es el predeterminado por lo general en sistemas instalados recientemente)
2) Verifique que
/etc/vim/vimrc
tenga la líneasyntax on
3) No todos los tipos de archivos tienen información de resaltado de sintaxis disponible de forma predeterminada ...
fuente
Para aquellos que todavía buscan ayuda, pruebe estos comandos.
sudovi = which sudo vi
usrvi = which vi
De otra manera...
mv $sudovi $sudovi.save
ln -s $usrvi $sudovi
(enlace simbólico)fuente