自动运行几个vim命令和按键

时间:2013-03-31 20:59:54

标签: clojure vim

我想在vim中自动运行几个命令,即输入:repl。命令是:

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

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

关于上述内容:

  • clojure - Clojure编程语言(vim-clojure-static提供的语法
  • ConqueTerm - 一个在vim缓冲区中以交互方式运行shell的vim插件
  • lein - Leiningen,一个Clojure构建工具

2 个答案:

答案 0 :(得分:2)

你可以创建一个函数,并将命令放在该函数中:

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

您可以获取上述代码,并输入:ReplEnter来测试它是否适合您。

修改

非常好的评论 @Zyx 。我只是回答它们,以便读者将来不会遗漏有价值的信息。

  1. 此处您无需:execute次呼叫。
  2. :normal!我没用,从函数开始插入模式有:startinsert和:调用feedkeys(),前者应该是首选。 //注意::normal! i“在这里工作”,因为:startinsert:ConqueTerm运行。即由于Conque的编写方式,你根本不需要:startinsert,但如果还没有,那么:normal! i将继续无用。
  3. 刚才提到:使用command -bar会更好:这样你就不需要:execute用管道符号链接你的命令了(试试Repl | echo "Here"有没有-bar作为:command的第二个参数。我认为这是默认选项,不知道为什么Bram喜欢在很多地方都有错误的默认值。

答案 1 :(得分:0)

你试过吗?

function custom_function ()
  execute 'ConqueTerm lein repl'
  execute 'set syntax=clojure'
  return custom_function
endfunction

我不知道这段代码是否可行,因为我还没有测试过它