Jeff King <peff@xxxxxxxx> writes: > On Mon, May 11, 2020 at 08:36:05AM -0700, Junio C Hamano wrote: > >> > So I'm OK to leave the status quo and let people use the GIT_EDITOR >> > solution in this instance. But I'd also be happy to take a patch for >> > "--no-editor" or similar if somebody wants to work it up. >> >> I actually would support --no-editor. One thing nobody noticed so >> far is that "git-jump" is only compatible with editors that support >> the "-q" option from the command line, and "cat" is not among them. > > Oh, good point. GIT_EDITOR='cat -- 2>/dev/null' works, but is rather > obscure. :) Lest we all forget... -- >8 -- Subject: git-jump: just show the list with the "--no-editor" option The "git jump" script (in contrib/) creates a list of interesting places to be visited in an editor, and then open the editor to visit the place. Some editors, however, can read the list directly and use it to visit these places (e.g. vim's quickfix list, or emacs's find-grep/compilation buffer) and do not want "git jump" to invoke a separate editor. Users can _almost_ do this already by setting GIT_EDITOR to "cat", except that "git jump" assumes that the editor it spawns support a "-q" option from the command line, and unfortunately "cat" is not among such editors. Teach it the "--no-editor" option, which tells the command to show the list it generated to its standard output. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- contrib/git-jump/git-jump | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/contrib/git-jump/git-jump b/contrib/git-jump/git-jump index 931b0fe3a9..26a7159053 100755 --- a/contrib/git-jump/git-jump +++ b/contrib/git-jump/git-jump @@ -2,7 +2,7 @@ usage() { cat <<\EOF -usage: git jump <mode> [<args>] +usage: git jump [--no-editor] <mode> [<args>] Jump to interesting elements in an editor. The <mode> parameter is one of: @@ -64,6 +64,18 @@ mode_ws() { git diff --check "$@" } +edit=yes + +while case "$#,$1" in + 0,*) break ;; + *,--no-editor) edit=no ;; + *,--*) usage >&2; exit 1 ;; + *) break ;; + esac +do + shift +done + if test $# -lt 1; then usage >&2 exit 1 @@ -75,4 +87,9 @@ tmp=`mktemp -t git-jump.XXXXXX` || exit 1 type "mode_$mode" >/dev/null 2>&1 || { usage >&2; exit 1; } "mode_$mode" "$@" >"$tmp" test -s "$tmp" || exit 0 -open_editor "$tmp" + +case "$edit" in +yes) open_editor "$tmp" ;; +no) cat "$tmp" ;; +esac +