cd
to any path without escaping in xonsh shell.
Replaces cd
at the start of a line with a subprocess macro cd!
If you like the idea click ⭐ on the repo and stay tuned.
xpip install xontrib-cd
# or: xpip install -U git+https://github.com/eugenesvk/xontrib-cd
This xontrib will get loaded automatically for interactive sessions; to stop this, set
$XONTRIBS_AUTOLOAD_DISABLED = {"cd", }
Set the following environment variables in your profile to enable extra options (disabled by default):
$XONTRIB_CD_ALTSYMLINKFLAG = True
to pass-p
,-f
, or-s
flags (in addition to-P
) to follow symlinks$XONTRIB_CD_ALTSYMLINKFUNC = True
to usecdp
,cdf
, orcds
(in addition tocd -P
) to follow symlinks$XONTRIB_CD_SYMLINKAlWAYSON = True
to makecd
always follow symlinks (always pass-P
)$XONTRIB_CD_LASTCMD = True
to makecd
also work when it's the last command in a multi-command line
Use cd
as usual, but without the fear of copying&pasting arbitrary paths (e.g. .../space separated/
or .../[bracketed]/
)
xontrib load cd
cd ~/[Path] With Spaces # equivalent to 'cd! ~/[Path] With Spaces'
cd C:/Program Files # equivalent to 'cd! C:/Program Files'
cd -P ~/SymlinkTo # follow symlinks, equivalent to 'cd -P! ~/SymlinkTo'
Add a space before cd
to disable adding !
- Xontrib autoload can't be disabled and prevents user configured environment vars from being read on time due to a xonsh bug, so if you want to change the default configs via env vars, install the deauto branch
xpip install -U git+https://github.com/eugenesvk/xontrib-cd@deauto
- Multiple commands per line like
cd ~; echo 1
will fail sincecd
is replaced withcd!
, and everything after!
is treated as a single string argument, ignoring the;
separators - But
echo 1; cd ~
will work with$XONTRIB_CD_LASTCMD
This package was created with xontrib cookiecutter template based on the idea of hooking into the command line input as implemented in xontrib-sh