我想在vim中自动运行几个命令,即输入:repl
。命令是:
:ConqueTerm lein repl
<Esc>
:set syntax=clojure
<i>
如何定义执行上述操作的自定义vim函数(命令)?
关于上述内容:
clojure
- Clojure编程语言(vim-clojure-static提供的语法ConqueTerm
- 一个在vim缓冲区中以交互方式运行shell的vim插件lein
- Leiningen,一个Clojure构建工具答案 0 :(得分:2)
你可以创建一个函数,并将命令放在该函数中:
fun! LeinCMD()
execute 'ConqueTerm lein repl'
execute 'set syntax=clojure'
execute 'normal! i'
endf
command! Repl call LeinCMD()
您可以获取上述代码,并输入:Repl
和Enter
来测试它是否适合您。
修改强>
非常好的评论 @Zyx 。我只是回答它们,以便读者将来不会遗漏有价值的信息。
:execute
次呼叫。 :normal!
我没用,从函数开始插入模式有:startinsert和:调用feedkeys(),前者应该是首选。 //注意::normal! i
“在这里工作”,因为:startinsert
由:ConqueTerm
运行。即由于Conque的编写方式,你根本不需要:startinsert
,但如果还没有,那么:normal! i
将继续无用。刚才提到:使用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
我不知道这段代码是否可行,因为我还没有测试过它