Even with bash completion, endlessly typing and tabbing through the directory tree to make a simple change to a config file quickly becomes tedious, so I concocted this script to make it somewhat more straightforward.
1 2 3 4 5 6 7 8 9 10 11 |
|
A relatively simple script, with a nice feature or two, it does a couple of things. First, it tests that the directory actually exists:
1
|
|
and then loops through all of the files in the directory using a glob and checks for a pattern match.
In order for the case statement to work, however, the directory path has to be stripped from the file name.
Rather than run another process with basename, I used parameter expansion to remove the substring:
1
|
|
which turns, for example, $XDG_CONGIG_HOME/newsbeuter/conf into a
simple conf. This can then be evaluated for a match with the file names
in the case
statement and passed to the $EDITOR
.
If no match is found, nothing (:
) is done.
Now, it is simply a matter of entering xdg vimprobable
and
$XDG_CONFIG_HOME/vimprobable/vimprobablerc is opened in Vim.
Updated 19/10/11
After using this script for a while it became clear to me that it has a significant drawback: too many applications place their config files in directories other than $XDG_CONFIG_HOME. So, with some help, I updated the script. It now covers all of the directories where you are likely to find dotfiles.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
If you would prefer a more portable version—which still relies on GNU find—then you could simplify it like so:
1 2 3 4 5 6 7 8 9 10 |
|