• smeg@feddit.uk
    link
    fedilink
    English
    arrow-up
    6
    ·
    3 months ago

    To use the last argument of the last ran command, use the Alt+. keys.

    Sounds like a poor-man’s !$ to me!

    • toynbee@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      3 months ago

      $_ also works. I love Alt+. but sadly it doesn’t work on any Mac terminal emulator I’ve found and, even more sadly, I am forced to use a Mac at work.

      I haven’t tried !$ so I’m not familiar with its function, but one nice thing about Alt+. is that you’re not limited to the last argument of the most recent command; instead, it allows you to scroll backwards like Ctrl+R.

    • sping@lemmy.sdf.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 months ago

      Fewer keystrokes, more features, and the ability to see what you’re about to do explicitly. How does that make it the poor man’s option?

      • smeg@feddit.uk
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        Seems like it’s terminal-emulator-specific rather than a built-in shell feature

        • sping@lemmy.sdf.org
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          3 months ago

          No, it’s a shell feature. Terminal emulators don’t even know what shell are running typically, and I haven’t heard of them adding shell features. That would require the terminal emulator knowing you’re using bash, knowing how to interrogate history etc…

          From man bash:

                 yank-last-arg (M-., M-_)
                        Insert  the last argument to the previous command (the last word
                        of the previous history entry).  With a numeric argument, behave
                        exactly  like  yank-nth-arg.   Successive calls to yank-last-arg
                        move back through the history list, inserting the last word  (or
                        the  word  specified  by the argument to the first call) of each
                        line in turn.  Any numeric argument supplied to these successive
                        calls  determines  the direction to move through the history.  A
                        negative argument switches the  direction  through  the  history
                        (back or forward).  The history expansion facilities are used to
                        extract the last word, as if the "!$" history expansion had been
                        specified.
          
          • smeg@feddit.uk
            link
            fedilink
            English
            arrow-up
            1
            ·
            3 months ago

            Neat! Other replies saying it doesn’t work on their machine, I’ll have to try it out in a few different environments.