All Projects → mrzool → Bash Sensible

mrzool / Bash Sensible

Licence: mit
An attempt at saner Bash defaults

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Bash Sensible

Config
A lightweight yet powerful config package for Go projects
Stars: ✭ 126 (-93.23%)
Mutual labels:  config
Cfgdiff
diff(1) all your configs
Stars: ✭ 138 (-92.58%)
Mutual labels:  config
Co
Art of C++. Flag, logging, unit-test, json, go-style coroutine and more.
Stars: ✭ 2,264 (+21.66%)
Mutual labels:  config
Jetfirecloud
基于SpringCloud Finchley.RELEASE的微服务开发脚手架,整合了spring-security-oauth2、springboot-admin、feign、hystrix、spring-cloud-gateway、turbine等全家桶
Stars: ✭ 129 (-93.07%)
Mutual labels:  config
Node Convict
Featureful configuration management library for Node.js
Stars: ✭ 1,855 (-0.32%)
Mutual labels:  config
Dotfiles
Config for vim sublime awesome xmonad etc.
Stars: ✭ 140 (-92.48%)
Mutual labels:  config
Surgeconfiggenerator
Surge配置生成器 (快速生成属于你自己的 Surge 配置)
Stars: ✭ 125 (-93.28%)
Mutual labels:  config
Gcfg
read INI-style configuration files into Go structs; supports user-defined types and subsections
Stars: ✭ 146 (-92.15%)
Mutual labels:  config
Surfingkeys Conf
A SurfingKeys configuration which adds 130+ key mappings for 20+ sites & OmniBar search suggestions for 50+ sites
Stars: ✭ 137 (-92.64%)
Mutual labels:  config
Hostsvn
Hosts block ads of Vietnamese
Stars: ✭ 145 (-92.21%)
Mutual labels:  config
Tunapanel
Autogenerate live Web-based control panels for Rust programs
Stars: ✭ 133 (-92.85%)
Mutual labels:  config
Dotfiles
⚡️ Awesome configurations for the development environments
Stars: ✭ 137 (-92.64%)
Mutual labels:  config
Dotfiles
Collection of i3-gaps Dotfiles
Stars: ✭ 143 (-92.32%)
Mutual labels:  config
Confl
Config parser for go, modeled after Nginx format, Nice lenient syntax with Comments
Stars: ✭ 127 (-93.18%)
Mutual labels:  config
Tsconfig
Shared TypeScript config for my projects
Stars: ✭ 146 (-92.15%)
Mutual labels:  config
Config
Library for managing environment variables in Clojure using EDN configuration files
Stars: ✭ 125 (-93.28%)
Mutual labels:  config
Config
Manage Laravel configuration by persistent storage
Stars: ✭ 139 (-92.53%)
Mutual labels:  config
Env
Simple lib to parse environment variables to structs
Stars: ✭ 2,164 (+16.28%)
Mutual labels:  config
Goconfig
goconfig uses a struct as input and populates the fields of this struct with parameters from command line, environment variables and configuration file.
Stars: ✭ 146 (-92.15%)
Mutual labels:  config
Config
Easiest way to add multi-environment yaml settings to Rails, Sinatra, Pandrino and other Ruby projects.
Stars: ✭ 1,821 (-2.15%)
Mutual labels:  config

Sensible Bash

An attempt at saner Bash defaults. Inspired by Tim Pope's sensible.vim.

The config

Sensible Bash is intended to be a simple starting point for a better Bash user experience out of the box.

Refer to the commented source for a complete list of all the options with explanations. Here's a taste:

Smarter tab completion

Readline bindings to improve on Bash's default tab completion:

  • Perform file completion in a case insensitive fashion
  • Treat hyphens and underscores as equivalent
  • Display matches for ambiguous patterns at the first press of the tab key (instead of requiring two tab-presses)

Saner history defaults

Sensible defaults for the command history:

  • Append to the history file instead of overwriting it
  • Save multi-line commands as one command
  • Record each line as it gets issued
  • Keep track of a bigger history
  • Avoid duplicate entries
  • Avoid recording unneeded commands (exit, ls, bg, fg, and history itself)
  • Use a standard ISO 8601 timestamp for recording commands (ex: 2016-04-09 13:06:31)

Read more about the settings used here in the article Better Bash History by Tom Ryder.

Faster file system navigation

Options that considerably speed up the ability to navigate throughout the file system:

  • Prepend cd to directory names automatically, so you can change to a directory just by typing its name
  • Automatically correct spelling errors during tab-completion and in arguments supplied to cd
  • Set more targets to the cd command besides the current working directory (ex: projects, repos, documents, etc)
  • Define paths as variables and cd into it from anywhere, kind of like a bookmarking system for Bash (cdable_vars)

Usage

You can copy sensible.bash in your bashrc, cherry-pick the options you like, or source the file at the top of your bashrc:

if [ -f ~/bin/sensible.bash ]; then
   source ~/bin/sensible.bash
fi

Caveats

In order to get Sensible Bash to work correctly, make sure that:

  • You're running at least Bash 4.x (echo $BASH_VERSION). OS X users: Read this to install and set up Bash correctly.
  • You have the Bash Completion package installed and properly configured on your system. (instructions for OS X)
  • If you're on OS X, I recommend to follow Josh Staiger's advice and source bashrc from bash_profile so to keep all your configuration in one place.

See also

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].