Что такое возвращаемое значение для режима визуального блока в vimscript? - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь отобразить текущий режим vim в строке состояния, отображая возвращаемое значение функции mode с помощью словаря:

let g:modeMap={
    \ 'n'      : 'Normal',
    \ 'i'      : 'Insert',
    \ 'R'      : 'Replace',
              ...
    \ 'v'      : 'Visual',
    \ 'V'      : 'Visual Line',
    \ '\<C-V>' : 'Visual Block'
    \}

set laststatus=2
set statusline=%{g:modeMap[mode()]}

Работает хорошо почти во всех режимах, однако выдает следующее сообщение об ошибке при переключении в режим визуального блока:

E716: Key not present in Dictionary: ^V 

Я также пробовал строку <\C-V> найдено здесь , CTRL-V найдено здесь и ^V, которое было записано в сообщении об ошибке, но ни один из них не был правильный.

Протестировано с версиями:

  • Vim 7.4, Ubuntu 16.04
  • Vim 8.1, Debian 9

1 Ответ

4 голосов
/ 23 мая 2019

'\<C-V>' - это буквальная строка в VimL.

Для замены необходимо использовать двойные кавычки: "\<C-V>".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...