Моя цель - выбрать несколько слов в визуальном режиме Vim (ну, в моем случае, neovim), нажать лидер + L и позволить fzf
показывать результаты поиска для выбранной строки через :Rg
. Я пришел с этим:
vnoremap <expr> <leader>l 'y:<C-U>Rg '. shellescape(escape('<C-R>"', '()[]><')) .'<CR>'
, который работает, но когда я выбираю текст options(:modifier)
и запускаю поиск, команда escape()
не выходит за скобки и Rg
не удается вернуть результаты.
Короче говоря, я ожидаю, что эта команда будет запускаться:
:Rg 'options\(:modifier\)'
И вместо этого я получаю:
:Rg 'options(:modifier)'
Я думаю, я не могу использовать <C-R>
в этом контексте, но я не могу понять, почему?
ОБНОВЛЕНИЕ : благодаря полезному ответу пользователя D. Бен Нобл , указывающий, что я могу бросить и построить отображение по-другому, я закончил с этим, решая мою проблему:
vnoremap <leader>l "ky:exec 'Rg '. shellescape(escape(@k, '()[]{}?.'))<CR>