页次: 1
在.vimrc 里面是这样写的
```
map <F8> :call GitPush()<CR>
func! GitPush()
exec 'w'
exec '!git add .'
exec '!git commit -a -m "commit by vim"'
exec '!git push'
endfunc
```
基本可以达到目标,但是需要按三次回车,而且commit的说明没法现输入。
请问大虾们是如何绑定的啊?对vim的配置了解不深入,见笑:)
离线
为何不用 fugitive 呢?
你的 exec 都是不需要的。提交说明可以用 input() 函数来输入。不过 fugitive 已经做得很好了呀。
离线
谢谢依云,fugitive在研究中,经您提示刀耕火种了一个:
map <F8> :call GitPush()<CR>
func! GitPush()
exec 'w'
exec '!git add .'
exec ':let content = input("Commit: ")'
exec '!git commit -a -m '.content
exec '!git push'
endfunc
但是content 里不能有 ! % 等字符:(
最近编辑记录 tan9p (2016-06-05 10:45:33)
离线
:help shellescape()
离线
谢谢大虾,当时就在想 vim里类似 strip 的函数叫什么,是 escape这个关键词啊.
经测试 空格 可以包含了 但!会被解析成上一条命令 即 "git add ."
;;这个用shellescape(content,1)可以解决吧。
另外 exec 不写的话,每一句的结束是不是需要标记啊?
最近编辑记录 tan9p (2016-06-05 18:01:35)
离线
不是啊。exec 用于把字符串当命令来执行。所以 「exec 'w'」等同于「w」。当然你拼接字符串作为命令的时候就需要用 exec 了。
离线
基本概念没有,所以在撞大运呢:)习惯Google,却不愿认真读文档。谢谢您!
最近编辑记录 tan9p (2016-06-05 18:07:14)
离线
页次: 1