Skip to main content

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.

Install

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", }

Configure

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 use cdp, cdf, or cds (in addition to cd -P) to follow symlinks
  • $XONTRIB_CD_SYMLINKAlWAYSON = True to make cd always follow symlinks (always pass -P)
  • $XONTRIB_CD_LASTCMD = True to make cd also work when it's the last command in a multi-command line

Use

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 !

Known issues

  • 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 since cd is replaced with cd!, and everything after ! is treated as a single string argument, ignoring the ; separators
  • But echo 1; cd ~ will work with $XONTRIB_CD_LASTCMD

Credits

This package was created with xontrib cookiecutter template based on the idea of hooking into the command line input as implemented in xontrib-sh

Release files for xontrib-cd 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xontrib-cd 0.3.1
File Size Uploaded
xontrib_cd-0.3.1.tar.gz 3.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xontrib-cd 0.3.1
File Interpreter ABI Platform
xontrib_cd-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 8.1 kB

Release files / xontrib_cd-0.3.1.tar.gz

Download URL xontrib_cd-0.3.1.tar.gz
Size 3.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ed1b1f2dbc896acc66345411567adc3f34209ad24eabec239e86d5a8bfc8b2be
BLAKE2b-256 checksum
How to use checksums
9dfd4235e9847746b979c0a5ccc2d085f000975f63c72c625d4604461c71f0f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release files / xontrib_cd-0.3.1-py3-none-any.whl

Download URL xontrib_cd-0.3.1-py3-none-any.whl
Size 4.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e5bf94321cd21e5961c61fc8915d6f4f3c29029bbb3910a460c571e0f0b25f7c
BLAKE2b-256 checksum
How to use checksums
ea6c7738006a526426f7d3b2518caf7a1958508d83da83b6c7f482e77061ef41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.4

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page