Вопрос или проблема
Я настраиваю новый сервер.
Когда я использую стандартные права пользователя, vi имеет правильную подсветку синтаксиса.
Когда я использую права root (с префиксом sudo или в оболочке root (sudo -s)), первый символ каждой строки и начальные пробелы окрашиваются в грязно-желтый цвет:
Это происходит независимо от типа файла.
Как мне от этого избавиться?
Спасибо/с уважением,
rund
vim загружает свои настройки из домашнего каталога ($HOME
); если вы запускаете что-то через sudo
, это может не соответствовать вашим ожиданиям, в зависимости от того, точно как вы вызываете vim и как настроен sudo
.
Ответ или решение
Когда вы используете vim
с правами суперпользователя (root), вы можете заметить, что первый символ и ведущие пробелы каждого ряда отображаются с грязным желтым фоном. Это поведение может быть связано с несколькими факторами, которые я опишу ниже.
1. Различие в конфигурации
При запуске vim
от имени стандартного пользователя он загружает настройки из вашего домашнего каталога ($HOME
). Эти настройки могут включать в себя правила подсветки синтаксиса и другие параметры, которые могут не применяться, когда вы работаете под root
.
Когда вы запускаете vim
с помощью sudo
, он может использовать настройки конфигурации из домашнего каталога пользователя root (/root
), который может не иметь тех же конфигураций, что и ваш обычный пользователь.
2. Файлы конфигурации и пути
Проверьте наличие файлов конфигурации vim
:
~/.vimrc
— основной файл конфигурации пользователя./root/.vimrc
— файл конфигурации для пользователя root.
Если файл для root отсутствует, vim
может использовать настройki по умолчанию, которые могут не включать необходимую подсветку синтаксиса или могут появляться с неправильными параметрами.
3. Настройки sudo
Как sudo
обрабатывает переменные окружения также может повлиять на ваше окружение. По умолчанию sudo
сбрасывает многие переменные окружения, чтобы повысить безопасность. Это может включать HOME
, что, в свою очередь, приводит к использованию файла конфигурации vim
из каталога root.
Решения
Проверьте настройки для root
Для решения проблемы сначала проверьте, есть ли файл .vimrc
в домашнем каталоге root. Если файла нет, вы можете создать его и скопировать ваши настройки из вашего пользовательского .vimrc
. Это можно сделать следующим образом:
- Откройте терминал.
- Запустите
sudo -s
для входа в командную оболочку под root. - Создайте или измените файл
.vimrc
:cp /path/to/your/home/.vimrc /root/.vimrc
Переопределение переменных окружения
Если необходимо сохранить свои настройки или пропустить загрузку конфигураций из каталога root, можно использовать переменные окружения. Например, можно использовать команду:
sudo HOME=$HOME vim имя_файла
Это позволит vim
использовать вашу структуру каталогов и соответственно ваши настройки.
Анализирование теста стиля
Если проблема сохраняется, возможно, стоит протестировать, присутствует ли проблема и на других системах. Попробуйте создать минимальный файл vimrc
для root и отследить изменения.
Обратите внимание на режимы работы vim
Проверьте, не существует ли проблемы с режимами работы vim
во время работы с разными правами. Если необходимые плагины или синтаксис отсутствуют, это может также отразиться на отображении.
Завершение
Очистка vim
от грязного желтого фона — это обычно вопрос правильной настройки конфигурационных файлов. Верное соответствие настроек для всех пользователей, в том числе root, и правильная работа переменных окружения позволят устранить это поведение. Важно провести тестирование на наличие ошибок или конфликтов, чтобы понять причину появления этого артефакта.