Op does not know about $CDPATH and tab completion keke
Programmer Humor
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
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
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
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.
i renamed my home folders to dl
, docs
, pics
, etc. and use auto-cd (whatever its called) to just type dl
instead of cd dl
You could just use aliases in your bashrc
alias dl=cd ~/Downloads
Might need quotes around the command.
There are two Linux paradigms that I consider stupid. One is the use of centralized software repositories managed by the distro instead of individual developer maintained installers. The other one is file system case sensibility. They already admitted defeat on the first one with the rise of containerised applications. I wonder how much longer they'll keep the charade on the second one.
Here's how to fix this[+]
Create $HOME/.config/user-dirs.dirs
with
XDG_DOWNLOAD_DIR="$HOME/downloads"
You may need to logout/in for things to reread this file.
The full list of keys is:
- XDG_DESKTOP_DIR
- XDG_DOWNLOAD_DIR
- XDG_TEMPLATES_DIR
- XDG_PUBLICSHARE_DIR
- XDG_DOCUMENTS_DIR
- XDG_MUSIC_DIR
- XDG_PICTURES_DIR
- XDG_VIDEOS_DIR
+: Since this is Linux, this is a fix for many but not all cases.
Zoxide and cd down
. ;)
cd dow *tab
Don't even have to cd when using completion with fish/zsh. Just type
down[tab]
Fish baby. Fish.