例如,如果我输入,:im它会输出一长串插入模式映射的消息。
i <Plug>(fzf-maps-i) * <C-O>:call fzf#vim#maps('i', 0)<CR>
Run Code Online (Sandbox Code Playgroud)
用于i插入模式。
:help <Plug>表示您将其用于“不与任何键序列匹配的内部映射”。这有什么用?如果您设法按下不可按的组合键,它会打开:Maps终端缓冲区吗?除了这种特定情况之外,为什么要绑定不可按下的绑定?
接下来,我们有*. 它指的是什么?:helpgrep star或者:helpgrep *让我失望。
接下来我们有这一行:
i <Plug>(fzf-complete-file-ag) * fzf#vim#complete#path('ag -l -g ""')
Run Code Online (Sandbox Code Playgroud)
为什么上面的第一行使用*然后仍然使用,<C-O>:call ... <CR>而这一行只提到函数名称?
<Plug>[...] 这有什么用?如果您设法按下不可按的组合键,它会打开:Maps终端缓冲区吗?
这是一个不可按下的组合键。这并不意味着它不能生成。如果您查看 fzf.vim 的文档,您将看到一个相关映射的示例,用户可以将其插入到他们的.vimrc:
nmap <leader><tab> <plug>(fzf-maps-n)
Run Code Online (Sandbox Code Playgroud)
如果用户再按下LeaderTab,就会生成<plug>(fzf-maps-n). 这个映射不是noremap,所以它会触发map <plug>(fzf-maps-n)插件定义的映射。这样,插件就会公开可映射的按键序列,但不会对用户意外触发它产生任何副作用;但如果他们愿意的话,他们仍然可以映射到它。
接下来,我们有
*
:help map-listing会告诉你*意味着它不可重新映射(inoremap即由而不是创建imap)。
为什么上面的第一行使用
*然后仍然使用,<C-O>:call ... <CR>而这一行只提到函数名称?
从列表中看不到它,但创建它的命令是:
inoremap <expr> <plug>(fzf-complete-file-ag) fzf#vim#complete#path('ag -l -g ""')
Run Code Online (Sandbox Code Playgroud)
注意<expr>修饰符。:help :map-<expr>
| 归档时间: |
|
| 查看次数: |
306 次 |
| 最近记录: |