通过终端/命令行为Vim执行`<plug>`map,作为启动参数

时间:2016-11-04 03:15:09

标签: vim macvim vim-plugin

我每天都在使用vimwiki,一个Vim的插件;我想知道我是否可以触发<Plug>映射&#34; <Plug>VimwikiMakeDiaryNote&#34;通过终端/命令行参数?我发现特定的命令定义如下:

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>

有没有办法通过终端/命令行触发命令/映射VimwikiMakeDiaryNote,通过传递某些作为Vim的参数?

非常感谢!

一切顺利,

-Linfeng

2 个答案:

答案 0 :(得分:1)

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

$ vim +VimwikiMakeDiaryNote

采用Windows&amp; 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'

答案 1 :(得分:0)

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

java.util.NoSuchElementException: key not found: m
    at scala.collection.MapLike$class.default(MapLike.scala:228)
    at scala.collection.AbstractMap.default(Map.scala:58)
    at scala.collection.MapLike$class.apply(MapLike.scala:141)
    at scala.collection.AbstractMap.apply(Map.scala:58)
    at sbt.complete.Parser$Value.map(Parser.scala:161)
    at sbt.complete.MapParser.resultEmpty$lzycompute(Parser.scala:704)
    at sbt.complete.MapParser.resultEmpty(Parser.scala:704)
    at sbt.complete.BindParser.derive(Parser.scala:694)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.ParserSeq$$anonfun$derive$6.apply(Parser.scala:676)
    at sbt.complete.ParserSeq$$anonfun$derive$6.apply(Parser.scala:676)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbt.complete.ParserSeq.derive(Parser.scala:676)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.MapParser.derive(Parser.scala:705)
    at sbt.complete.ParserMain$class.derive1(Parser.scala:454)
    at sbt.complete.Parser$.derive1(Parser.scala:135)
    at sbt.complete.ParserMain$$anonfun$apply$9.apply(Parser.scala:450)
    at sbt.complete.ParserMain$$anonfun$apply$9.apply(Parser.scala:450)
    at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:51)
    at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:60)
    at scala.collection.immutable.StringOps.foldLeft(StringOps.scala:31)
    at scala.collection.TraversableOnce$class.$div$colon(TraversableOnce.scala:138)
    at scala.collection.immutable.StringOps.$div$colon(StringOps.scala:31)
    at sbt.complete.ParserMain$class.apply(Parser.scala:450)
    at sbt.complete.Parser$.apply(Parser.scala:135)
    at sbt.complete.ParserMain$class.completions(Parser.scala:464)
    at sbt.complete.Parser$.completions(Parser.scala:135)
    at sbt.complete.JLineCompletion$$anonfun$parserAsCompletor$1.apply(JLineCompletion.scala:52)
    at sbt.complete.JLineCompletion$$anonfun$parserAsCompletor$1.apply(JLineCompletion.scala:52)
    at sbt.complete.JLineCompletion$$anonfun$customCompletor$1$$anonfun$2.apply(JLineCompletion.scala:75)
    at sbt.complete.JLineCompletion$$anonfun$customCompletor$1$$anonfun$2.apply(JLineCompletion.scala:75)
    at sbt.complete.JLineCompletion$.complete(JLineCompletion.scala:94)
    at sbt.complete.JLineCompletion$$anonfun$customCompletor$1.apply(JLineCompletion.scala:75)
    at sbt.complete.JLineCompletion$$anonfun$customCompletor$1.apply(JLineCompletion.scala:74)
    at sbt.complete.JLineCompletion$CustomHandler.complete(JLineCompletion.scala:30)
    at jline.console.ConsoleReader.complete(ConsoleReader.java:3311)
    at jline.console.ConsoleReader.readLine(ConsoleReader.java:2646)
    at jline.console.ConsoleReader.readLine(ConsoleReader.java:2372)
    at jline.console.ConsoleReader.readLine(ConsoleReader.java:2360)
    at sbt.JLine.sbt$JLine$$readLineDirectRaw(LineReader.scala:42)
    at sbt.JLine$$anonfun$readLineDirect$2.apply(LineReader.scala:34)
    at sbt.JLine$$anonfun$readLineDirect$2.apply(LineReader.scala:34)
    at sbt.Signals0.withHandler(Signal.scala:81)
    at sbt.Signals$.withHandler(Signal.scala:11)
    at sbt.JLine.readLineDirect(LineReader.scala:34)
    at sbt.JLine.readLineWithHistory(LineReader.scala:27)
    at sbt.JLine.sbt$JLine$$unsynchronizedReadLine(LineReader.scala:19)
    at sbt.JLine$$anonfun$readLine$1.apply(LineReader.scala:16)
    at sbt.JLine$$anonfun$readLine$1.apply(LineReader.scala:16)
    at sbt.JLine$$anonfun$withJLine$1.apply(LineReader.scala:117)
    at sbt.JLine$$anonfun$withJLine$1.apply(LineReader.scala:115)
    at sbt.JLine$.withTerminal(LineReader.scala:89)
    at sbt.JLine$.withJLine(LineReader.scala:115)
    at sbt.JLine.readLine(LineReader.scala:16)
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:185)
    at sbt.BasicCommands$$anonfun$shell$1.apply(BasicCommands.scala:181)
    at sbt.Command$$anonfun$command$1$$anonfun$apply$1.apply(Command.scala:30)
    at sbt.Command$$anonfun$command$1$$anonfun$apply$1.apply(Command.scala:30)
    at sbt.Command$.process(Command.scala:93)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
    at sbt.MainLoop$$anonfun$1$$anonfun$apply$1.apply(MainLoop.scala:96)
    at sbt.State$$anon$1.process(State.scala:184)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
    at sbt.MainLoop$$anonfun$1.apply(MainLoop.scala:96)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
    at sbt.MainLoop$.next(MainLoop.scala:96)
    at sbt.MainLoop$.run(MainLoop.scala:89)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:68)
    at sbt.MainLoop$$anonfun$runWithNewLog$1.apply(MainLoop.scala:63)
    at sbt.Using.apply(Using.scala:24)
    at sbt.MainLoop$.runWithNewLog(MainLoop.scala:63)
    at sbt.MainLoop$.runAndClearLast(MainLoop.scala:46)
    at sbt.MainLoop$.runLoggedLoop(MainLoop.scala:30)
    at sbt.MainLoop$.runLogged(MainLoop.scala:22)
    at sbt.StandardMain$.runManaged(Main.scala:57)
    at sbt.xMain.run(Main.scala:29)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:57)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:77)
    at xsbt.boot.Launch$.run(Launch.scala:57)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:45)
    at xsbt.boot.Launch$.launch(Launch.scala:65)
    at xsbt.boot.Launch$.apply(Launch.scala:16)
    at xsbt.boot.Boot$.runImpl(Boot.scala:32)
    at xsbt.boot.Boot$.main(Boot.scala:21)
    at xsbt.boot.Boot.main(Boot.scala)
^JException occurred while determining completions.

如果if !empty($VIM_WIKI) " Your mappings... endif 环境变量不为空,则将应用映射:

VIM_WIKI