Решено: vim и подсветка синтаксиса (У рута в виме слишком тёмная подсветка)

и другие vi-подобные редакторы

Модератор: /dev/random

Ответить
Programmaster
Сообщения: 22

Решено: vim и подсветка синтаксиса

Сообщение Programmaster »

С недавних пор пытаюсь освоить vim. Пока что все препятствия, с которыми столкнулся, удачно преодолел, но вот попалось какое-то непреодолимое :)

Собственно проблема: когда запускаешь vim от рута, подсветка синтаксиса слишком тёмная (извините за каламбур).
Выглядит это так:
vim
Изображение

sudo vim
Изображение

Система у меня Debian GNU/Linux Lenny, подключены репозитории testing и unstable, но vim ставился из Lenny.
Что именно установлено:

Код: Выделить всё

$ aptitude search vim | grep ^i
i   vim                             - Vi IMproved - редактор vi с расширенной фу
i   vim-common                      - общие файлы для Vi IMproved
i A vim-runtime                     - файлы времени выполнения Vi IMproved
i   vim-tiny                        - улучшенный редактор vi (компактная версия)

Что пробовал делать:
  • sudo aptitude reinstall vim{,-tiny,-runtime,-common}
  • PS1="" vim (и то же через sudo)
  • копировать .vimrc (раньше у рута его не было, но создание конфа, идентичного моему, ничего не поменяло)
  • копировать .bashrc
  • :set background=light (понятия не имею, что это :D — на vim@conference.jabber.ru посоветовали)
  • были подозрения касательно шелла, но и root, и я используем /bin/bash

Думаю, понятно, что успехом ни одна попытка не увенчалась — иначе я не писал бы этот пост.

Есть подозрения, что виноваты терминал или шрифт (использую urxvt с DejaVu Sans Mono 14, вызываемый следующим образом: urxvt -fn "xft:DejaVu Sans Mono:pixelsize=14" -rv) — в XTerm (с умолчальным шрифтом) проблема не наблюдается (если запускать как xterm -fa "DejaVu Sans Mono", проблема имеет место быть).

Какие будут соображения?
Спасибо сказали:
mikluxo
Сообщения: 283
ОС: Slackware 12.2
Контактная информация:

Re: Решено: vim и подсветка синтаксиса

Сообщение mikluxo »

:help highlight
или
найти тему для вима, которая понравится, загрузить в ~/.vim/colorscheme/
а в ~/.vimrc добавить строчку
colorscheme nameofscheme
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Спасибо сказали:
Programmaster
Сообщения: 22

Re: Решено: vim и подсветка синтаксиса

Сообщение Programmaster »

mikluxo, спасибо за ответ!

Help полистал, испугался, пошёл по второму пути :)

Нашёл превосходную тему advantage (скачать; другие темы с того же сайта).

Оказалось, ты немного ошибся — тему надо ложить в ~/.vim/colors/, а не ~/.vim/colorscheme/ (по крайней мере, у меня второй вариант не работал). Я же сделал вообще иначе — разместил тему в /usr/share/vim/vim71/colors/ — оттуда она доступна любому пользователю (пока лежала в ~/.vim/colors/, была доступна при vim и sudo vim, но не при su && vim).

Спасибо ещё раз.

Тему можно закрывать.
Спасибо сказали:
Programmaster
Сообщения: 22

Re: Решено: vim и подсветка синтаксиса

Сообщение Programmaster »

Да, вот ещё случайно наткнулся:

Код: Выделить всё

:set background=dark
Мне на vim@conference.jabber.org советовали light, потому что думали, что у меня консоль со светлым фоном — но нет, у меня чёрный фон. А так как вим от рута по дефолту считал, что консоль белая, он автоматически менял подсветку и :set background=light было для него пустым звоном — команда просит сделать то, что уже сделано.
Если же делать dark, т.е. принудительно объяснить виму, что консоль тёмная, то всё окей.
Если хочется такого эфекта без ввода команд руками, в ~/.vimrc добавляем:

Код: Выделить всё

set background=dark
(спёрто отсюда)
Спасибо сказали:
mikluxo
Сообщения: 283
ОС: Slackware 12.2
Контактная информация:

Re: Решено: vim и подсветка синтаксиса

Сообщение mikluxo »

Programmaster писал(а):
03.03.2009 13:32
Оказалось, ты немного ошибся — тему надо ложить в ~/.vim/colors/, а не ~/.vim/colorscheme/

Мой косяк, только что проверил, точно colors.
Кстати по виму есть уже тема(так на всякий случай, может там чего нового найдете)
Тонкая настройка vim
Ich weiss, dass ich nichts weiss, aber wissen Sie es auch?
Завистники на что не взглянут,
подымут вечно лай,
А ты себе своей дорогою ступай,
Полают, да отстанут. Крылов
Спасибо сказали:
Programmaster
Сообщения: 22

Re: Решено: vim и подсветка синтаксиса

Сообщение Programmaster »

(mikluxo) писал(а):Кстати по виму есть уже тема(так на всякий случай, может там чего нового найдете)

Угу, есть. Я даже на неё ссылался (слово «отсюда» в моём предыдущем посте ведёт именно туда). Тема действительно стоящая — выстроил на основе тамошних советов неплохой .vimrc, работать стало комфортнее.
Спасибо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Решено: vim и подсветка синтаксиса

Сообщение sash-kan »

Programmaster писал(а):
02.03.2009 21:50
Какие будут соображения?

соображение: для правки файлов, недоступных для записи рядовому пользователю, использовать sudoedit. настроив предварительно sudoers с помощью visudo.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Programmaster
Сообщения: 22

Re: Решено: vim и подсветка синтаксиса

Сообщение Programmaster »

Спасибо.
Сейчас ради эксперимента убрал из .vimrc (/root/.vimrc — символическая ссылка на мой .vimrc) строки с set background=dark и colorscheme, запустил sudoedit — отображается правильно, подсветка светлая, как и положено. Это особая магия или как?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: Решено: vim и подсветка синтаксиса

Сообщение sash-kan »

при выполнении sudoedit <файл>:
<файл> копируется в /tmp c временным именем.
после этого запускается редактор _от_вашего_имени_ для редактирования этого временного файла.
после завершения работы редактора программа sudoedit проверяет, изменился ли временный файл.
если изменился, копирует временный файл в исходный <файл>.

visudo делает примерно то же самое в отношении файла /etc/sudoers. только ещё прежде чем перезаписывать оригинальный файл, производит синтаксическую проверку исправленного варианта. и если проверка не прошла, он сообщит вам об этом и спросит, что делать дальше.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Programmaster
Сообщения: 22

Re: Решено: vim и подсветка синтаксиса

Сообщение Programmaster »

Понятно. Ситуацию с отключенными set background=dark и colorscheme это не прояснило :), но все равно спасибо за информацию — любопытно.
Спасибо сказали:
Ответить