this post was submitted on 02 Oct 2023
1350 points (96.6% liked)

Programmer Humor

19564 readers
544 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] xnasero@programming.dev 12 points 1 year ago* (last edited 1 year ago) (1 children)

Op does not know about $CDPATH and tab completion keke

[–] PennyJim@lemmy.world 3 points 1 year ago (2 children)

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 3 points 1 year ago (2 children)

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 2 points 1 year ago

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

Thanks for bringing it to my attention

[–] csm10495@sh.itjust.works 1 points 1 year ago

Thanks kind stranger. Never knew of this.

[–] F04118F@feddit.nl 1 points 1 year ago* (last edited 1 year ago) (1 children)

There's probably some way to add it in bash, but if you install zsh and use the default options for everything, it just works! I especially love zsh for things "just work": not just tab completion for directories but also having completion for tools like git, docker, kubectl, etc is super easy, and you don't need any weird magic like in Bash if you want to use an alias with the same completion

[–] bnjmn@programming.dev 4 points 1 year ago (1 children)

Hmm, it didn't "just work" for me. I had to set it up recently:

zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*'

That line needs to go in .zshrc. Maybe it's enabled by default with oh-my-zsh?

[–] F04118F@feddit.nl 1 points 1 year ago (1 children)

I'm sorry, that must be it, I immediately installed oh-my-zsh after switching to zsh

[–] bnjmn@programming.dev 2 points 1 year ago

I tend to always install both of them together too! Which makes it a little hard to know where things are coming from. This time I decided to start from scratch, so certain aspects of the config are still salient in my mind