Skip to main content

Get identifiers, names, paths, URLs and words from the previous command output and use them for the next command in xonsh.

Project description

Get identifiers, names, paths, URLs and words from the previous command output and use them for the next command in xonsh.

Save time. Forget about using mouse, touchpad or trackball to get any words from output to the next command. Secure. The xontrib-output-search is not writing any output on the hard disk. Only latest not empty output stored in the memory. It works the same way as xonsh shell and the security level is the same. Universal. Forget about searching autocomplete plugins for every app you use and get the identifiers from the output.

If you like the idea click ⭐ on the repo and and tweet.

Install

xpip install -U xontrib-output-search
echo 'xontrib load output_search' >> ~/.xonshrc
# Reload xonsh

Usage

After xontrib load output_search you have two ways to select tokens from latest not empty output:

  • Press Alt + F hotkeys
  • Type f__ and press Tab key

If you use this key combination for another function and your muscle memory is strong just change the key combination before loading the xontrib:

# Alt+i combination. Meaning: @bindings.add('escape', 'i')
$XONTRIB_OUTPUT_SEARCH_KEY='i'
xontrib load output_search
# Control+g combination. Meaning: @bindings.add('c-g')
$XONTRIB_OUTPUT_SEARCH_KEY_BINDING='c-g'
xontrib load output_search
# Right+Left combination. Meaning: @bindings.add('right', 'left')
$XONTRIB_OUTPUT_SEARCH_KEY_META='right'
$XONTRIB_OUTPUT_SEARCH_KEY='left'       # text placeholder will be `left__`
xontrib load output_search

Use cases

Get URL from output

echo "Try https://github.com/xxh/xxh"
# Try https://github.com/xxh/xxh
git clone xx<Alt+F>
git clone https://github.com/xxh/xxh

Get key or value from JSON, Python dict and JavaScript object

echo '{"Try": "xontrib-output-search"}'
# {"Try": "xontrib-output-search"}
echo I should try se<Alt+F>
echo I should try xontrib-output-search

Get the path from environment

env | grep ^PATH=
# PATH=/one/two:/three/four
ls fo<Alt+F>
ls /three/four  

Complete the complex prefix

Get the URL from previous output after typing git+:

echo "Try https://github.com/tokenizer/xontrib-output-search"
# Try https://github.com/tokenizer/xontrib-output-search

pip install git+xo<Alt+F>
pip install git+https://github.com/tokenizer/xontrib-output-search

Get the port number from previous output while typing the URL:

echo "The port number is 4242"
# The port number is 4242

curl http://127.0.0.1:4<Alt+F>
curl http://127.0.0.1:4242

Get arguments from command help

lolcat -h
...
lolcat --s<Alt+F>
lolcat --seed=SEED

Development

The xontrib-output-search is using tokenize-output for tokenizing.

Checking that output_search xontrib has been loaded:

xontrib list output_search
# output_search  installed  loaded

completer list | grep output_search
# xontrib_output_search

Known issues

Not working after xonsh 0.10.0 (4283)

Workaround: Check XONSH_CAPTURE_ALWAYS environment variable to bring the capturing of the output back.

cat file is not captured (xonsh/issues/3744)

Workaround: cat file | head or cat file | grep text.

Alt+F combination may not working in PyCharm terminal

Workaround: f__ + Tab.

The readline shell type was not tested

We're using the xonsh recommended prompt-toolkit shell type to test the output search xontrib. There could be the issues in the readline shell type. PRs are welcome!

The Alt+F in the readline is to move forward

Workaround: set $XONTRIB_OUTPUT_SEARCH_KEY='i' before xontrib load output_search.

Links

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-output-search-0.5.5.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

xontrib_output_search-0.5.5-py3-none-any.whl (5.8 kB view details)

Uploaded Python 3

File details

Details for the file xontrib-output-search-0.5.5.tar.gz.

File metadata

  • Download URL: xontrib-output-search-0.5.5.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for xontrib-output-search-0.5.5.tar.gz
Algorithm Hash digest
SHA256 35ae1a4c318b9ace1044444ea7a0c00c475c3e9bfe72c945e67f276168087bf9
MD5 f70f47d105b78d97d17b426d0db6c4e1
BLAKE2b-256 637abdf9f60ba12a4971d5c1a8cb157ed63d8fd03c6a04dbefe7c56dd4616fcc

See more details on using hashes here.

File details

Details for the file xontrib_output_search-0.5.5-py3-none-any.whl.

File metadata

  • Download URL: xontrib_output_search-0.5.5-py3-none-any.whl
  • Upload date:
  • Size: 5.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.1

File hashes

Hashes for xontrib_output_search-0.5.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9888bc877800758990c81dbe7c018aabcbe141bfe13174ed5f2c807ebfb113b6
MD5 8345abdc4361bd378fea1a858822fc39
BLAKE2b-256 fa9bafa35c85eaa4c40f9279ffd2d41830390db7e54af658f9e0a3b9fa2682ec

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