Есть ли способ определить, было ли выделение выделено в Vim? - PullRequest
2 голосов
/ 22 августа 2010

Для подключаемого модуля типа файла я хотел бы определить и использовать имя пользовательской подсветки по умолчанию, например:

hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow

Однако я хотел бы разрешить пользователям определять свои собственные предпочтения по отношению кпо умолчанию, поэтому сделать что-то вроде:

if <somehow or other check if 'CsvColumn' has NOT been defined>
    hi CsvColumn guifg=black guibg=NavajoWhite ctermfg=black ctermbg=yellow
fi

Есть ли способ сделать это?

Так как это в плагине filetype, он выполняется один раз при каждой загрузке или чтении буфера, так что, вероятно, существует большая вероятность, что он будет получен после того, как пользователь '.vimrc' был получен, поэтому любое определение, предоставленное пользователем там или в схеме цветов, будет переопределено, если я не выполню проверку.

1 Ответ

3 голосов
/ 22 августа 2010

Для этого есть функция, которая называется hlexists({name}):

Результатом является Число, которое ненулевое, если существует группа выделения с именем {имя}. Это когда группа была определена каким-то образом. Не обязательно, когда для него определено выделение, возможно, оно также использовалось для элемента синтаксиса.

Итак, ваш код будет:

if hlexists('CsvColumn')
    hi ...
fi
...