Skip to main content

cd to any path without escaping in xonsh shell: cd ~/[te] st

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xontrib_cd-0.3.1.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

xontrib_cd-0.3.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file xontrib_cd-0.3.1.tar.gz.

File metadata

  • Download URL: xontrib_cd-0.3.1.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for xontrib_cd-0.3.1.tar.gz
Algorithm Hash digest
SHA256 ed1b1f2dbc896acc66345411567adc3f34209ad24eabec239e86d5a8bfc8b2be
MD5 13bdeca3b84ea18c9ac4da25cd3d70bd
BLAKE2b-256 9dfd4235e9847746b979c0a5ccc2d085f000975f63c72c625d4604461c71f0f8

See more details on using hashes here.

File details

Details for the file xontrib_cd-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: xontrib_cd-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 4.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for xontrib_cd-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e5bf94321cd21e5961c61fc8915d6f4f3c29029bbb3910a460c571e0f0b25f7c
MD5 9619d5993e89dec347c0644969908dde
BLAKE2b-256 ea6c7738006a526426f7d3b2518caf7a1958508d83da83b6c7f482e77061ef41

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page