Comments (2)
Those are fair arguments. I don't think the development cost of supporting TOML and environment variables is justifiable at the moment, so I'm going to put this one on the backburner for now.
from zoxide.
This might be a little less coherent than usual, because as I was about to
submit my original rebuttal, the power went out (and I was drafting in GitHub's
textbox... lesson learned).
I strongly recommend against dropping environment variables altogether. Despite
it being a "fairly limited use case," it is one I rely on when testing. It would
extremely inconvenient to "keep an editor open with a temporary config file and
change it as desired."
Take, for example, if we were to move to TOML-only right this moment: once the
_ZO_FZF_ARGS
PR is merged (assuming it changes from an env var to the expected
configuration file), I would want to decrease the height of fzf
with its
--height
flag. If we drop environment variables altogether, this would look
like the following:
nvim ~/.config/zoxide/config
- edit value
- save file
zoxide query -i
- decide if I'm satisfied; else, go back to 2
With the environment variable, I would only need to 1) _ZO_FZF_ARGS="--height 20%" zoxide query -i
, and 2) decide if I'm satisfied; if not, press the up arrow and
change 20%
to something else.
I think we should be careful with adding features that will "result in a slight
slowdown," no matter how "slight" that turns out to be. As the README stands
today, it claims that zoxide
is a "blazing fast alternative to cd
," which
implies (to me) that we value speed above all else. If we start adding features
under the guise of a "slight" performance impact, they will add up to the point
where they are no longer just "slight" differences.
We could compromise with feature flags: toml
for a configuration file and
env
for environment variables. Ideally, both would be allowed at the same
time, with environment variables taking precedence over the config file (in
order to support my usecase of testing and overriding on a per-shell basis).
Overall, I'm not opposed to adding a configuration file because you propose
valid points, such as being cross-shell compatible and having richer data
structures, as long as we do not drop environment variables.
(As an aside, to rebuke your "colon in ignored path" example: it's on the user
to escape the colon, just like in the system-wide PATH. If, due to not escaping
the colon, it results in unexpected ignores, it is most definitely not our
fault.)
from zoxide.
Related Issues (20)
- Add support for kornshell HOT 7
- Conflict between zoxide, zsh-autocomplete, and fzf results in erroneous behavior HOT 1
- Support the `--` command-line argument HOT 4
- Interactive mode (space + tab) doesn't appear to be working on macOS HOT 5
- Interactive expansion doesn't work as expected when it matches a single entry then echos command 3 times HOT 6
- How can I change the shortcuts in zi?
- zoxide: no match found on startup HOT 10
- Possible to get a list of previous dirs by time?
- feasibility integrate with vscode cli(`code`) HOT 3
- unknown option: --keep-right zoxide: fzf returned an error HOT 1
- Unable to initialize zoxide in my zsh HOT 2
- Zoxide with cd alias breaks fish - 'prevd-or-backward-word' & 'nextd-or-forward-word' HOT 2
- eval not found HOT 5
- Unable to install zoxide in arch linux HOT 2
- Arch 'MANJARO' with ZSH and Powerlevel10k PROBLEMS HOT 1
- Help with excluding dirs HOT 2
- z "" should act as z with no arguments (go to home directory) HOT 3
- Feature request: "z . some keywords" to find matches in current directory HOT 2
- New Command Idea: Env
- Zoxide "zi" hangs when mount point is in list (/mnt) that's unavailable HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zoxide.