Можно ли сопоставить выполнение нормальной команды? - PullRequest
0 голосов
/ 11 февраля 2019

Появляется следующая команда для вызова нужной функции.

:execute "normal \<Plug>VimwikiAddHeaderLevel<CR>"

Однако размещение ее в отображении может вызвать проблемы.

:nmap <buffer> = execute "normal \<Plug>VimwikiAddHeaderLevel<CR>"

Вот вывод, когда я печатаю =.

E114: Missing quote: "normal \<Plug>VimwikiAddHeaderLevel
E15: Invalid expression: "normal \<Plug>VimwikiAddHeaderLevel

Существует ли какой-то особый синтаксис, который позволил бы мне выполнить это отображение?

1 Ответ

0 голосов
/ 12 февраля 2019
  • Вы не входите в режим командной строки (для :execute) из отображения нормальный режим ;: отсутствует.
  • <Plug> и <CR> уже оценены отображением;двойные кавычки не защищают их.<CR> передает (неполное, поскольку Vim не видел завершающую ") командную строку, и это вызывает E114.
  • После экранирования < как <lt>, выдля завершения команды :execute нужен еще <CR>.
:nmap <buffer> = :execute "normal \<lt>Plug>VimwikiAddHeaderLevel\<lt>CR>"<CR>

Как я уже отмечал в вашем другом вопросе , вам необходим цикл :for, еслиВы действительно хотите обойти неудачу плагина принять счет.Хотя было бы возможно сделать все это встроенным в правой части отображения, настоятельно рекомендуется разделить цикл на отдельный :function, именно для того, чтобы избежать таких проблем с экранированием.Внутри функции вызов плагина является простым

:execute "normal \<Plug>VimwikiAddHeaderLevel"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...