繁体   English   中英

在 git rebase 中自动执行 vim 命令

[英]automate vim commands in git rebase

运行git rebase -i master后,我总是希望在打开的 vim 窗口中写入:2,50s/pick/squash/g 有没有办法自动化将写入 vim 的内容?

这个答案显示了如何从 shell 编写 vim 命令,但在我的情况下,问题是 git 命令打开了 vim,它不在我的控制范围内。

创建文件

~/.vim/after/ftplugin/gitrebase.vim

try
    2;'} s/^pick/squash
    setlocal modified
catch
endtry

必须有filetype plugin on才能工作。

你可以像这样在~/.vimrc中定义一个键映射:

nnoremap  ,rb  :2,$ s/^pick/squash/<cr>

然后在由git rebase启动的vim会话中,如果要压缩所有提交,只需按,rb即可。

或者定义为 vim 函数:

function GitRebaseSquashAll()
    :2,$ s/^pick/squash/
endfunction

并使用:call GitRebaseSquashAll()调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM