Run command as REPL-environment
Project description
About
Make REPL out of any bash command
has bash completion
has vi mode
has PS1 parsing(experimental)
stores history in $XDG_DATA_HOME/ptrepl/history
bash like history expansion
list history
command mode
aliases
Installation
Requires python>=3.6, prompt_toolkit>=2.0.7,<3.0.0, pygments
Recommended way of installation is via pipx
pipx install ptrepl
ptrepl vendors https://github.com/xonsh/py-bash-completion
Usage
Basic Usage
$ ptrepl --help
Usage: ptrepl [OPTIONS] COMMAND
Options:
--prompt TEXT Override prompt
--help Show this message and exit.
$ ptrepl git
$ git >
# to call "git status"
$ git > status
# if you need execute some other bash command see system mode below
Custom prompt command
$ ptrepl git --prompt g
$ g >
Multiword command
$ ptrepl "echo prefix"
$ echo prefix > 1
echo prefix 1
Config
Place settings file in :bash:$XDG_CONFIG_HOME/ptrepl/config.json
Here is example of config with enabled vi mode and git alias
{
"settings": {
"EXIT_COMMAND": "exit",
"EDITING_MODE": "vi",
"SHOW_MODE_IN_PROMPT": true,
"EMACS_MODE_STRING": "@",
"VI_INS_MODE_STRING": "+",
"VI_CMD_MODE_STRING": ":",
"READLINE_COMPLETION": false,
"PARSE_PS1": false,
"LOCAL_SHADA": false,
"LOCAL_SHADA_PATH": "$PWD/.ptrepl/",
},
"alias": {
"git st": "git status"
}
}
Available settings
EXIT_COMMAND - change exit command
EDITING_MODE - choose mode vi/emacs
SHOW_MODE_IN_PROMPT - show editing mode string in prompt
EMACS_MODE_STRING - set emacs mode prompt string
VI_INS_MODE_STRING - set vi insert mode prompt string
VI_CMD_MODE_STRING - set vi command mode prompt string
READLINE_COMPLETION: use readline like completion instead of dropdown one
PARSE_PS1 {experimental} - will try to adgust ptrepl’s prompt according to your PS1 setting
LOCAL_SHADA - store shada(history) in LOCAL_SHADA_PATH
LOCAL_SHADA_PATH - path to local shada
Default settings
{
"EXIT_COMMAND": "exit",
"EDITING_MODE": "emacs",
"SHOW_MODE_IN_PROMPT": false,
"EMACS_MODE_STRING": "@",
"VI_INS_MODE_STRING": "(ins)",
"VI_CMD_MODE_STRING": "(cmd)",
"READLINE_COMPLETION": false,
"PARSE_PS1": false,
"LOCAL_SHADA": false,
"LOCAL_SHADA_PATH": "$DIRENV_DIR/.direnv/ptrepl/",
}
Features
Parsing PS1(requires PARSE_PS1 set to true)
Here is how my bash prompt(PS1) looks like by default
{ptrepl} ~/Development/Python/ptrepl [master] |19:18:36 07-Feb-18|
+ ❯ ptrepl git
{ptrepl} ~/Development/Python/ptrepl [master] |19:20:15 07-Feb-18|
+ git ❯
Completion
$ ptrepl git
$ git > sta (press TAB)
# result
$ git > sta
status
stage
stash
Readline like completion(requires READLINE_COMPLETION set to true)
$ ptrepl git
$ git > sta (press TAB)
# result
$ git > sta
stage stash status
System mode
$ ptrepl git
$ git > (press Escape + !)
# result
# you could enter your shell commands here
Shell command: ls
Command mode
$ ptrepl git
$ git > (press Escape + :)
# result
# you could enter your command mode commands here
# to list history
Command mode: history
Bash like history expansion
$ ptrepl git
$ git > status
# repeat last command
$ git > !!
# repeat 10th command
$ git > !10
# repeat 10th command from bottom of history stack
$ git > !-10
Bash like aliases
$ ptrepl git
$ git > (press Escape + :)
# you could enter your command mode commands here
# to list alias
Command mode: alias
alias "git st"="git status"
$ git > st
Similar projects
Written in Ruby
Written in Bash
Written in Python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ptrepl-0.9.8.tar.gz
.
File metadata
- Download URL: ptrepl-0.9.8.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7fba6ade029b4d1930c613cc8464077a784938e9cb4591673bebbebf5aedba0 |
|
MD5 | 8e5413ff08171ad55c44f07f69e1e9ef |
|
BLAKE2b-256 | eba690ecb8e2fc14118d8a91cb6f39a26dc755e4f15bca0b7783c53b4e56a032 |
File details
Details for the file ptrepl-0.9.8-py3-none-any.whl
.
File metadata
- Download URL: ptrepl-0.9.8-py3-none-any.whl
- Upload date:
- Size: 21.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb7a50dbc769d1428a87c1227d9b4fe3dfdfee8321782dbe4be2a2b746970bde |
|
MD5 | 9d73bbf85c69f2ef318face4c614a9cd |
|
BLAKE2b-256 | f7ed6ca02c9504a9d1a71bd2893d31f486633ddc90e27a343fa3a8306ac8dd8b |