Можно использовать $ синтаксиса {variable:offset:length} для получения частей переменных как это:
if [[ ${filemsgCICS:0:4} = "&red" || ${filemsgCICSU1:0:4} = "&red" || \
${snufmsgCICS:0:4} = "&red" || ${snufmsgCICSU1:0:4} = "&red" ]]; then
Править: Мой комментарий о * не соответствие [[]] был неправильным. Ваш метод должен был работать также, если переменные содержат текст как ожидалось. Таким образом, это - просто альтернативный путь.
Проблема в том, что каждая команда :match
перекрывает шаблон предыдущей; они не являются кумулятивными! Поэтому существуют варианты :2match
и :3match
. Используйте один из них:
highlight ExtraWhitespace ctermbg=darkred guibg=#382424
match ExtraWhitespace /\s\+$/
highlight OverLength ctermbg=red guibg=#525252
2match OverLength /\%81v.\+/
Дополнительные варианты можно создать функцией matchadd()
Vimscript.
'colorcolumn'
, которая включает подсветку столбца(ов). ~/.vimrc
работает только для самого первого окна; т.е. :split
создаст окно, в котором не будет этих подсветки. Это можно исправить с помощью autocmds (или с помощью опции 'colorcolumn'
). Возможно, ваша цветовая схема перекрыла вашу конфигурацию. Вы можете добавить эти строки в конце .vimrc
, чтобы предотвратить переопределение, или просто добавить эти строки в Ваш .vimrc
:
" Highlight trailing white spaces
highlight ExtraWhitespace ctermbg=darkred guibg=#382424
match ExtraWhitespace /\s\+$/
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
" Highlight long lines
highlight OverLength ctermbg=green ctermfg=white guibg=#592929
match OverLength /\%81v.\+/
autocmd BufWinEnter * match OverLength /\%81v.\+/
autocmd InsertEnter * match OverLength /\%81v.\+/
autocmd InsertLeave * match OverLength /\%81v.\+/
autocmd BufWinLeave * call clearmatches()