Clojure 自动运行多个vim命令和按键
我想在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
:repl
。这些命令是:
:ConqueTerm lein repl
<Esc>
:set syntax=clojure
<i>
:征服莱恩·雷普
:set syntax=clojure
如何定义执行上述操作的自定义vim函数(命令)
关于上述事项:
——clojure编程语言(语法由clojure
- -在vim缓冲区中以交互方式运行shell的vim插件
-,Clojure构建工具lein
- 你试过了吗
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)可以通过
连接到一个链中是一种“默认”…再次向你学习。顺便说一句,我更新了答案并添加了你的评论,希望你不介意。