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(`

How long after the last departure shall the airport stay open for an emergency return?

Is it acceptable to use working hours to read general interest books?

Extracting Dirichlet series coefficients

How do I deal with a coworker that keeps asking to make small superficial changes to a report, and it is seriously triggering my anxiety?

What does MLD stand for?

A ​Note ​on ​N!

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

Unknown code in script

Injection into a proper class and choice without regularity

Why is the underscore command _ useful?

What makes accurate emulation of old systems a difficult task?

SFDX - Create Objects with Custom Properties

Can a Bard use the Spell Glyph option of the Glyph of Warding spell and cast a known spell into the glyph?

How do I check if a string is entirely made of the same substring?

Why do distances seem to matter in the Foundation world?

Negative Resistance

Can a stored procedure reference the database in which it is stored?

Prove that the countable union of countable sets is also countable

Co-worker works way more than he should

How to not starve gigantic beasts

How exactly does Hawking radiation decrease the mass of black holes?

Can I criticise the more senior developers around me for not writing clean code?

Was Dennis Ritchie being too modest in this quote about C and Pascal?

How bug prioritization works in agile projects vs non agile



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(`













9















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




























    9















    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


























      9












      9








      9








      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 9 hours ago







      Toothrot

















      asked 9 hours ago









      ToothrotToothrot

      1,514517




      1,514517




















          1 Answer
          1






          active

          oldest

          votes


















          11














          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
            9 hours ago






          • 1





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

            – DJMcMayhem
            8 hours ago






          • 2





            @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
            7 hours ago






          • 4





            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
            3 hours 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









          11














          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
            9 hours ago






          • 1





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

            – DJMcMayhem
            8 hours ago






          • 2





            @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
            7 hours ago






          • 4





            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
            3 hours ago















          11














          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
            9 hours ago






          • 1





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

            – DJMcMayhem
            8 hours ago






          • 2





            @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
            7 hours ago






          • 4





            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
            3 hours ago













          11












          11








          11







          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 9 hours ago









          DJMcMayhemDJMcMayhem

          11.5k12863




          11.5k12863












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

            – Toothrot
            9 hours ago






          • 1





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

            – DJMcMayhem
            8 hours ago






          • 2





            @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
            7 hours ago






          • 4





            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
            3 hours ago

















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

            – Toothrot
            9 hours ago






          • 1





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

            – DJMcMayhem
            8 hours ago






          • 2





            @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
            7 hours ago






          • 4





            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
            3 hours ago
















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

          – Toothrot
          9 hours ago





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

          – Toothrot
          9 hours ago




          1




          1





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

          – DJMcMayhem
          8 hours ago





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

          – DJMcMayhem
          8 hours ago




          2




          2





          @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
          7 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
          7 hours ago




          4




          4





          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
          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
          3 hours 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

          Nidaros erkebispedøme

          Birsay

          Was Woodrow Wilson really a Liberal?Was World War I a war of liberals against authoritarians?Founding Fathers...