Vim statusline: показать самого персонажа

Есть ли способ показать символ под курсором в строке состояния?

Я уже пользуюсь %b\ (0x%B) для отображения десятичного и шестнадцатеричного значения символа. Я хотел бы показать сам символ перед этими двумя.

1 ответ

Решение

Там нет предопределенного элемента (как указано в :help 'statusline', но вы можете реализовать это с помощью специального выражения (элемент %{...}):

let &statusline .= "%{matchstr(getline('.'), '\\%' . col('.') . 'c.')}"

(Я использую :let вместо :set чтобы избежать необходимости покинуть все пространства; так читается лучше.)

getline('.') получает текущую строку, а символ под курсором извлекается через специальный \%c атом, совпадающий с определенным столбцом; col('.') текущий столбец. . затем соответствует персонажу там, и matchstr() извлекает это.

Другие вопросы по тегам