Contents

Tools and Configurations for Development

Tools and Configurations

These are tools/configurations I use on either a frequent, or regular enough basis to warrant including them on new development machines.

	This is a **live** document which is actively updated.

   

Terminal

Here are tools and configurations specific to the terminal.

bash

1
2
# ~/.bashrc
set -o vi                                 # Set interactive shell to Vim mode

   

tmux

Site: Home · tmux/tmux Wiki · GitHub

In the past I used different terminal emulators (e.g. Terminator, kitty) with their own shortcuts, but I’ve circled back to just tmux in whatever emulator is most easily accessible.

 

 

 


   

CLI

   

git

Site: Git-scm

1
2
3
# ~/.gitconfig
[init]
    defaultBranch = main                  # Set default branch to `main`

   

bat[cat]

Site: GitHub - sharkdp/bat: A cat(1) clone with wings.

1
2
3
# ~/.bashrc
export PAGER="batcat"                     # Set `batcat` as default pager
export MANPAGER="batcat -l man -p"        # Set `batcat` as default `man` pager

   

delta

Site: GitHub - dandavison/delta: A syntax-highlighting pager for git, diff, grep, and blame output

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# ~/.gitconfig
[core]
    pager = delta -w $(( "${COLUMNS}" - 9 ))   # Use `delta` as default pager
                                               # + Fixes width w/ line #'s

[interactive]
    diffFilter = delta --color-only        # Use `delta` as default pager
					                       #   for interactive filters

[delta]
    navigate = true                        # use n and N to move between
                                           #   diff sections
    dark = true                            # or light = true, or omit for
                                           #   auto-detection
    side-by-side = true
    line-numbers-left-format = ""
    line-numbers-right-format = "│ "

   

vim

Make sure to install version with python3 support if that’s your thing.

1
2
# ~/.bashrc
export EDITOR=vim                          # Set vim as default editor

For plugins I use junegunn/vim-plug.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# ~/.vimrc

####################
# Plugins go here!

call plug#begin()
  Plug 'tpope/vim-commentary'              # Plugin for easy line commenting
  Plug 'preservim/nerdtree'                # File manager inside Vim
call plug#end()


####################
# Configs go here!

set number                                 # Show line numbers
inoremap jk <Esc>                          # Map <jk> to <ESC>
set et                                     # Set expanded tabs (with spaces)
set sw=2                                   # Set shift width = 2
set ts=2                                   # Set tab stop = 2

nnoremap <C-n> :NERDTreeToggle<CR>         # Map <CTRL-N> to toggle NerdTree pane

   

fzf

Site: GitHub - junegunn/fzf: :cherry_blossom: A command-line fuzzy finder

Configuration and instantiation soon to come….

   

forgit

Site: GitHub - wfxr/forgit: 💤 A utility tool powered by fzf for using git interactively.

Configuration and instantiation in shell soon to come….

   

tldr

Site: tldr pages

Simplified man pages with practical examples.

   

neofetch / fastfetch

As a command-line system information tool neofetch will always hold a special place, but it is no longer actively maintained.

As an alternative, consider fastfetch.

neofetch site: GitHub - dylanaraps/neofetch: 🖼️ A command-line system information tool written in bash 3.2+

fastfetch site: GitHub - fastfetch-cli/fastfetch: A maintained, feature-rich and performance oriented, neofetch like system information tool.

   

invoke

Site: Invoke documentation

Pythonic task management & command execution.

 

 

 


   

TUI

 

PISpy

Site: GitHub - davep/pispy: A terminal-based tool for looking up stuff in PyPI

Installable as a Python executable package.

 

 

 


   

Languages

 

Python

I used to be an avid pyenv, poetry, hatch, and pipx user, but quickly uv, uv tool and uvx have been stealing my heart…

pyenv site: GitHub - pyenv/pyenv: Simple Python version management

poetry site: Poetry - Python dependency management and packaging made easy

hatch site: Hatch - Python project manager

pipx site: GitHub - pypa/pipx: Install and Run Python Applications in Isolated Environments

 

uv site: GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.

 

 

JVM based

SDKMAN

Site: SDKMAN! the Software Development Kit Manager

Using SDKMAN install various versions of the following:

  • Java
  • Groovy
  • Scala

 

 

Javascript / Typescript

nvm

Site: GitHub - nvm-sh/nvm: Node Version Manager

 

 

 


 

Editors

 

Obsidian.md

Site: Obsidian

Markdown editor.

 

VSCode

Site: Visual Studio Code

Code editor.

 

 


 

Containers

 

Podman

Site: Podman

 

Docker

Site: Docker

 

 


 

Extras

 

Vimium browser extension

Site: GitHub - philc/vimium: The hacker’s browser.

Vim shortcuts for browsing.

Firefox site: Vimium – Get this Extension for 🦊 Firefox (en-US)

Chrome: Vimium - Chrome Web Store