自动运行多个 vim 命令和击键

2024-03-16

我想在 vim 中自动运行多个命令,即通过键入:repl。命令是:

:ConqueTerm lein repl
<Esc>
:set syntax=clojure
<i>

如何定义执行上述内容的自定义 vim 函数(命令)?

关于以上内容:

  • clojure- Clojure 编程语言(语法由vim-clojure-静态 https://github.com/guns/vim-clojure-static
  • ConqueTerm http://www.vim.org/scripts/script.php?script_id=2771- 一个 vim 插件,可以在 vim 缓冲区中交互运行 shell
  • lein - 莱宁根 https://github.com/technomancy/leiningen, Clojure 构建工具

您可以创建一个函数,然后将命令放入该函数中:

fun! LeinCMD()
    execute 'ConqueTerm lein repl'
    execute 'set syntax=clojure'
    execute 'normal! i'
endf
command! Repl call LeinCMD()

您可以获取上面的代码,然后输入:Repl and Enter测试它是否适合您。

EDIT

非常好的评论@Zyx。我只是把它们放在答案中,以免读者以后错过有价值的信息。

  1. 你完全不需要:execute打电话到这里。
  2. :normal!i 没用,要从函数启动插入模式,有 :startinsert 和 :call feedkeys(),前者应该是首选。 // 笔记::normal! i在这里“有效”是因为:startinsert是由:ConqueTerm。 IE。由于 Conque 的编写方式,你不需要:startinsert根本没有,但如果它还不存在的话:normal! i会继续做任何有用的事情。

刚刚提到:使用起来会好得多command -bar: 这样你就不需要:execute用管道符号链接你的命令(尝试Repl | echo "Here"有和没有 -bar 作为第二个参数:command)。我认为这是默认选项,不知道为什么布拉姆喜欢在很多地方使用糟糕的默认选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动运行多个 vim 命令和击键 的相关文章

随机推荐