Why is the underscore command _ useful?Using the % command on a line without a bracketApplying an ex command to a visual selection or text objectWhy do `cw` and `ce` do the same thing?What does vim consider a paragragh?Why does >3k move the cursor up when >3j does not move it down?how to delete a paragraph respecting the folds?How to change fchar to search left if no char was found searching right?How to make fchar case insensitive?Why is :execute required in this --remote-silent command?Automatically jump to text object during `ci(`

Why doesn't the standard consider a template constructor as a copy constructor?

What is the best way to deal with NPC-NPC combat?

Will I lose my paid in full property

"My boss was furious with me and I have been fired" vs. "My boss was furious with me and I was fired"

Where was the County of Thurn und Taxis located?

Restricting the options of a lookup field, based on the value of another lookup field?

Is Diceware more secure than a long passphrase?

Older movie/show about humans on derelict alien warship which refuels by passing through a star

Why do real positive eigenvalues result in an unstable system? What about eigenvalues between 0 and 1? or 1?

What does "function" actually mean in music?

How much cash can I safely carry into the USA and avoid civil forfeiture?

Does a large simulator bay have standard public address announcements?

How to have a sharp product image?

How do I produce this symbol: Ϟ in pdfLaTeX?

std::unique_ptr of base class holding reference of derived class does not show warning in gcc compiler while naked pointer shows it. Why?

Combinatorics problem, right solution?

Apply a different color ramp to subset of categorized symbols in QGIS?

Why did C use the -> operator instead of reusing the . operator?

Island of Knights, Knaves and Spies

Can a level 2 Warlock take one level in rogue, then continue advancing as a warlock?

Complex numbers z=-3-4i polar form

Are there moral objections to a life motivated purely by money? How to sway a person from this lifestyle?

A ​Note ​on ​N!

Why do games have consumables?



Why is the underscore command _ useful?


Using the % command on a line without a bracketApplying an ex command to a visual selection or text objectWhy do `cw` and `ce` do the same thing?What does vim consider a paragragh?Why does >3k move the cursor up when >3j does not move it down?how to delete a paragraph respecting the folds?How to change fchar to search left if no char was found searching right?How to make fchar case insensitive?Why is :execute required in this --remote-silent command?Automatically jump to text object during `ci(`













5















I'm a bit puzzeled as to why the underscore command _, which jumps to
the beginning of the (COUNT - 1)th line below the cursor, gets its own
key. When would I use this rather than + or ^?










share|improve this question




























    5















    I'm a bit puzzeled as to why the underscore command _, which jumps to
    the beginning of the (COUNT - 1)th line below the cursor, gets its own
    key. When would I use this rather than + or ^?










    share|improve this question


























      5












      5








      5








      I'm a bit puzzeled as to why the underscore command _, which jumps to
      the beginning of the (COUNT - 1)th line below the cursor, gets its own
      key. When would I use this rather than + or ^?










      share|improve this question
















      I'm a bit puzzeled as to why the underscore command _, which jumps to
      the beginning of the (COUNT - 1)th line below the cursor, gets its own
      key. When would I use this rather than + or ^?







      cursor-motions






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 5 hours ago







      Toothrot

















      asked 5 hours ago









      ToothrotToothrot

      1,494517




      1,494517




















          1 Answer
          1






          active

          oldest

          votes


















          6














          Good question!



          As a motion by itself, you're right, _ is not a particularly useful key. :h _



           *_*
          _ <underscore> [count] - 1 lines downward, on the first non-blank
          character |linewise|.


          The key word here is "linewise". So if your goal is to just move the cursor, then ^, j, and + all get the job done, and there's not much point to _. But as an argument to an operator, _ is super powerful.



          A lot of double-key shortcuts are actually just shortcuts for _. For example,



          dd -> d_
          cc -> c_
          yy -> y_
          Y -> y_


          etc. Because it's a linewise motion, it basically selects the entire line to be operated on regardless of where your cursor starts, whereas ^ just goes from your character to the first non-blank.



          It helps me when thinking about linewise vs blockwise motions to imagine that I'm pressing either v or V right before the motion. So I imagine d^ to be equivalent to v^d and I imagine d_ to be equivalent to V_d or V^d. Of course, you can also override a motion to force it to be linewise or characterwise. So dv_ is actually exactly the same as d^ or v^d, and dVw is like Vwd which is exactly like d_.



          The reason it is specifically the "count-1th" line is so that 1dd (which is really d1_) deletes one entire line, 2dd (which is really d2_) deletes 2 entire lines, 3dd deletes 3 entire lines, etc.






          share|improve this answer























          • All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

            – Toothrot
            5 hours ago











          • @toothrot If you were creating your own operator and wanted to operate on the next n lines.

            – DJMcMayhem
            5 hours ago











          • @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

            – DJMcMayhem
            3 hours ago











          • Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

            – bmb
            5 mins ago











          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "599"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fvi.stackexchange.com%2fquestions%2f19745%2fwhy-is-the-underscore-command-useful%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          6














          Good question!



          As a motion by itself, you're right, _ is not a particularly useful key. :h _



           *_*
          _ <underscore> [count] - 1 lines downward, on the first non-blank
          character |linewise|.


          The key word here is "linewise". So if your goal is to just move the cursor, then ^, j, and + all get the job done, and there's not much point to _. But as an argument to an operator, _ is super powerful.



          A lot of double-key shortcuts are actually just shortcuts for _. For example,



          dd -> d_
          cc -> c_
          yy -> y_
          Y -> y_


          etc. Because it's a linewise motion, it basically selects the entire line to be operated on regardless of where your cursor starts, whereas ^ just goes from your character to the first non-blank.



          It helps me when thinking about linewise vs blockwise motions to imagine that I'm pressing either v or V right before the motion. So I imagine d^ to be equivalent to v^d and I imagine d_ to be equivalent to V_d or V^d. Of course, you can also override a motion to force it to be linewise or characterwise. So dv_ is actually exactly the same as d^ or v^d, and dVw is like Vwd which is exactly like d_.



          The reason it is specifically the "count-1th" line is so that 1dd (which is really d1_) deletes one entire line, 2dd (which is really d2_) deletes 2 entire lines, 3dd deletes 3 entire lines, etc.






          share|improve this answer























          • All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

            – Toothrot
            5 hours ago











          • @toothrot If you were creating your own operator and wanted to operate on the next n lines.

            – DJMcMayhem
            5 hours ago











          • @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

            – DJMcMayhem
            3 hours ago











          • Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

            – bmb
            5 mins ago















          6














          Good question!



          As a motion by itself, you're right, _ is not a particularly useful key. :h _



           *_*
          _ <underscore> [count] - 1 lines downward, on the first non-blank
          character |linewise|.


          The key word here is "linewise". So if your goal is to just move the cursor, then ^, j, and + all get the job done, and there's not much point to _. But as an argument to an operator, _ is super powerful.



          A lot of double-key shortcuts are actually just shortcuts for _. For example,



          dd -> d_
          cc -> c_
          yy -> y_
          Y -> y_


          etc. Because it's a linewise motion, it basically selects the entire line to be operated on regardless of where your cursor starts, whereas ^ just goes from your character to the first non-blank.



          It helps me when thinking about linewise vs blockwise motions to imagine that I'm pressing either v or V right before the motion. So I imagine d^ to be equivalent to v^d and I imagine d_ to be equivalent to V_d or V^d. Of course, you can also override a motion to force it to be linewise or characterwise. So dv_ is actually exactly the same as d^ or v^d, and dVw is like Vwd which is exactly like d_.



          The reason it is specifically the "count-1th" line is so that 1dd (which is really d1_) deletes one entire line, 2dd (which is really d2_) deletes 2 entire lines, 3dd deletes 3 entire lines, etc.






          share|improve this answer























          • All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

            – Toothrot
            5 hours ago











          • @toothrot If you were creating your own operator and wanted to operate on the next n lines.

            – DJMcMayhem
            5 hours ago











          • @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

            – DJMcMayhem
            3 hours ago











          • Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

            – bmb
            5 mins ago













          6












          6








          6







          Good question!



          As a motion by itself, you're right, _ is not a particularly useful key. :h _



           *_*
          _ <underscore> [count] - 1 lines downward, on the first non-blank
          character |linewise|.


          The key word here is "linewise". So if your goal is to just move the cursor, then ^, j, and + all get the job done, and there's not much point to _. But as an argument to an operator, _ is super powerful.



          A lot of double-key shortcuts are actually just shortcuts for _. For example,



          dd -> d_
          cc -> c_
          yy -> y_
          Y -> y_


          etc. Because it's a linewise motion, it basically selects the entire line to be operated on regardless of where your cursor starts, whereas ^ just goes from your character to the first non-blank.



          It helps me when thinking about linewise vs blockwise motions to imagine that I'm pressing either v or V right before the motion. So I imagine d^ to be equivalent to v^d and I imagine d_ to be equivalent to V_d or V^d. Of course, you can also override a motion to force it to be linewise or characterwise. So dv_ is actually exactly the same as d^ or v^d, and dVw is like Vwd which is exactly like d_.



          The reason it is specifically the "count-1th" line is so that 1dd (which is really d1_) deletes one entire line, 2dd (which is really d2_) deletes 2 entire lines, 3dd deletes 3 entire lines, etc.






          share|improve this answer













          Good question!



          As a motion by itself, you're right, _ is not a particularly useful key. :h _



           *_*
          _ <underscore> [count] - 1 lines downward, on the first non-blank
          character |linewise|.


          The key word here is "linewise". So if your goal is to just move the cursor, then ^, j, and + all get the job done, and there's not much point to _. But as an argument to an operator, _ is super powerful.



          A lot of double-key shortcuts are actually just shortcuts for _. For example,



          dd -> d_
          cc -> c_
          yy -> y_
          Y -> y_


          etc. Because it's a linewise motion, it basically selects the entire line to be operated on regardless of where your cursor starts, whereas ^ just goes from your character to the first non-blank.



          It helps me when thinking about linewise vs blockwise motions to imagine that I'm pressing either v or V right before the motion. So I imagine d^ to be equivalent to v^d and I imagine d_ to be equivalent to V_d or V^d. Of course, you can also override a motion to force it to be linewise or characterwise. So dv_ is actually exactly the same as d^ or v^d, and dVw is like Vwd which is exactly like d_.



          The reason it is specifically the "count-1th" line is so that 1dd (which is really d1_) deletes one entire line, 2dd (which is really d2_) deletes 2 entire lines, 3dd deletes 3 entire lines, etc.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 5 hours ago









          DJMcMayhemDJMcMayhem

          11.4k12862




          11.4k12862












          • All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

            – Toothrot
            5 hours ago











          • @toothrot If you were creating your own operator and wanted to operate on the next n lines.

            – DJMcMayhem
            5 hours ago











          • @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

            – DJMcMayhem
            3 hours ago











          • Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

            – bmb
            5 mins ago

















          • All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

            – Toothrot
            5 hours ago











          • @toothrot If you were creating your own operator and wanted to operate on the next n lines.

            – DJMcMayhem
            5 hours ago











          • @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

            – DJMcMayhem
            3 hours ago











          • Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

            – bmb
            5 mins ago
















          All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

          – Toothrot
          5 hours ago





          All right, but would I ever actually use it? dd is easier than d_ and 3yj is easier than 4y_.

          – Toothrot
          5 hours ago













          @toothrot If you were creating your own operator and wanted to operate on the next n lines.

          – DJMcMayhem
          5 hours ago





          @toothrot If you were creating your own operator and wanted to operate on the next n lines.

          – DJMcMayhem
          5 hours ago













          @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

          – DJMcMayhem
          3 hours ago





          @Toothrot I guess I want to clarify that a little bit. In day to day vim editing, no it's really not particularly useful. I've almost never used it either. The reason it's useful is because it is the definition of a lot of useful commands. dd might be more convenient than d_, but that's because dd is just a mapping to d_. And it's also useful in vimscript.

          – DJMcMayhem
          3 hours ago













          Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

          – bmb
          5 mins ago





          Some actions that act on a "motion" may not have other shortcuts. Something like "gU_" will uppercase everything on the current line, even if the cursor is not at the start of the line.

          – bmb
          5 mins ago

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Vi and Vim Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fvi.stackexchange.com%2fquestions%2f19745%2fwhy-is-the-underscore-command-useful%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Are there any AGPL-style licences that require source code modifications to be public? Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Force derivative works to be publicAre there any GPL like licenses for Apple App Store?Do you violate the GPL if you provide source code that cannot be compiled?GPL - is it distribution to use libraries in an appliance loaned to customers?Distributing App for free which uses GPL'ed codeModifications of server software under GPL, with web/CLI interfaceDoes using an AGPLv3-licensed library prevent me from dual-licensing my own source code?Can I publish only select code under GPLv3 from a private project?Is there published precedent regarding the scope of covered work that uses AGPL software?If MIT licensed code links to GPL licensed code what should be the license of the resulting binary program?If I use a public API endpoint that has its source code licensed under AGPL in my app, do I need to disclose my source?

          2013 GY136 Descoberta | Órbita | Referências Menu de navegação«List Of Centaurs and Scattered-Disk Objects»«List of Known Trans-Neptunian Objects»

          Button changing it's text & action. Good or terrible? The 2019 Stack Overflow Developer Survey Results Are Inchanging text on user mouseoverShould certain functions be “hard to find” for powerusers to discover?Custom liking function - do I need user login?Using different checkbox style for different checkbox behaviorBest Practices: Save and Exit in Software UIInteraction with remote validated formMore efficient UI to progress the user through a complicated process?Designing a popup notice for a gameShould bulk-editing functions be hidden until a table row is selected, or is there a better solution?Is it bad practice to disable (replace) the context menu?