#!/bin/sh # Interactive aliases and helpers written with portable shell syntax. alias venv='. ./venv/bin/activate' alias e='nvim' alias er='nvim README.md' alias et='nvim TODO.md' alias en='nvim NOTES.md' alias ens='nvim NEXT_STEPS.md' alias ea='nvim .autonote.md' alias ee='nvim .' debuglog() { clear : > debug.log tail -f debug.log } alias g='git status' gg() { _gg_message=${*:-update} if git add . && git commit -m "$_gg_message" && git push; then unset _gg_message return 0 fi unset _gg_message return 1 } wget() { printf 'wget wrapper: using HSTS file %s\n' "$XDG_DATA_HOME/wget-hsts" >&2 command wget --hsts-file="$XDG_DATA_HOME/wget-hsts" "$@" } alias bc='bc -q -l' alias ytdl='yt-dlp --write-info-json --write-description --no-playlist' alias ytdlb='yt-dlp --write-info-json --write-description --no-playlist -a' alias ytdl-mp3='yt-dlp -f bestaudio --extract-audio --audio-format mp3 --embed-thumbnail --add-metadata' # lf gets confused by TERMINFO when running in tmux. # https://github.com/gokcehan/lf/issues/138#issuecomment-464477665 if [ -n "${TERMINFO:-}" ]; then alias lf='TERMINFO= lf -last-dir-path="$HOME/.cache/lf-last-dir"' else alias lf='lf -last-dir-path="$HOME/.cache/lf-last-dir"' fi cdlf() { [ -r "$HOME/.cache/lf-last-dir" ] || return 1 IFS= read -r _cdlf_last_dir < "$HOME/.cache/lf-last-dir" [ -n "$_cdlf_last_dir" ] || return 1 if cd "$_cdlf_last_dir"; then unset _cdlf_last_dir return 0 fi unset _cdlf_last_dir return 1 } lfcd() { lf -last-dir-path="$HOME/.cache/lf-last-dir" && cdlf } mkcd() { if [ "$#" -ne 1 ]; then printf '%s\n' 'Usage: mkcd ' >&2 return 2 fi mkdir -p "$1" || return cd "$1" || return }