[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Dirspell and cdspell don't work when dealing with non-unixy filesystem s
Dirspell and cdspell don't work when dealing with non-unixy filesystem structures
Fri, 11 Feb 2022 18:11:33 +0100
Configuration Information [Automatically generated, do not change]:
Compilation CFLAGS: -DPROGRAM='bash.exe' -DCONF_HOSTTYPE='x86_64'
-DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash'
-DSHELL -DHAVE_CONFIG_H -DRECYCLES_PIDS -I. -I. -I./include -I./lib
-DWORDEXP_OPTION -Wno-discarded-qualifiers -march=x86-64
-mtune=generic -O2 -pipe -Wno-parentheses -Wno-format-security
uname output: MINGW64_NT-10.0-22000 Ramanujan 3.3.3-341.x86_64
2022-01-17 11:45 UTC x86_64 Msys
Machine Type: x86_64-pc-msys
Bash Version: 4.4
Patch Level: 23
Release Status: release
In Git Bash, Windows volumes are represented as /<drive letter>.
This peculiarity appears to break the 'dirspell' and 'cdspell' options,
which fail when they try to correct a directory path which does not
follow the traditional unixy filesystem structure,
such as having users' home directories in '/home', even though a
possibly valid path might be available.
Consider this example proposed in this answer
1. open Git Bash an make sure sure that the current working directory
contains a drive letter in its path;
2. create a directory named 'spam/eggs' and a non-empty file 'spam/test';
3. ensure that the shell options 'dirspell', 'cdspell' and 'direxpand'
4. type the 'cat' command, giving it the test file's path as argument
and intentionally misspelling 'spam', then try to auto-complete the file's path;
5. try to 'cd' into 'spam/eggs/', but intentionally misspelling 'spam'.
You will notice that both steps 4 and 5 fail, even though they should
work on a proper Unix-like system.
Workaround for the user: create symbolic links that follow the typical
unixy filesystem structure and point them to the directories you
For instance, create a symbolic link named 'home' inside Git's
(usually, 'C:\Program Files\Git'), which should point to 'C:\Users\'.
Then, modify your $HOME environment variable so that it contains the
After 'cd'ing into $HOME, retry steps 4 and 5 of the previous sequence,
and you will notice that the directory spelling correction features
work as expected.
Long-term fix: if possible, allow 'dirspell' and 'cdspell' to
understand non-unixy filesystem structures.
- Dirspell and cdspell don't work when dealing with non-unixy filesystem structures,
Matteo Paolini <=