Чому Vim активує мою конфігурацію підсвітки лише після того, як я вручну надсилаю .vimrc вручну?


4

Я сьогодні прибирав свій vimrc , розділяючи його на окремі файли, щоб полегшити його обслуговування. Після завершення цих змін всі мої конфігурації, відображення та плагіни, здається, працюють, за винятком виділення пробілів пробігу.

У мене є такі рядки у .vim / rc / external.vim:

highlight RedundantSpaces term=standout ctermbg=red guibg=red
match RedundantSpaces /\s\+$\| \+\ze\t/ "\ze sets end of match so only spaces highlighted

Як я розумію, перший рядок створює групу виділення "RedundantSpaces" і вказує vim зробити фон будь-якого тексту, що відповідає групі виділення, червоним, коли знаходиться на кольоровому терміналі. Другий рядок визначає шаблон, який використовується для ідентифікації тексту, що відповідає групі виділення.

Коли я відкриваю файл у vim і починаю вводити пробіли в порожньому рядку, вони не виділяються червоним кольором. Якщо я біжу :source ~/.vimrc, з’являється виділення.

Якщо я видаляю рядки з усіх моїх окремих rc/*.vimфайлів .vimrcі ввожу безпосередньо вказані вище два RedundantSpacesрядки .vimrc, vim поводиться так, як очікувалося, і виділяється пробіл пробілів.

Однак якщо я залишу рядки рядків rc/*.vim, а потім матиму RedundantSpacesрядки в кінці мого .vimrc(тобто ці команди останні, які запускаються, коли викликається vim), виділення все ще не працює, і мені потрібно source ~/.vimrc.

Здається зрозуміло, що щось у моїх rc/*.vimфайлах погано взаємодіє з конфігурацією виділення, однак я не в змозі пояснити, що це таке. Жоден із цих файлів не повинен взаємодіяти з конфігурацією виділення.

Хтось може підказати, що може піти не так?


Ви .vimrcтакож не знаходитесь у сховищі ./rc.local/. Перевірте, чи встановлено будь-яке guioptionsпісля пошуку appearance.
Руніум

@Sukminder rc.local свідомо не існує в сховищі; це для речей, які я хочу налаштувати, які не повинні контролювати версії. .vimrc називається 'vimrc' у корені каталогу, який я пов’язав. Я залишаю слід. вимкнено, щоб файл не був прихований; Я створюю посилання, коли я його фактично встановлюю.
Муралі Суріар

ГАРАЗД. Дякую за пояснення. Має сенс зараз;)
Runium

Відповіді:


2

Проблема викликана розумним плагіном: рядок 93 .:help t_Co

" Allow color schemes to do bright colors without forcing bold.
if &t_Co == 8 && $TERM !~# '^linux'
  set t_Co=16  " << --- Causes hickup
endif

Якщо ви запускаєте vim у режимі багатослівного журналу ( vim -V15load_log.vim) - і шукаєте, t_Co=і RedundantSpacesви побачите, що sensibleнасправді аналізується після вашого appearance.vimфайлу.

Швидке виправлення полягає в тому, щоб або прокоментувати цей розділ коду і додати його до свого .vimrc, але, як ви посилаєтесь на сховища git, можливо, це не те, що ви хочете.

Інший підхід повинен були б перемістити його з bundleкаталогу і додати його в якості окремої sourceрядки в вашому vimrc, перед тим вашому циклі Глоби.

Тобто:

  source ~/.vim/hacks/vim-sensible/plugin/sensible.vim

  for f in split(glob ...

Іншим способом було б завантаження спеціальної підсвітки на BufLoad.

І т.д. ...


Відмінно, дякую. Отже, моє наступне запитання - чому розбірливий сенсорний.вім після мого глобального циклу? Чи означає це, що будь-які плагіни, якими керує патоген, насправді встановлюються після обробки мого .vimrc?
Муралі Суріар

Гарне питання. Я не придивлявся до глибокої pathogenта завантаженої рутини. Це може бути і послідовність завантаження самого vim. Найкраще ставитись до роботи з різними багатослівними рівнями та переглядати журнали тощо Або спробуйте налагодити тест.
Руніум

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.