说,我有以下内容
:nm <Plug>Ls :ls<CR>
:nm <Leader>L <Plug>Ls
Run Code Online (Sandbox Code Playgroud)
当我做,L(,作为领导者)时,我确实获得了:ls命令的输出.当我这样做时:normal ,L,我也得到了输出,但是在执行以下操作时我没有
:normal <Leader>L
:normal <Plug>Ls
Run Code Online (Sandbox Code Playgroud)
我能理解为什么第一个不起作用,我想我必须做一些事情execute 'normal ' . mapleader . 'L'.我无法弄清楚的是第二个.它没有给我任何错误,它只是没有做任何事情,这是让我发疯的原因.我在文档中找不到任何相关内容.
我想要做的是<Plug>Ls从命令模式(实际上在一个函数中)运行映射到的任何内容.这需要黑暗的黑客吗?
ZyX*_*ZyX 11
他们有正常的工作,你只是不提供它<Plug>,您提供的<,P,l,u,g,>.正确的语法是
:execute "normal \<Plug>Ls"
Run Code Online (Sandbox Code Playgroud)
同样适用于feedkeys():call feedkeys("\<Plug>Ls")不是call feedkeys("<Plug>Ls").
另请注意,执行后execute "normal ".mapleader."L"不应该像使用mapleader更改一样:nm <Leader>L <Plug>Ls,这:execute …将尝试调用不存在的映射(mapleader更改不会影响已创建的映射).你没有办法知道是否mapleader有所改变.
| 归档时间: |
|
| 查看次数: |
2609 次 |
| 最近记录: |