All Projects → denyskoch → ienv

denyskoch / ienv

Licence: MIT License
Improved shell environment: sane dotfiles backed by my daily work optimized for solarized theme

Programming Languages

shell
77523 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to ienv

hoc-element-table
📦 A Vue 3.x Table Component built on Webpack 5
Stars: ✭ 26 (+4%)
Mutual labels:  configuration
eslint-define-config
Provide a defineConfig function for .eslintrc.js files
Stars: ✭ 61 (+144%)
Mutual labels:  configuration
awesome
Configs for awesomeWM
Stars: ✭ 42 (+68%)
Mutual labels:  configuration
Manuals-and-Tutorials
Manuals about everything I work with
Stars: ✭ 15 (-40%)
Mutual labels:  configuration
puter
Setting up a computer is annoying so let's automate it.
Stars: ✭ 13 (-48%)
Mutual labels:  configuration
goodconf
Transparently load variables from environment or JSON/YAML file.
Stars: ✭ 80 (+220%)
Mutual labels:  configuration
arkenv
Type-safe Kotlin configuration by delegates
Stars: ✭ 15 (-40%)
Mutual labels:  configuration
harg
Haskell program configuration using higher kinded data
Stars: ✭ 23 (-8%)
Mutual labels:  configuration
apollo-docker
Apollo阿波罗配置中心docker
Stars: ✭ 23 (-8%)
Mutual labels:  configuration
dotfiles
Jaseem's dotfiles
Stars: ✭ 14 (-44%)
Mutual labels:  configuration
laravel-conditional-providers
THIS PACKAGE HAS BEEN DEPRECATED — Load Laravel service providers and facades based on the current environment.
Stars: ✭ 26 (+4%)
Mutual labels:  configuration
cue
The new home of the CUE language! Validate and define text-based and dynamic configuration
Stars: ✭ 2,466 (+9764%)
Mutual labels:  configuration
rails-settings-cached
Global settings for your Rails application.
Stars: ✭ 940 (+3660%)
Mutual labels:  configuration
RDMnet
Implementation of ANSI E1.33
Stars: ✭ 29 (+16%)
Mutual labels:  configuration
yaask
Make your yaml configurable with interactive configurations!
Stars: ✭ 15 (-40%)
Mutual labels:  configuration
dotfiles
Dotfiles repo
Stars: ✭ 12 (-52%)
Mutual labels:  configuration
dotfiles
My personal app/env configs and dotfiles.
Stars: ✭ 27 (+8%)
Mutual labels:  configuration
dhall-scala
dhall-scala is a Scala library for consuming dhall configuration files from Scala programming language.
Stars: ✭ 39 (+56%)
Mutual labels:  configuration
config-o-matic
🍷 Configure Slackware installs in no time with config-o-matic!
Stars: ✭ 16 (-36%)
Mutual labels:  configuration
.github
Default configuration for @TheAlgorithms repos
Stars: ✭ 57 (+128%)
Mutual labels:  configuration

Improved shell ENVironment

This is a set of opinioned dotfiles used by me in daily work and in production. The goal is to have robust, customizable and portable set of defaults for linux bash shell for daily work.

base

Tested on macOS and linux hosts.

Table of Contents

Features

  • easy to customize / extend
  • space aware smart/adaptive prompt
  • highlighted error exit codes
  • optimized for solarized colors
  • handy aliases (system, git, etc)
  • time of last activity
  • fast git integration (current branch, branch state, defaults)
  • root and remote host indicator
  • sane vim defaults (pathogen, ctrlp, list-chars, solarized theme, ag-integration, tweaks, ...)
  • readline tweaks
  • tmux support
  • respect non-interactive sessions

Installation

git clone https://github.com/denyskoch/ienv ~/.ienv && ~/.ienv/install.sh

You should also install Solarized color theme for your terminal. (ethanschoonover.com/solarized)

For faster and better fuzzy search results install ag the silver searcher:

brew install ag

Customizing / Extending

You can edit and customize your .baschrc, .vimrc, .tmux.conf as usual. IENV is integrated gracefully (no symlinks, no file copies), so things should not break. Take a look at your .bashrc for example:

...

### IENV ###
[ -r ~/.ienv/entrypoint ] && source ~/.ienv/entrypoint
### VNEI ###

Since its just an include, you can simple add or override settings you like.

Dark color theme

Simply switch terminal color theme e.g. solarized dark: dark

Shell

  • automatically cd to directory:

    /work $ kitchen
    cd -- kitchen
    /work/kitchen $ 
  • auto correct wrong spelled directories

    /work/demo $ ls
    abc bar foo          
                                                                                   
    /work/demo $ cd bra                                                                      
    /work/demo/bar $ 
  • search in bash history with arrow keys e.g.:

    /work/demo/bar $ ssh<arrow up>

Aliases

common

  • pw: generate strong password with help of openSSL

  • h: show history

  • hs: history search (i.e. history | grep -i)

  • ..: go one directory up

  • ...: go two directories up

  • ....: go three directories up

  • dl: go to downloads folder i.e. cd ~/Downloads

  • *p: go to project directory i.e. cd ~/Projects

  • gp: go to GO workspace i.e. cd $GOPATH

  • ll: long list i.e. ls -ahl

  • ips: show current IPs

    $ ips
    Public: 95.208.248.59
    Local: 192.168.0.164
    Gateway: 192.168.0.1
    

git and related

  • g: shortcut for git
  • s: git status
  • a <files>: git add (a -A to add all files)
  • c: git commit
  • cm <msg>: git commit -m
  • d: git diff
  • co <branch>: git checkout
  • l: fancy git log (graph)

macOS

  • update: update software and brew software
  • flushdns: clear dns cache
  • hidedesktop / showdesktop: Hide/show all desktop icons (useful when presenting)

Remote Shell

  • for remote hosts/shels the hostname is printed on the right
  • root shells looks dangerous for more attention and prevent upss

remote

GIT

  • push strategy is set to simple

  • default editor is vim

  • colors set to auto

  • gobal gitignore for annoying OS generated files:

    .DS_Store
    .DS_Store?
    ._*
    .Spotlight-V100
    .Trashes
    __MACOSX
    ehthumbs.db
    Thumbs.db
    Desktop.ini
    *~
    *.swp
    *.swo
    

Vim

  • persistend undos: you can even undo after vim is closed and opened again
  • silver searcher (ag) integration for CtrlP
  • custom status line
  • auto folding of deep nested blocks
  • easy split and buffer movement

some shortcuts

  • ctrl + p to start fuzzy search
  • ctrl + n for auto complete

some normal mode commands / shortcuts

  • ctrl + j, ctrl + k, ctrl + h, ctrl + l for split movement
  • z to toggle fold under cursor
  • gd go to definition
  • J (shift + j) switch to next buffer
  • K (shift + k) switch to previous buffer

vim3

vim2

  • dark color theme (e.g. solarized-dark)

    insert to your in your ~/.vimrc file:

    set background=dark
    vim_dark

Did you know ...?

  • you can simply toggle between last used directories:

    /work/demo/foo $ cd /work/
    /work $ cd -
    /work/demo/foo $ 
    /work/demo/foo $ cd -
    /work $ 
  • cd without arguments return you back to $HOME

  • killall <name> kill process by name (alternative to kill <pid>)

Known issues

Feel free to open a new issue on GitHub.

macOS bash

bash: shopt: autocd: invalid shell option name
bash: shopt: dirspell: invalid shell option name
bash: update_terminal_cwd: command not found

Since macOS is using a old version of bash, this errors will occur.

Bash v4+ is required, you can install it via brew brew install bash (brew.sh)

Vim issues in dark terminals

If you use dark terminal theme, you need to add set background=dark to your .vimrc

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].