为 Vim 到 terminal/command-line 执行 `<Plug>` 映射作为启动参数

Execute `<Plug>` map for Vim through terminal/command-line, as startup arguments

我每天都在使用 vimwiki,一个 Vim 的插件;我想知道我是否可以通过 terminal/command-line 参数触发它的 <Plug> 映射“<Plug>VimwikiMakeDiaryNote”?我发现特定命令定义如下:

command! -count=1 VimwikiMakeDiaryNote
  \ call vimwiki#diary#make_note(v:count1)

<Plug> 映射定义为:

if !hasmapto('<Plug>VimwikiMakeDiaryNote')
 exe 'nmap <silent><unique> '.g:vimwiki_map_prefix.'<Leader>w <Plug>VimwikiMakeDiaryNote'
endif
nnoremap <unique><script> <Plug>VimwikiMakeDiaryNote :VimwikiMakeDiaryNote<CR>

有没有办法通过 terminal/command-line 触发 command/mapping VimwikiMakeDiaryNote,通过传递 某物 作为 Vim 的参数?

非常感谢!

祝一切顺利,

-临风

也许,最简单的方法是测试环境变量,例如:

if !empty($VIM_WIKI)
  " Your mappings...
endif

如果 VIM_WIKI 环境变量不为空,将应用映射:

VIM_WIKI=1 vim file

由于<Plug>-映射只是调用同名命令,直接调用命令最简单。您可以使用 -c {command}+{command} 选项执行任意 Ex 命令:

$ vim +VimwikiMakeDiaryNote

在 Windows 和 Linux OS

上采用

在 Windows 上:使用 AutoHotKey

Win+i 将启动 Gvim,或循环所有现有的 Gvim 实例。

#i::
IfWinExist ahk_class Vim
    groupactivate, VIM, r
else
    run C:\Vim\vim80\gvim.exe, +VimwikiMakeDiaryNote, max
return
+#i:: run C:\Vim\vim80\gvim.exe +VimwikiMakeDiaryNote, , max

在 Linux

将以下条目添加到 ~/.bashrc

alias v='vim +VimwikiMakeDiaryNote'