gpt4 book ai didi

svn - 如何在查看文件之间中止 vimdiff?

转载 作者:行者123 更新时间:2023-12-04 15:58:40 27 4
gpt4 key购买 nike

在我的 .subversion/config文件,我已经设置了 diff-cmd作为调用 vimdiff 的脚本查看更改。

以下是我的问题:
我正在查看两个 svn URLS 之间的差异,它们修改了 10 个文件。 svn diff url1 url2命令将打开第一个文件的差异。在 vim 中发出 :qa 将显示第二个文件的差异。现在,有没有办法完全退出 vim,中止进一步查看差异(除了运行 :qa 剩余 8 次)?

更新:
以下是我的脚本:

#!/bin/sh 

# use vimdiff to view diffs
DIFF="/usr/bin/vimdiff -o"


NUM=$# # number of arguments
LEFT=${6} # old file
RIGHT=${7} # new file
L_TITLE=${3} # actual name and revision of old file
R_TITLE=${5} # actual name and revision of new file
ST="${L_TITLE}"

# get the file name
NAME=`echo $ST | tr -s ' ' '\n' | head -1`
L_BRANCH=`echo $L_TITLE | tr -s ' ' '\n' | head -2 | tail -1`
R_BRANCH=`echo $R_TITLE | tr -s ' ' '\n' | head -2 | tail -1`

# get the old and new revision numbers
L_REV=`echo $L_TITLE | tr -s '(' '\n' | cut -d ')' -f1 | tail -1 | tr -s ' ' '_' `
R_REV=`echo $R_TITLE | tr -s '(' '\n' | cut -d ')' -f1 | tail -1 | tr -s ' ' '_' `

L_REV=`echo "${L_BRANCH}__${L_REV}"`
R_REV=`echo "${R_BRANCH}__${R_REV}"`

# invoke vim
$DIFF $LEFT $RIGHT -c "setl stl=$NAME%20{'$L_REV'} | wincmd W | setl stl=$NAME%20{'$R_REV'}"

最佳答案

  • 颠覆的diff-cmd处理任何不同于 0 的返回值或 1作为一个致命的错误。
  • 如果你用 :cq 关闭 vimdiff ,它将退出并显示状态码 1 .

  • 你可以在你的包装脚本中使用 vimdiff 的返回值来退出一个 Subversion “ fatal error ”,例如返回 2 .

    如果在脚本末尾添加以下内容:

    # if vimdiff returned 1, lets return a Subversion's fatal error code
    if [ $? -eq 1 ]; then
    exit 2;
    fi

    exit 0

    这样做,如果你用 :cq 关闭 vimdiff ,将不会显示任何剩余的差异,并且 Subversion 将显示一条错误消息,例如:
    svn: E200012: '/path/to/your/svn-diff-wrapper.sh' returned 2

    关于svn - 如何在查看文件之间中止 vimdiff?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19264279/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com