Настройки vimrc применяются не при запуске, а только после поиска - PullRequest
0 голосов
/ 04 мая 2018

У меня есть эти строки в моем файле vimrc:

set concealcursor=n
set conceallevel=3
hi AsteriskBold ctermfg=Green cterm=bold
syn match Asterisks contained "**" conceal
syn match AsteriskBold "\*\*[^*]\+\*\*" contains=Asterisks

они применяются, если я открываю новый файл в vim, но если я открываю уже существующий файл, он не работает до запуска: source ~ / .vimrc

другие настройки, однако, применяются правильно, мне не нужно их искать:

set directory=~/.vim/swapfiles//
colo torte
set tabstop=2
set autoindent
set number

Я не понимаю, почему? Я предполагаю, что они перезаписываются другими настройками vim, но не, если это новый файл, и я не знаю, как найти, где настройки переопределяют их?

для примера, если я бегу

touch test.txt

echo hello > test.txt

echo \*\*world\*\* >> test.txt

vim test.txt

получаю

1 привет

2 * * world * *

~

~

~

теперь, если я запускаю :verbose set conceallevel, выводится conceallevel=3 last modification in ~/.vimrc

если тогда я бегу :source ~/.vimrc я получаю

1 привет

2 мир

~

~

~

и если я запустлю снова :verbose set conceallevel, он все равно выдаст conceallevel=3 last modification in ~/.vimrc

все это делается для файлов .txt, но если я попробую использовать файлы .js, все будет работать точно так же. тем не менее, мои настройки не применяются к HTML-файлу, но мне все равно

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

наконец то, что работает, было так:

set concealcursor=n
set conceallevel=3
hi AsteriskBold ctermfg=Green cterm=bold
autocmd BufEnter * syn match Asterisks contained "**" conceal
autocmd BufEnter * syn match AsteriskBold "\*\*[^*]\+\*\*" contains=Asterisks

потому что, если я напишу autocmd ColorScheme * hi AsteriskBold ctermfg=Green cterm=bold, это не сработает событие после поиска файла; не знаю почему ...

0 голосов
/ 04 мая 2018

Скорее всего, ваша цветовая группа AsteriskBold очищается вашей цветовой схемой (для подтверждения введите команду :hi AsterisksBold). Например, из первых нескольких строк цветовой схемы default (расположена в :e $VIMRUNTIME/color/default.vim):

" Remove all existing highlighting and set the defaults.
hi clear 

Это очистит существующие группы подсветки, включая AsteriskBold. Возможное решение - активировать настройки подсветки с помощью автоматических команд:

autocmd ColorScheme * hi AsteriskBold ctermfg=Green cterm=bold                     
autocmd BufEnter * syn match Asterisks contained "**" conceal                   
autocmd BufEnter * syn match AsteriskBold "\*\*[^*]\+\*\*" contains=Asterisks   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...