Giter Club home page Giter Club logo

oh-my-xonsh

-----------------------------------------------------

CALL FOR NEW MAINTAINERS

I started this project to bring features of OMZ to the Xonsh community, but no longer use Xonsh, and thus will not be maintaining this project. If you have a proven track record of helpful participation in the Xonsh community and believe this is project you would like to maintain into the future, please open an issue and I can transfer the org.

-----------------------------------------------------

🐍 🐚 🔌 - A delightful framework to give your Python-powered, cross-platform, Unix-gazing Xonsh shell a boost!

Usage

Add the following snippet to your ~/.config/xonsh/rc.xsh or ~/.xonshrc:

# set where oh-my-xonsh lives
if not 'OMX_HOME' in ${...}:
    $OMX_HOME = p"~/.config/xonsh/oh-my-xonsh"

# clone omx if needed
if not pf"{$OMX_HOME}".exists():
    git clone --depth=1 https://github.com/oh-my-xonsh/oh-my-xonsh $OMX_HOME

# source oh-my-xonsh to give you the `omx` object
source $OMX_HOME/oh-my-xonsh.xsh

# choose your plugins
omx.plugins = [
    'autocmd',
    'brew',
    'clipboard',
    'common_aliases',
    'copydir',
    'dash',
    'git',
    'gitignore',
    'golang',
    'iwd',
    'macos',
    'manpage_coloring',
    'shrink_path',
    'up',
]

# configure your plugins
# omx.config["plugins.git.skip_aliases"] = True

# initialize oh-my-xonsh
omx.init()

Configuration

Some plugins allow for configuration options. The omx object has a .config property that allows you to set config values.

You need to be sure you set these values before calling omx.init() in your rc.xsh file.

For example:

# set your config options
omx.config["plugins.example.whoami"] = "I'm Batman!"
omx.config["plugins.git.skip_aliases"] = True

# now call init
omx.init()

Adding your own custom plugins

You can add your own custom .xsh files or plugins to OMX by using the $OMX_CUSTOM_HOME directory. You can set $OMX_CUSTOM_HOME to whatever you want, or you can use the OMX default. An example is included to help you get started.

The omx object

Sourcing Oh-My-Xonsh gives you the omx object, which allows you to do lots of great things, such as:

List available plugins

$ omx.list_plugins()
--- OMX plugins ---
autocmd
brew
cdls
clipboard
common_aliases
copydir
copyfile
dash
git
gitignore
golang
iwd
jupyter
macos
manpage_coloring
shrink_path
up
--- OMX custom plugins ---
example

Loaded plugins

You can see the CommandPipeline details about the plugins you've loaded, including the load times for each plugin.

$ omx.loaded_plugins

Updating OMX

OMX can update itself if you want as well (which is simply doing a git pull).

$ omx.update()

References

Oh-My-Xonsh is inspired by many wonderful similar projects from other shells:

oh-my-xonsh's Projects

oh-my-xonsh icon oh-my-xonsh

🐍 🐚 🔌 - A delightful framework to give your Python-powered, cross-platform, Unix-gazing Xonsh shell a boost!

xonsh icon xonsh

:shell: Python-powered, cross-platform, Unix-gazing shell

xontrib-up icon xontrib-up

A Xonsh plugin for the `up` command, which can `cd` up any number of directories

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.