one.bash + one.share = an awesome shell.
The one.share is the one.bash official repo, which provides common aliases/completions/plugins/configs/bin/sub for one.bash.
- Collections of shell commands, which locates in
bin/
. - My best practices with shell (bash).
- Responsive and pretty prompt. Refer to Preview.
- Extended keyboard bindings. See ./plugin/keymap.bash.
- Flexible completion. Tab and Shift+Tab to make completion in circle. Compatible with bash-completion (for bash 3.x) and bash-completion2 (for bash 4.x). See ./plugin/completion.bash
- Extended Bash history settings. See ./plugin/history.bash.
- Extended Bash manpage. See ./plugin/manpage.bash.
- Pretty ls command. See ./plugin/ls.bash.
- Pretty less command. See ./plugin/lesspipe.bash.
- Safe rm command. See ./alias/avoid-mistakes.bash.
- Many third integrations
- z.lua. See ./plugin/zl.opt.bash.
- fzf. See the configuration and ./plugin/fzf.bash nad ./plugin/fzf-tab.opt.bash.
- taskbook. See ./configs/taskbook.json
- [taskfile]. See ./completion/taskfile.opt.bash
- cheat. See ./completion/cheat.opt.bash
- My best practices with tmux. See ./configs/tmux.
- Support bash-preexec. It provides preexec and precmd functions for Bash just like Zsh. See ./plugin/preexec.opt.bash.
- Support GNU utilities for mac. See ./plugin/gnutools-for-mac.bash.
- Support programming language related like nvm, rust, gvm.
- ✅ iTerm2 Build 3.0.14 (Terminal.app compatible)
- ✅ GNU Bash 4.4 or 5.0+
- ✅ Tmux 3.3+ (Not necessary. Tmux compatible)
- ✅ MacOS Intel Arch
- ✅ MacOS ARM Arch
- ✅ Linux/Unix system
- 🚫 Windows system
- 🚫 Zsh. This project is just for Bash players. Zsh players should use Oh My Zsh.
- git
- python: Make sure it available before installation. Python 2 and 3 are both supported.
- perl 5+
- Nerd Font: I recommend DejaVuSansMonoForPowerline Nerd Font.
See tags. The versions follows the rules of SemVer 2.0.0.
one repo add https://github.com/one-bash/one.share
one repo update one.share
to update codes.
one c enable aliases.completion
one p enable ls grep
one a enable avoid-mistakes cd
Read one.bash documents for usage.
.
├── alias/ # Available aliases
├── bin/ # Executables. The directory path is added to PATH by one.bash.
├── completion/ # Available completions
├── config/ # dotfiles, configs
├── docs/ # The documents of this project
├── plugin/ # Available plugins
└── sub/ # The commands for ONE_SUB
Some modules are slow. Set ONE_DEBUG=true
in ONE_CONF file, you will see the logs showing slow loading time.
- With
ONE_NO_MODS=true
,[one.bash|00:00:00|entry.bash] loaded success (Total 112ms)
- With
ONE_NO_MODS=false
andone plugin enable fuck nvm npm
,[one.bash|00:00:00|entry.bash] loaded success (Total 2200ms)
If using tmux, $TERM
should be xterm-256color
or screen-256color
for best appearance.
Use one_prompt_append
add function to PROMPT_COMMAND.
When one plugin enable completion
,
The completion files loaded in order:
- bash_completion will load files in order:
- ${BASH_COMPLETION_COMPAT_DIR:-/usr/local/etc/bash_completion.d}
- ${BASH_COMPLETION_USER_FILE:-~/.bash_completion}
- this plugin will load
- $HOME/.bash_completions
Before opening new Issue/Discussion/PR and posting any comments, please read Contributing Guidelines.
Copyright 2022-2024 ADoyle ([email protected]). Some Rights Reserved. The project is licensed under the Apache License Version 2.0.
Read the LICENSE file for the specific language governing permissions and limitations under the License.
Read the NOTICE file distributed with this work for additional information regarding copyright ownership.