• PennyJim@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      1 year ago

      I’ve seen a number of comments imply the possibility of case insensitive tab completion. Is this real and how do I do it?

      I have multiple times fumbled with forgetting to capitalize something, only for the terminal to ‘dunk’ at me

      • zlatko@programming.dev
        link
        fedilink
        arrow-up
        7
        ·
        1 year ago

        For bash, this is enough:

        # Bash TAB-completition enhancements
        # Case-insensitive
        bind "set completion-ignore-case on"
        # Treat - and _ as equivalent in tab-compl
        bind "set completion-map-case on"
        # Expand options on the _first_ TAB press.
        bind "set show-all-if-ambiguous on"
        

        If you also add e.g.CDPATH=~/Documents, it will also always autocomplete from your Documents no matter which directory you’re on.

        • PennyJim@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Setting CDPATH=:~/Documents/Dev makes navigating to any of my projects so much easier.

          Thanks for bringing it to my attention

          • zlatko@programming.dev
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            No problem!

            As an aside, I see we’re bringing the strangers thing over from Reddit. I hope more of the fun and funny stuff gets over, I miss some of the light shitposting.

        • kattfisk@lemmy.dbzer0.com
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 year ago

          Well completion-ignore-case is enough to solve this particular problem, the other options are just sugar on top :)

          I’m going to add completion-prefix-display-length to these related bonus tips (I have it set to 9). This makes it a lot easier to compare files with long names in your tab completion.

          For example if you have a folder with these files:

          FoobarSystem-v20.69.11-CrashLog2022-12-22 FoobarSystem-v20.69.11.config FoobarSystem-v20.69.12 FoobarSystem-v20.69.12-CrashLog2023-10-02 FoobarSystem-v20.69.12.config FoobarSystem-v20.69.12.userprofiles

          Just type vim TAB to see

           ...1-CrashLog2022-12-22   ...1.config   ...2   ...2-CrashLog2023-10-02   ...2.config   ...2.userprofiles
          $vim FoobarSystem-v20.69.1
          

          GNU Readline (which is what Bash uses for input) has a lot of options (e.g. making it behave like vim), and your settings are also used in any other programs that use it for their CLI which is a nice bonus. The config file is ~/.inputrc and you’d enable the above mentioned options like this

          $include /etc/inputrc
          
          set completion-ignore-case on
          set show-all-if-ambiguous on
          set completion-map-case on
          set completion-prefix-display-length 9