{"id":1642,"date":"2018-08-18T22:00:00","date_gmt":"2018-08-18T20:00:00","guid":{"rendered":"https:\/\/demo.sidekick.be\/itenium\/git-core-pager-less-pager\/"},"modified":"2025-11-28T13:31:46","modified_gmt":"2025-11-28T12:31:46","slug":"git-core-pager-less-pager","status":"publish","type":"post","link":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/","title":{"rendered":"Less for your git pager"},"content":{"rendered":"<p>Add a link to the <a href=\"https:\/\/linux.die.net\/man\/1\/less\">man page<\/a> and this topic is hereby extensively covered \ud83d\ude42<\/p>\n<h1 id=\"parameters-for-corepager\">Parameters for core.pager<\/h1>\n<p>Git defaults to <code>less FRSX<\/code>.<\/p>\n<h2 id=\"display\">Display<\/h2>\n<p>Default cursor is just a <code>:<\/code><\/p>\n<div style=\"display: block\"><kbd>-m<\/kbd>, <kbd> --long-prompt<\/kbd>: Show # bytes passed <\/div>\n<div style=\"display: block\"><kbd>-M<\/kbd>, <kbd> --LONG-PROMPT<\/kbd>: Show current lines displayed (ex: 1-57) <\/div>\n<p><\/p>\n<div style=\"display: block\"><kbd>-N<\/kbd>, <kbd> --LINE-NUMBERS<\/kbd>: Display line numbers <\/div>\n<div style=\"display: block\"><kbd>-s<\/kbd>, <kbd> --squeeze-blank-lines<\/kbd>: Fold multiple empty lines to just one (doesn&#8217;t fold empty + or &#8211; lines though) <\/div>\n<div style=\"display: block\"><kbd>-S<\/kbd>, <kbd> --chop-long-lines<\/kbd>: Truncate long lines instead of wrapping <\/div>\n<div style=\"display: block\"><kbd>-x<\/kbd>, <kbd> --window=x<\/kbd>: Set default window line size to x for PgUp\/PgDown <\/div>\n<h2 id=\"searching\">Searching<\/h2>\n<div style=\"display: block\"><kbd>-I<\/kbd>, <kbd> --IGNORE-CASE<\/kbd>: Case insensitive search <\/div>\n<div style=\"display: block\"><kbd>-i<\/kbd>, <kbd> --ignore-case<\/kbd>: Case insensitive search unless uppercase characters are found in the search pattern <\/div>\n<div style=\"display: block\"><kbd>-jX<\/kbd>, <kbd> --jump-target=X<\/kbd>: with X a number: Show search result X lines from the top of the screen <\/div>\n<div style=\"display: block\"><kbd>-J<\/kbd>, <kbd> --status-column<\/kbd>: Place * on lines with search results <\/div>\n<h2 id=\"quitting\">Quitting<\/h2>\n<div style=\"display: block\"><kbd>-e<\/kbd>, <kbd> --quit-at-eof<\/kbd>: Exits less when reached end twice <\/div>\n<div style=\"display: block\"><kbd>-E<\/kbd>, <kbd> --QUIT-AT-EOF<\/kbd>: Exits less when first reached end <\/div>\n<div style=\"display: block\"><kbd>-F<\/kbd>, <kbd> --quit-if-one-screen<\/kbd>: Exits when output is less than 1 page <\/div>\n<div style=\"display: block\"><kbd>-~<\/kbd>, <kbd> --tilde<\/kbd>: Lines after end of file are blank, not ~ <\/div>\n<h1 id=\"moving-around\">Moving around<\/h1>\n<p>Syntax used:<\/p>\n<ul>\n<li><code>xp<\/code>: Triggers for any number x followed by <code>p<\/code>.<\/li>\n<li><code>xp<\/code>: Also triggers when just pressing <code>p<\/code>.<\/li>\n<li>Omitted: Many keys can be combined with <code>Control<\/code> for the same effect.<\/li>\n<\/ul>\n<h2 id=\"going-down\">Going down<\/h2>\n<div style=\"display: block\"><kbd>xe<\/kbd>, <kbd> xj<\/kbd>, <kbd> xENTER<\/kbd>: Forward one line or x lines if x is provided <\/div>\n<div style=\"display: block\"><kbd>xd<\/kbd>: Forward half a page. If x is specified it becomes the new default for d <\/div>\n<div style=\"display: block\"><kbd>xPgDwn<\/kbd>, <kbd> xSPACE<\/kbd>, <kbd> xf<\/kbd>: Forward a page. x is optional, if provided it sets the size of the page (once) <\/div>\n<div style=\"display: block\"><kbd>xz<\/kbd>: Sets the size of x as the page size (in lines) for all subsequent calls of f, SPACE and PgDwn <\/div>\n<div style=\"display: block\"><kbd>G<\/kbd>, <kbd> &gt;<\/kbd>: Forward to the end <\/div>\n<h2 id=\"going-up\">Going up<\/h2>\n<div style=\"display: block\"><kbd>xy<\/kbd>, <kbd> xk<\/kbd>, <kbd> CONTROL<\/kbd> + <kbd>P<\/kbd>: Backward one line or x lines if x is provided <\/div>\n<div style=\"display: block\"><kbd>xu<\/kbd>: Backward half a page. If x is specified it becomes the new default for u <\/div>\n<div style=\"display: block\"><kbd>xPgUp<\/kbd>, <kbd> xb<\/kbd>, <kbd> ESC<\/kbd> + <kbd>V<\/kbd>: Backward a page. x is optional, if provided it sets the size of the page (once) <\/div>\n<div style=\"display: block\"><kbd>xw<\/kbd>: Sets the size of x as the page size (in lines) for all subsequent calls of b, PgUp <\/div>\n<div style=\"display: block\"><kbd>g<\/kbd>, <kbd> &lt;<\/kbd>: Backward to the beginning <\/div>\n<h2 id=\"searching-1\">Searching<\/h2>\n<p>See searching parameters above for configuring case sensitivity.<\/p>\n<div style=\"display: block\"><kbd>\/<\/kbd>: Search down for text or regex <\/div>\n<div style=\"display: block\"><kbd>?<\/kbd>: Search up <\/div>\n<div style=\"display: block\"><kbd>n<\/kbd>: Goto next match <\/div>\n<div style=\"display: block\"><kbd>N<\/kbd>: Goto previous match <\/div>\n<div style=\"display: block\"><kbd>&amp;<\/kbd>: Search and show only the matching lines <\/div>\n<h2 id=\"other\">Other<\/h2>\n<div style=\"display: block\"><kbd>s <\/kbd> + <kbd> filename<\/kbd>: Save to file and inspect with your weapon of choice <\/div>\n<div style=\"display: block\"><kbd>(<\/kbd>, <kbd> )<\/kbd>, <kbd> {<\/kbd>, <kbd> }<\/kbd>, <kbd> [<\/kbd>, <kbd> ]<\/kbd>: When the character pressed is on top of the page, scroll to its counterpart <\/div>\n<div style=\"display: block\"><kbd>xp<\/kbd>, <kbd> x%<\/kbd>: Go to x% position in document <\/div>\n<p><strong>Marking<\/strong>:<\/p>\n<div style=\"display: block\"><kbd>mx<\/kbd>: With x any character. Mark this position as x. <\/div>\n<div style=\"display: block\"><kbd>'x<\/kbd>: Goto the position marked as x <\/div>\n<h1 id=\"quitting-1\">Quitting<\/h1>\n<div style=\"display: block\"><kbd>ESC<\/kbd>, <kbd> SPACE<\/kbd>: ESC followed by SPACE: continue scrolling after end of stream <\/div>\n<div style=\"display: block\"><kbd>q<\/kbd>, <kbd> Q<\/kbd>, <kbd> :q<\/kbd>, <kbd> :Q<\/kbd>, <kbd> ZZ<\/kbd>: Exit less <\/div>\n<div style=\"display: block\"><kbd>CONTROL<\/kbd> + <kbd>l<\/kbd>: Clear screen afterwards? <\/div>\n<h1 id=\"summary\">Summary<\/h1>\n<p>After a few years of just using <code>PgUp<\/code> and <code>PgDown<\/code> I guess this research was way overdue.<\/p>\n<h1>Extras<\/h1>\n<p><b>Other interesting reads<\/b><\/p>\n<ul>\n<li><a href=\"https:\/\/itenium.be\/blog\/dev-setup\/exotic-git-recipes\/#locking-out-package-lockjson\">Blog post on how to skip uninteresting files in the diffs, logs, &#8230;<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>A <code>git diff<\/code> or <code>git log<\/code> starts the less program. Perhaps not the fanciest tool but more powerful than you might expect.<\/p>\n<p>This post details the arguments that can be passed to <code>less<\/code> and also how to navigate once less is running. Things not relevant for git are omitted.<\/p>\n<p>Your current configuration:<\/p>\n<pre><code>git config --get core.pager\n<\/code><\/pre>\n<p>If this returns nothing, there is room for improvement there!<\/p>\n<p><strong>TL&amp;DR<\/strong>:<\/p>\n<p>Configure something sensible:<\/p>\n<pre><code class=\"language-sh\"># Short version\ngit config --global core.pager \"less -eFiJM~ -j3 --tabs=3\"\n\n# Not so short version\ngit config --global core.pager \"less --LONG-PROMPT --tabs=3 --quit-at-eof --quit-if-one-screen --tilde --jump-target=3 --ignore-case --status-column\"\n<\/code><\/pre>\n<div style=\"display: block\"><kbd>h<\/kbd>: See all less commands. <\/div>\n","protected":false},"author":1,"featured_media":2101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[26],"class_list":["post-1642","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev-setup","tag-git"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Less for your git pager - Itenium<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Less for your git pager - Itenium\" \/>\n<meta property=\"og:description\" content=\"A git diff or git log starts the less program. Perhaps not the fanciest tool but more powerful than you might expect.This post details the arguments that can be passed to less and also how to navigate once less is running. Things not relevant for git are omitted.Your current configuration: git config --get core.pager If this returns nothing, there is room for improvement there!TL&amp;DR:Configure something sensible: # Short version git config --global core.pager &quot;less -eFiJM~ -j3 --tabs=3&quot; # Not so short version git config --global core.pager &quot;less --LONG-PROMPT --tabs=3 --quit-at-eof --quit-if-one-screen --tilde --jump-target=3 --ignore-case --status-column&quot; h: See all less commands.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/\" \/>\n<meta property=\"og:site_name\" content=\"Itenium\" \/>\n<meta property=\"article:published_time\" content=\"2018-08-18T20:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-28T12:31:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png\" \/>\n\t<meta property=\"og:image:width\" content=\"360\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Usdevelop\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Usdevelop\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/\",\"name\":\"Less for your git pager - Itenium\",\"isPartOf\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png\",\"datePublished\":\"2018-08-18T20:00:00+00:00\",\"dateModified\":\"2025-11-28T12:31:46+00:00\",\"author\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022\"},\"breadcrumb\":{\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#primaryimage\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png\",\"contentUrl\":\"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png\",\"width\":360,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/demo.sidekick.be\/itenium\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Less for your git pager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#website\",\"url\":\"https:\/\/demo.sidekick.be\/itenium\/\",\"name\":\"Itenium\",\"description\":\"We build software. We build careers.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022\",\"name\":\"Usdevelop\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g\",\"caption\":\"Usdevelop\"},\"sameAs\":[\"https:\/\/demo.sidekick.be\/itenium\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Less for your git pager - Itenium","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"Less for your git pager - Itenium","og_description":"A git diff or git log starts the less program. Perhaps not the fanciest tool but more powerful than you might expect.This post details the arguments that can be passed to less and also how to navigate once less is running. Things not relevant for git are omitted.Your current configuration: git config --get core.pager If this returns nothing, there is room for improvement there!TL&amp;DR:Configure something sensible: # Short version git config --global core.pager \"less -eFiJM~ -j3 --tabs=3\" # Not so short version git config --global core.pager \"less --LONG-PROMPT --tabs=3 --quit-at-eof --quit-if-one-screen --tilde --jump-target=3 --ignore-case --status-column\" h: See all less commands.","og_url":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/","og_site_name":"Itenium","article_published_time":"2018-08-18T20:00:00+00:00","article_modified_time":"2025-11-28T12:31:46+00:00","og_image":[{"width":360,"height":300,"url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png","type":"image\/png"}],"author":"Usdevelop","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Usdevelop","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/","url":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/","name":"Less for your git pager - Itenium","isPartOf":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#website"},"primaryImageOfPage":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#primaryimage"},"image":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#primaryimage"},"thumbnailUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png","datePublished":"2018-08-18T20:00:00+00:00","dateModified":"2025-11-28T12:31:46+00:00","author":{"@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022"},"breadcrumb":{"@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#primaryimage","url":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png","contentUrl":"https:\/\/demo.sidekick.be\/itenium\/wp-content\/uploads\/2025\/11\/less.png","width":360,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/demo.sidekick.be\/itenium\/blog\/dev-setup\/git-core-pager-less-pager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/demo.sidekick.be\/itenium\/"},{"@type":"ListItem","position":2,"name":"Less for your git pager"}]},{"@type":"WebSite","@id":"https:\/\/demo.sidekick.be\/itenium\/#website","url":"https:\/\/demo.sidekick.be\/itenium\/","name":"Itenium","description":"We build software. We build careers.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/demo.sidekick.be\/itenium\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/6ab401ce01e858184ee4a8667fe0f022","name":"Usdevelop","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/demo.sidekick.be\/itenium\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc8cf9b9e9d5bbe7e8d247907cc9ac8457bbfa2854b52eaddf6529adfe88ceab?s=96&d=mm&r=g","caption":"Usdevelop"},"sameAs":["https:\/\/demo.sidekick.be\/itenium"]}]}},"_links":{"self":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/comments?post=1642"}],"version-history":[{"count":3,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1642\/revisions"}],"predecessor-version":[{"id":2308,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/posts\/1642\/revisions\/2308"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media\/2101"}],"wp:attachment":[{"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/media?parent=1642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/categories?post=1642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demo.sidekick.be\/itenium\/wp-json\/wp\/v2\/tags?post=1642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}