{"thread":{"id":"59428","subject":".gitconfig: -c core.pager='less -+F -+X' status","startedAt":"2023-03-21T14:25:46Z","lastAt":"2023-03-21T19:22:28Z","messageCount":3,"participants":["Alejandro Colomar","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"473842","messageId":"92e2b9d2-e259-6bba-7080-28a01c0d323c@gmail.com","threadId":"59428","inReplyTo":null,"subject":".gitconfig: -c core.pager='less -+F -+X' status","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2023-03-21T14:24:53Z","receivedAt":"2023-03-21T14:25:46Z","isPatch":false,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Hi,\n\nI wrote recently some aliases to not clutter my screen when I want to\ncheck something quick:\n\n$ head -n4 ~/.gitconfig \n[alias]\n\tdf = -c core.pager='less -+F -+X' diff\n\tsw = -c core.pager='less -+F -+X' show\n\tst = -c core.pager='less -+F -+X' status\n\nNow, `git df` and `git sw` work as expected: they open a less window,\nand it's later closed with `q`, with no traces in my screen except for\nthe command itself.  \n\nHowever, `git st` doesn't seem to work.  It prints everything to screen,\nand then exits.\n\nYou can reproduce it on the command line too:\n\ngit -c core.pager='less -+F -+X' diff    # OK\ngit -c core.pager='less -+F -+X' show    # OK\ngit -c core.pager='less -+F -+X' status  # Not OK\n\nCheers,\nAlex\n\nP.S.:  While sometimes I want to check quick something without\ncluttering my screen, I don't recommend anyone reading this to run these\naliases as a norm.  I prefer using the ones that leave traces on the\nscreen, since that way it's simple to recover from rebase accidents,\nwhich at least to me, happen rather often.  This is only for cases where\nI have something important on the screen which I don't want to hide\n(previously, I would open a new terminal to check something quick on\ngit).\n\n-- \n<http://www.alejandro-colomar.es/>\nGPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5\n"},{"id":"473875","messageId":"20230321184210.GM3119834@coredump.intra.peff.net","threadId":"59428","inReplyTo":"92e2b9d2-e259-6bba-7080-28a01c0d323c@gmail.com","subject":"Re: .gitconfig: -c core.pager='less -+F -+X' status","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2023-03-21T18:42:10Z","receivedAt":"2023-03-21T18:42:20Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Mar 21, 2023 at 03:24:53PM +0100, Alejandro Colomar wrote:\n\n> Hi,\n> \n> I wrote recently some aliases to not clutter my screen when I want to\n> check something quick:\n> \n> $ head -n4 ~/.gitconfig \n> [alias]\n> \tdf = -c core.pager='less -+F -+X' diff\n> \tsw = -c core.pager='less -+F -+X' show\n> \tst = -c core.pager='less -+F -+X' status\n> \n> Now, `git df` and `git sw` work as expected: they open a less window,\n> and it's later closed with `q`, with no traces in my screen except for\n> the command itself.  \n> \n> However, `git st` doesn't seem to work.  It prints everything to screen,\n> and then exits.\n\ngit-status doesn't invoke the pager by default:\n\n  $ git -c core.pager='echo foo' log\n  foo\n\n  $ git -c core.pager='echo foo' status\n  On branch [...etc]\n\nYou can configure it to do so:\n\n  git config --global pager.status true\n\nOr if you just want it to happen in your alias, try:\n\n  [alias]\n      st = -p -c core.pager='less -+F -+X' status\n\n-Peff\n"},{"id":"473878","messageId":"6a1bea28-ed50-f32b-35ef-ef12f16e2878@gmail.com","threadId":"59428","inReplyTo":"20230321184210.GM3119834@coredump.intra.peff.net","subject":"Re: .gitconfig: -c core.pager='less -+F -+X' status","fromName":"Alejandro Colomar","fromEmail":"alx.manpages@gmail.com","sentAt":"2023-03-21T19:22:14Z","receivedAt":"2023-03-21T19:22:28Z","isPatch":false,"sender":{"key":"alx.manpages@gmail.com","avatar":null},"body":"Hi Jeff,\n\nOn 3/21/23 19:42, Jeff King wrote:\n> On Tue, Mar 21, 2023 at 03:24:53PM +0100, Alejandro Colomar wrote:\n> \n>> Hi,\n>>\n>> I wrote recently some aliases to not clutter my screen when I want to\n>> check something quick:\n>>\n>> $ head -n4 ~/.gitconfig \n>> [alias]\n>> \tdf = -c core.pager='less -+F -+X' diff\n>> \tsw = -c core.pager='less -+F -+X' show\n>> \tst = -c core.pager='less -+F -+X' status\n>>\n>> Now, `git df` and `git sw` work as expected: they open a less window,\n>> and it's later closed with `q`, with no traces in my screen except for\n>> the command itself.  \n>>\n>> However, `git st` doesn't seem to work.  It prints everything to screen,\n>> and then exits.\n> \n> git-status doesn't invoke the pager by default:\n\nAhh, sorry, how could I forget something like that =)\nProbably some brainfart here between chair and keyboard.\n\n> \n>   $ git -c core.pager='echo foo' log\n>   foo\n> \n>   $ git -c core.pager='echo foo' status\n>   On branch [...etc]\n> \n> You can configure it to do so:\n> \n>   git config --global pager.status true\n\nHmm, I like this.  When status grows hundreds of lines, it's nice if\nit only shows the first screen by default.\n\nThanks!\n\nAlex\n\n> \n> Or if you just want it to happen in your alias, try:\n> \n>   [alias]\n>       st = -p -c core.pager='less -+F -+X' status\n\n> \n> -Peff\n\n-- \n<http://www.alejandro-colomar.es/>\nGPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5\n"}]}