首页 > 解决方案 > 在函数内部复制vim中的映射

问题描述

假设我有以下映射:

nnoremap <leader>fgr :<C-u>CocCommand fzf-preview.ProjectGrep<Space>

现在,假设我不想直接CocCommand在我的映射内部调用,而是想要一个函数并在我的函数内部做同样的事情。

function! MyFunc()
  " what should be here?
endfunction

nnoremap <leader>fgr :call Myfunc()<CR>

有什么办法可以做到这一点?映射中的关键部分是<Space>,我不知道如何在MyFunc上面做

我想这样做的原因是我已经开始使用vim-which-key,它不允许将字典映射的定义放在<space>里面,例如:

let g:which_key_mapp = {}
let g:which_key_map['f'] = {
\ 'name': '+fzf',
\ 'g': [ 'call to a function here', 'project grep' ],
\ }

我知道我可以定义我的映射,然后配置which-key为“指向”该映射,但我想知道是否可以在函数内完成所有事情

标签: vimneovim

解决方案


您不会调用该函数。您只需输入几个字符。

nnoremap <expr><leader>fgr MyFunc()
function! MyFunc() abort
    return ":SomeCommand  SomeArg "
endfunction

推荐阅读