Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 自动运行多个vim命令和按键_Clojure_Vim - Fatal编程技术网

Clojure 自动运行多个vim命令和按键

Clojure 自动运行多个vim命令和按键,clojure,vim,Clojure,Vim,我想在vim中自动运行几个命令,即键入:repl。这些命令是: :ConqueTerm lein repl <Esc> :set syntax=clojure <i> :征服莱恩·雷普 :set syntax=clojure 如何定义执行上述操作的自定义vim函数(命令) 关于上述事项: clojure——clojure编程语言(语法由 -在vim缓冲区中以交互方式运行shell的vim插件 lein-,Clojure构建工具 你试过了吗 function cust

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

:ConqueTerm lein repl
<Esc>
:set syntax=clojure
<i>
:征服莱恩·雷普
:set syntax=clojure
如何定义执行上述操作的自定义vim函数(命令)

关于上述事项:

  • clojure
    ——clojure编程语言(语法由
  • -在vim缓冲区中以交互方式运行shell的vim插件
  • lein
    -,Clojure构建工具
    • 你试过了吗

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

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

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

      fun! LeinCMD()
          execute 'ConqueTerm lein repl'
          execute 'set syntax=clojure'
          execute 'normal! i'
      endf
      command! Repl call LeinCMD()
      
      您可以获取上述代码,然后键入
      :Repl
      Enter
      ,以测试它是否适合您

      编辑

      @Zyx的评论非常好。我只是把它们放在回答中,这样读者以后就不会错过有价值的信息了

    • 您完全不需要
      :在此处执行
      调用
    • :normal!
      i是无用的,要从函数启动插入模式,有:startinsert和:call feedkeys(),前者应该是首选的//注意:
      :normal!i
      “有效”这是因为:
      startinsert
      是由
      :ConqueTerm
      运行的。也就是说,由于Conque的编写方式,您根本不需要
      :startinsert
      ,但如果它还不存在
      :normal!我将继续不做任何有用的事情

    • 刚才提到:使用
      命令栏
      :这样您就不需要
      :执行
      来用管道符号链接您的命令(尝试使用
      Repl | echo“Here”
      和不使用-bar作为
      命令
      的第二个参数).我认为这是默认选项,不知道Bram为什么喜欢在许多地方出现不好的默认值。

      谢谢!为了子孙后代,这里有一个关于如何“来源”的答案代码:1.您完全不需要
      :在此处执行
      调用。2.
      :normal!i
      没有用,要从函数启动插入模式,有
      :startinsert
      :call feedkeys()
      ,应首选前者。//注意:
      :normal!i
      “有效”这里是因为
      :startinsert
      是由
      :ConqueTerm
      运行的。也就是说,由于Conque的编写方式,您根本不需要
      :startinsert
      ,但是如果它还没有
      :normal!我将继续不做任何有用的事情。@ZyX我感谢您的评论和解释!我从您的评论中学到了一些东西。谢谢非常好!刚才提到:使用
      命令栏
      :这样您就不需要
      :执行
      来用管道符号链接您的命令(尝试
      Repl | echo“Here”
      带和不带
      -bar
      作为
      :command
      的第二个参数)。我认为这是默认选项,不知道为什么Bram喜欢在许多地方有不好的默认值。@Zyx非常感谢。虽然我曾经阅读过
      -bar
      ,但我认为命令(无论是内置命令还是客户CMD)可以通过
      连接到一个链中是一种“默认”…再次向你学习。顺便说一句,我更新了答案并添加了你的评论,希望你不介意。